diff options
| -rw-r--r-- | drivers/usb/chipidea/ci_hdrc_pci.c | 7 | ||||
| -rw-r--r-- | drivers/usb/gadget/f_fs.c | 2 | ||||
| -rw-r--r-- | drivers/usb/gadget/pxa25x_udc.c | 9 | ||||
| -rw-r--r-- | drivers/usb/gadget/s3c-hsotg.c | 2 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_dsps.c | 3 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_gadget.c | 5 | ||||
| -rw-r--r-- | drivers/usb/phy/phy-gpio-vbus-usb.c | 11 | ||||
| -rw-r--r-- | drivers/usb/serial/option.c | 3 |
8 files changed, 29 insertions, 13 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_pci.c b/drivers/usb/chipidea/ci_hdrc_pci.c index 042320a6c6c7..d514332ac081 100644 --- a/drivers/usb/chipidea/ci_hdrc_pci.c +++ b/drivers/usb/chipidea/ci_hdrc_pci.c | |||
| @@ -129,7 +129,12 @@ static DEFINE_PCI_DEVICE_TABLE(ci_hdrc_pci_id_table) = { | |||
| 129 | PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829), | 129 | PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829), |
| 130 | .driver_data = (kernel_ulong_t)&penwell_pci_platdata, | 130 | .driver_data = (kernel_ulong_t)&penwell_pci_platdata, |
| 131 | }, | 131 | }, |
| 132 | { 0, 0, 0, 0, 0, 0, 0 /* end: all zeroes */ } | 132 | { |
| 133 | /* Intel Clovertrail */ | ||
| 134 | PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe006), | ||
| 135 | .driver_data = (kernel_ulong_t)&penwell_pci_platdata, | ||
| 136 | }, | ||
| 137 | { 0 } /* end: all zeroes */ | ||
| 133 | }; | 138 | }; |
| 134 | MODULE_DEVICE_TABLE(pci, ci_hdrc_pci_id_table); | 139 | MODULE_DEVICE_TABLE(pci, ci_hdrc_pci_id_table); |
| 135 | 140 | ||
diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c index 0658908d8968..44cf775a8627 100644 --- a/drivers/usb/gadget/f_fs.c +++ b/drivers/usb/gadget/f_fs.c | |||
| @@ -2256,6 +2256,8 @@ static int ffs_func_bind(struct usb_configuration *c, | |||
| 2256 | data->raw_descs + ret, | 2256 | data->raw_descs + ret, |
| 2257 | (sizeof data->raw_descs) - ret, | 2257 | (sizeof data->raw_descs) - ret, |
| 2258 | __ffs_func_bind_do_descs, func); | 2258 | __ffs_func_bind_do_descs, func); |
| 2259 | if (unlikely(ret < 0)) | ||
| 2260 | goto error; | ||
| 2259 | } | 2261 | } |
| 2260 | 2262 | ||
| 2261 | /* | 2263 | /* |
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c index cc9207473dbc..0ac6064aa3b8 100644 --- a/drivers/usb/gadget/pxa25x_udc.c +++ b/drivers/usb/gadget/pxa25x_udc.c | |||
| @@ -2054,7 +2054,7 @@ static struct pxa25x_udc memory = { | |||
| 2054 | /* | 2054 | /* |
| 2055 | * probe - binds to the platform device | 2055 | * probe - binds to the platform device |
| 2056 | */ | 2056 | */ |
| 2057 | static int __init pxa25x_udc_probe(struct platform_device *pdev) | 2057 | static int pxa25x_udc_probe(struct platform_device *pdev) |
| 2058 | { | 2058 | { |
| 2059 | struct pxa25x_udc *dev = &memory; | 2059 | struct pxa25x_udc *dev = &memory; |
| 2060 | int retval, irq; | 2060 | int retval, irq; |
| @@ -2203,7 +2203,7 @@ static void pxa25x_udc_shutdown(struct platform_device *_dev) | |||
| 2203 | pullup_off(); | 2203 | pullup_off(); |
| 2204 | } | 2204 | } |
| 2205 | 2205 | ||
| 2206 | static int __exit pxa25x_udc_remove(struct platform_device *pdev) | 2206 | static int pxa25x_udc_remove(struct platform_device *pdev) |
| 2207 | { | 2207 | { |
| 2208 | struct pxa25x_udc *dev = platform_get_drvdata(pdev); | 2208 | struct pxa25x_udc *dev = platform_get_drvdata(pdev); |
| 2209 | 2209 | ||
| @@ -2294,7 +2294,8 @@ static int pxa25x_udc_resume(struct platform_device *dev) | |||
| 2294 | 2294 | ||
| 2295 | static struct platform_driver udc_driver = { | 2295 | static struct platform_driver udc_driver = { |
| 2296 | .shutdown = pxa25x_udc_shutdown, | 2296 | .shutdown = pxa25x_udc_shutdown, |
| 2297 | .remove = __exit_p(pxa25x_udc_remove), | 2297 | .probe = pxa25x_udc_probe, |
| 2298 | .remove = pxa25x_udc_remove, | ||
| 2298 | .suspend = pxa25x_udc_suspend, | 2299 | .suspend = pxa25x_udc_suspend, |
| 2299 | .resume = pxa25x_udc_resume, | 2300 | .resume = pxa25x_udc_resume, |
| 2300 | .driver = { | 2301 | .driver = { |
| @@ -2303,7 +2304,7 @@ static struct platform_driver udc_driver = { | |||
| 2303 | }, | 2304 | }, |
| 2304 | }; | 2305 | }; |
| 2305 | 2306 | ||
| 2306 | module_platform_driver_probe(udc_driver, pxa25x_udc_probe); | 2307 | module_platform_driver(udc_driver); |
| 2307 | 2308 | ||
| 2308 | MODULE_DESCRIPTION(DRIVER_DESC); | 2309 | MODULE_DESCRIPTION(DRIVER_DESC); |
| 2309 | MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell"); | 2310 | MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell"); |
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c index 6bddf1aa2347..a8a99e4748d5 100644 --- a/drivers/usb/gadget/s3c-hsotg.c +++ b/drivers/usb/gadget/s3c-hsotg.c | |||
| @@ -543,7 +543,7 @@ static int s3c_hsotg_write_fifo(struct s3c_hsotg *hsotg, | |||
| 543 | * FIFO, requests of >512 cause the endpoint to get stuck with a | 543 | * FIFO, requests of >512 cause the endpoint to get stuck with a |
| 544 | * fragment of the end of the transfer in it. | 544 | * fragment of the end of the transfer in it. |
| 545 | */ | 545 | */ |
| 546 | if (can_write > 512) | 546 | if (can_write > 512 && !periodic) |
| 547 | can_write = 512; | 547 | can_write = 512; |
| 548 | 548 | ||
| 549 | /* | 549 | /* |
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index 4047cbb91bac..bd4138d80a48 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c | |||
| @@ -535,6 +535,9 @@ static int dsps_probe(struct platform_device *pdev) | |||
| 535 | struct dsps_glue *glue; | 535 | struct dsps_glue *glue; |
| 536 | int ret; | 536 | int ret; |
| 537 | 537 | ||
| 538 | if (!strcmp(pdev->name, "musb-hdrc")) | ||
| 539 | return -ENODEV; | ||
| 540 | |||
| 538 | match = of_match_node(musb_dsps_of_match, pdev->dev.of_node); | 541 | match = of_match_node(musb_dsps_of_match, pdev->dev.of_node); |
| 539 | if (!match) { | 542 | if (!match) { |
| 540 | dev_err(&pdev->dev, "fail to get matching of_match struct\n"); | 543 | dev_err(&pdev->dev, "fail to get matching of_match struct\n"); |
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c index 9a08679d204d..b19ed213ab85 100644 --- a/drivers/usb/musb/musb_gadget.c +++ b/drivers/usb/musb/musb_gadget.c | |||
| @@ -1790,6 +1790,10 @@ int musb_gadget_setup(struct musb *musb) | |||
| 1790 | musb->g.max_speed = USB_SPEED_HIGH; | 1790 | musb->g.max_speed = USB_SPEED_HIGH; |
| 1791 | musb->g.speed = USB_SPEED_UNKNOWN; | 1791 | musb->g.speed = USB_SPEED_UNKNOWN; |
| 1792 | 1792 | ||
| 1793 | MUSB_DEV_MODE(musb); | ||
| 1794 | musb->xceiv->otg->default_a = 0; | ||
| 1795 | musb->xceiv->state = OTG_STATE_B_IDLE; | ||
| 1796 | |||
| 1793 | /* this "gadget" abstracts/virtualizes the controller */ | 1797 | /* this "gadget" abstracts/virtualizes the controller */ |
| 1794 | musb->g.name = musb_driver_name; | 1798 | musb->g.name = musb_driver_name; |
| 1795 | musb->g.is_otg = 1; | 1799 | musb->g.is_otg = 1; |
| @@ -1849,7 +1853,6 @@ static int musb_gadget_start(struct usb_gadget *g, | |||
| 1849 | musb->gadget_driver = driver; | 1853 | musb->gadget_driver = driver; |
| 1850 | 1854 | ||
| 1851 | spin_lock_irqsave(&musb->lock, flags); | 1855 | spin_lock_irqsave(&musb->lock, flags); |
| 1852 | musb->is_active = 1; | ||
| 1853 | 1856 | ||
| 1854 | otg_set_peripheral(otg, &musb->g); | 1857 | otg_set_peripheral(otg, &musb->g); |
| 1855 | musb->xceiv->state = OTG_STATE_B_IDLE; | 1858 | musb->xceiv->state = OTG_STATE_B_IDLE; |
diff --git a/drivers/usb/phy/phy-gpio-vbus-usb.c b/drivers/usb/phy/phy-gpio-vbus-usb.c index b2f29c9aebbf..02799a5efcd4 100644 --- a/drivers/usb/phy/phy-gpio-vbus-usb.c +++ b/drivers/usb/phy/phy-gpio-vbus-usb.c | |||
| @@ -241,7 +241,7 @@ static int gpio_vbus_set_suspend(struct usb_phy *phy, int suspend) | |||
| 241 | 241 | ||
| 242 | /* platform driver interface */ | 242 | /* platform driver interface */ |
| 243 | 243 | ||
| 244 | static int __init gpio_vbus_probe(struct platform_device *pdev) | 244 | static int gpio_vbus_probe(struct platform_device *pdev) |
| 245 | { | 245 | { |
| 246 | struct gpio_vbus_mach_info *pdata = dev_get_platdata(&pdev->dev); | 246 | struct gpio_vbus_mach_info *pdata = dev_get_platdata(&pdev->dev); |
| 247 | struct gpio_vbus_data *gpio_vbus; | 247 | struct gpio_vbus_data *gpio_vbus; |
| @@ -349,7 +349,7 @@ err_gpio: | |||
| 349 | return err; | 349 | return err; |
| 350 | } | 350 | } |
| 351 | 351 | ||
| 352 | static int __exit gpio_vbus_remove(struct platform_device *pdev) | 352 | static int gpio_vbus_remove(struct platform_device *pdev) |
| 353 | { | 353 | { |
| 354 | struct gpio_vbus_data *gpio_vbus = platform_get_drvdata(pdev); | 354 | struct gpio_vbus_data *gpio_vbus = platform_get_drvdata(pdev); |
| 355 | struct gpio_vbus_mach_info *pdata = dev_get_platdata(&pdev->dev); | 355 | struct gpio_vbus_mach_info *pdata = dev_get_platdata(&pdev->dev); |
| @@ -398,8 +398,6 @@ static const struct dev_pm_ops gpio_vbus_dev_pm_ops = { | |||
| 398 | }; | 398 | }; |
| 399 | #endif | 399 | #endif |
| 400 | 400 | ||
| 401 | /* NOTE: the gpio-vbus device may *NOT* be hotplugged */ | ||
| 402 | |||
| 403 | MODULE_ALIAS("platform:gpio-vbus"); | 401 | MODULE_ALIAS("platform:gpio-vbus"); |
| 404 | 402 | ||
| 405 | static struct platform_driver gpio_vbus_driver = { | 403 | static struct platform_driver gpio_vbus_driver = { |
| @@ -410,10 +408,11 @@ static struct platform_driver gpio_vbus_driver = { | |||
| 410 | .pm = &gpio_vbus_dev_pm_ops, | 408 | .pm = &gpio_vbus_dev_pm_ops, |
| 411 | #endif | 409 | #endif |
| 412 | }, | 410 | }, |
| 413 | .remove = __exit_p(gpio_vbus_remove), | 411 | .probe = gpio_vbus_probe, |
| 412 | .remove = gpio_vbus_remove, | ||
| 414 | }; | 413 | }; |
| 415 | 414 | ||
| 416 | module_platform_driver_probe(gpio_vbus_driver, gpio_vbus_probe); | 415 | module_platform_driver(gpio_vbus_driver); |
| 417 | 416 | ||
| 418 | MODULE_DESCRIPTION("simple GPIO controlled OTG transceiver driver"); | 417 | MODULE_DESCRIPTION("simple GPIO controlled OTG transceiver driver"); |
| 419 | MODULE_AUTHOR("Philipp Zabel"); | 418 | MODULE_AUTHOR("Philipp Zabel"); |
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 1cf6f125f5f0..80a7104d5ddb 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
| @@ -81,6 +81,7 @@ static void option_instat_callback(struct urb *urb); | |||
| 81 | 81 | ||
| 82 | #define HUAWEI_VENDOR_ID 0x12D1 | 82 | #define HUAWEI_VENDOR_ID 0x12D1 |
| 83 | #define HUAWEI_PRODUCT_E173 0x140C | 83 | #define HUAWEI_PRODUCT_E173 0x140C |
| 84 | #define HUAWEI_PRODUCT_E1750 0x1406 | ||
| 84 | #define HUAWEI_PRODUCT_K4505 0x1464 | 85 | #define HUAWEI_PRODUCT_K4505 0x1464 |
| 85 | #define HUAWEI_PRODUCT_K3765 0x1465 | 86 | #define HUAWEI_PRODUCT_K3765 0x1465 |
| 86 | #define HUAWEI_PRODUCT_K4605 0x14C6 | 87 | #define HUAWEI_PRODUCT_K4605 0x14C6 |
| @@ -567,6 +568,8 @@ static const struct usb_device_id option_ids[] = { | |||
| 567 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) }, | 568 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) }, |
| 568 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff), | 569 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff), |
| 569 | .driver_info = (kernel_ulong_t) &net_intf1_blacklist }, | 570 | .driver_info = (kernel_ulong_t) &net_intf1_blacklist }, |
| 571 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1750, 0xff, 0xff, 0xff), | ||
| 572 | .driver_info = (kernel_ulong_t) &net_intf2_blacklist }, | ||
| 570 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) }, | 573 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) }, |
| 571 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) }, | 574 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) }, |
| 572 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff), | 575 | { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff), |
