nokia.c (b10778a00d40b3d9fdaaf5891e802794781ff71c) | nokia.c (c94e289f195e0e13cf34d27f9338d28221a85751) |
---|---|
1/* 2 * nokia.c -- Nokia Composite Gadget Driver 3 * 4 * Copyright (C) 2008-2010 Nokia Corporation 5 * Contact: Felipe Balbi <felipe.balbi@nokia.com> 6 * 7 * This gadget driver borrows from serial.c which is: 8 * --- 104 unchanged lines hidden (view full) --- 113}; 114 115static struct usb_function_instance *fi_acm; 116static struct usb_function_instance *fi_ecm; 117static struct usb_function_instance *fi_obex1; 118static struct usb_function_instance *fi_obex2; 119static struct usb_function_instance *fi_phonet; 120 | 1/* 2 * nokia.c -- Nokia Composite Gadget Driver 3 * 4 * Copyright (C) 2008-2010 Nokia Corporation 5 * Contact: Felipe Balbi <felipe.balbi@nokia.com> 6 * 7 * This gadget driver borrows from serial.c which is: 8 * --- 104 unchanged lines hidden (view full) --- 113}; 114 115static struct usb_function_instance *fi_acm; 116static struct usb_function_instance *fi_ecm; 117static struct usb_function_instance *fi_obex1; 118static struct usb_function_instance *fi_obex2; 119static struct usb_function_instance *fi_phonet; 120 |
121static int __init nokia_bind_config(struct usb_configuration *c) | 121static int nokia_bind_config(struct usb_configuration *c) |
122{ 123 struct usb_function *f_acm; 124 struct usb_function *f_phonet = NULL; 125 struct usb_function *f_obex1 = NULL; 126 struct usb_function *f_ecm; 127 struct usb_function *f_obex2 = NULL; 128 int status = 0; 129 int obex1_stat = -1; --- 89 unchanged lines hidden (view full) --- 219 usb_put_function(f_obex2); 220 if (!IS_ERR_OR_NULL(f_obex1)) 221 usb_put_function(f_obex1); 222 if (!IS_ERR_OR_NULL(f_phonet)) 223 usb_put_function(f_phonet); 224 return status; 225} 226 | 122{ 123 struct usb_function *f_acm; 124 struct usb_function *f_phonet = NULL; 125 struct usb_function *f_obex1 = NULL; 126 struct usb_function *f_ecm; 127 struct usb_function *f_obex2 = NULL; 128 int status = 0; 129 int obex1_stat = -1; --- 89 unchanged lines hidden (view full) --- 219 usb_put_function(f_obex2); 220 if (!IS_ERR_OR_NULL(f_obex1)) 221 usb_put_function(f_obex1); 222 if (!IS_ERR_OR_NULL(f_phonet)) 223 usb_put_function(f_phonet); 224 return status; 225} 226 |
227static int __init nokia_bind(struct usb_composite_dev *cdev) | 227static int nokia_bind(struct usb_composite_dev *cdev) |
228{ 229 struct usb_gadget *gadget = cdev->gadget; 230 int status; 231 232 status = usb_string_ids_tab(cdev, strings_dev); 233 if (status < 0) 234 goto err_usb; 235 device_desc.iManufacturer = strings_dev[USB_GADGET_MANUFACTURER_IDX].id; --- 66 unchanged lines hidden (view full) --- 302 if (!IS_ERR(fi_obex1)) 303 usb_put_function_instance(fi_obex1); 304 if (!IS_ERR(fi_phonet)) 305 usb_put_function_instance(fi_phonet); 306err_usb: 307 return status; 308} 309 | 228{ 229 struct usb_gadget *gadget = cdev->gadget; 230 int status; 231 232 status = usb_string_ids_tab(cdev, strings_dev); 233 if (status < 0) 234 goto err_usb; 235 device_desc.iManufacturer = strings_dev[USB_GADGET_MANUFACTURER_IDX].id; --- 66 unchanged lines hidden (view full) --- 302 if (!IS_ERR(fi_obex1)) 303 usb_put_function_instance(fi_obex1); 304 if (!IS_ERR(fi_phonet)) 305 usb_put_function_instance(fi_phonet); 306err_usb: 307 return status; 308} 309 |
310static int __exit nokia_unbind(struct usb_composite_dev *cdev) | 310static int nokia_unbind(struct usb_composite_dev *cdev) |
311{ 312 if (!IS_ERR_OR_NULL(f_obex1_cfg2)) 313 usb_put_function(f_obex1_cfg2); 314 if (!IS_ERR_OR_NULL(f_obex2_cfg2)) 315 usb_put_function(f_obex2_cfg2); 316 if (!IS_ERR_OR_NULL(f_obex1_cfg1)) 317 usb_put_function(f_obex1_cfg1); 318 if (!IS_ERR_OR_NULL(f_obex2_cfg1)) --- 14 unchanged lines hidden (view full) --- 333 usb_put_function_instance(fi_obex1); 334 if (!IS_ERR(fi_phonet)) 335 usb_put_function_instance(fi_phonet); 336 usb_put_function_instance(fi_acm); 337 338 return 0; 339} 340 | 311{ 312 if (!IS_ERR_OR_NULL(f_obex1_cfg2)) 313 usb_put_function(f_obex1_cfg2); 314 if (!IS_ERR_OR_NULL(f_obex2_cfg2)) 315 usb_put_function(f_obex2_cfg2); 316 if (!IS_ERR_OR_NULL(f_obex1_cfg1)) 317 usb_put_function(f_obex1_cfg1); 318 if (!IS_ERR_OR_NULL(f_obex2_cfg1)) --- 14 unchanged lines hidden (view full) --- 333 usb_put_function_instance(fi_obex1); 334 if (!IS_ERR(fi_phonet)) 335 usb_put_function_instance(fi_phonet); 336 usb_put_function_instance(fi_acm); 337 338 return 0; 339} 340 |
341static __refdata struct usb_composite_driver nokia_driver = { | 341static struct usb_composite_driver nokia_driver = { |
342 .name = "g_nokia", 343 .dev = &device_desc, 344 .strings = dev_strings, 345 .max_speed = USB_SPEED_HIGH, 346 .bind = nokia_bind, | 342 .name = "g_nokia", 343 .dev = &device_desc, 344 .strings = dev_strings, 345 .max_speed = USB_SPEED_HIGH, 346 .bind = nokia_bind, |
347 .unbind = __exit_p(nokia_unbind), | 347 .unbind = nokia_unbind, |
348}; 349 350module_usb_composite_driver(nokia_driver); | 348}; 349 350module_usb_composite_driver(nokia_driver); |