printer.c (b3e5ced63e051e8f911b795ac5b06229a5328f7b) | printer.c (c94e289f195e0e13cf34d27f9338d28221a85751) |
---|---|
1/* 2 * printer.c -- Printer gadget driver 3 * 4 * Copyright (C) 2003-2005 David Brownell 5 * Copyright (C) 2006 Craig W. Nadler 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by --- 112 unchanged lines hidden (view full) --- 121}; 122 123static struct usb_configuration printer_cfg_driver = { 124 .label = "printer", 125 .bConfigurationValue = 1, 126 .bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER, 127}; 128 | 1/* 2 * printer.c -- Printer gadget driver 3 * 4 * Copyright (C) 2003-2005 David Brownell 5 * Copyright (C) 2006 Craig W. Nadler 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by --- 112 unchanged lines hidden (view full) --- 121}; 122 123static struct usb_configuration printer_cfg_driver = { 124 .label = "printer", 125 .bConfigurationValue = 1, 126 .bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER, 127}; 128 |
129static int __init printer_do_config(struct usb_configuration *c) | 129static int printer_do_config(struct usb_configuration *c) |
130{ 131 struct usb_gadget *gadget = c->cdev->gadget; 132 int status = 0; 133 134 usb_ep_autoconfig_reset(gadget); 135 136 usb_gadget_set_selfpowered(gadget); 137 --- 9 unchanged lines hidden (view full) --- 147 148 status = usb_add_function(c, f_printer); 149 if (status < 0) 150 usb_put_function(f_printer); 151 152 return status; 153} 154 | 130{ 131 struct usb_gadget *gadget = c->cdev->gadget; 132 int status = 0; 133 134 usb_ep_autoconfig_reset(gadget); 135 136 usb_gadget_set_selfpowered(gadget); 137 --- 9 unchanged lines hidden (view full) --- 147 148 status = usb_add_function(c, f_printer); 149 if (status < 0) 150 usb_put_function(f_printer); 151 152 return status; 153} 154 |
155static int __init printer_bind(struct usb_composite_dev *cdev) | 155static int printer_bind(struct usb_composite_dev *cdev) |
156{ 157 struct f_printer_opts *opts; 158 int ret, len; 159 160 fi_printer = usb_get_function_instance("printer"); 161 if (IS_ERR(fi_printer)) 162 return PTR_ERR(fi_printer); 163 --- 22 unchanged lines hidden (view full) --- 186 if (ret) { 187 usb_put_function_instance(fi_printer); 188 return ret; 189 } 190 usb_composite_overwrite_options(cdev, &coverwrite); 191 return ret; 192} 193 | 156{ 157 struct f_printer_opts *opts; 158 int ret, len; 159 160 fi_printer = usb_get_function_instance("printer"); 161 if (IS_ERR(fi_printer)) 162 return PTR_ERR(fi_printer); 163 --- 22 unchanged lines hidden (view full) --- 186 if (ret) { 187 usb_put_function_instance(fi_printer); 188 return ret; 189 } 190 usb_composite_overwrite_options(cdev, &coverwrite); 191 return ret; 192} 193 |
194static int __exit printer_unbind(struct usb_composite_dev *cdev) | 194static int printer_unbind(struct usb_composite_dev *cdev) |
195{ 196 usb_put_function(f_printer); 197 usb_put_function_instance(fi_printer); 198 199 return 0; 200} 201 | 195{ 196 usb_put_function(f_printer); 197 usb_put_function_instance(fi_printer); 198 199 return 0; 200} 201 |
202static __refdata struct usb_composite_driver printer_driver = { | 202static struct usb_composite_driver printer_driver = { |
203 .name = shortname, 204 .dev = &device_desc, 205 .strings = dev_strings, 206 .max_speed = USB_SPEED_SUPER, 207 .bind = printer_bind, 208 .unbind = printer_unbind, 209}; 210 211module_usb_composite_driver(printer_driver); 212 213MODULE_DESCRIPTION(DRIVER_DESC); 214MODULE_AUTHOR("Craig Nadler"); 215MODULE_LICENSE("GPL"); | 203 .name = shortname, 204 .dev = &device_desc, 205 .strings = dev_strings, 206 .max_speed = USB_SPEED_SUPER, 207 .bind = printer_bind, 208 .unbind = printer_unbind, 209}; 210 211module_usb_composite_driver(printer_driver); 212 213MODULE_DESCRIPTION(DRIVER_DESC); 214MODULE_AUTHOR("Craig Nadler"); 215MODULE_LICENSE("GPL"); |