Pull USB fixes from Greg KH: "Here are some last-remaining fixes for USB drivers to resolve issues that have shown up in testing. And two new device ids as well. All of these have been in linux-next with no reported issues" * tag 'usb-4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: Revert "USB / PM: Allow USB devices to remain runtime-suspended when sleeping" usb: musb: jz4740: fix error check of usb_get_phy() Revert "usb: musb: musb_host: Enable HCD_BH flag to handle urb return in bottom half" usb: musb: gadget: nuke endpoint before setting its descriptor to NULL USB: serial: cp210x: add Straizona Focusers device ids USB: serial: cp210x: add ID for Link ECU
Unified · Split
| @@ -249,18 +249,12 @@ static int usb_port_runtime_suspend(struct device *dev) · 248 unmodified lines | |||
| 249 | 249 | ||
| 250 | return retval; | 250 | return retval; |
| 251 | } | 251 | } |
| 252 | |||
| 253 | static int usb_port_prepare(struct device *dev) | ||
| 254 | { | ||
| 255 | return 1; | ||
| 256 | } | ||
| 257 | #endif | 252 | #endif |
| 258 | 253 | ||
| 259 | static const struct dev_pm_ops usb_port_pm_ops = { | 254 | static const struct dev_pm_ops usb_port_pm_ops = { |
| 260 | #ifdef CONFIG_PM | 255 | #ifdef CONFIG_PM |
| 261 | .runtime_suspend = usb_port_runtime_suspend, | 256 | .runtime_suspend = usb_port_runtime_suspend, |
| 262 | .runtime_resume = usb_port_runtime_resume, | 257 | .runtime_resume = usb_port_runtime_resume, |
| 263 | .prepare = usb_port_prepare, | ||
| 264 | #endif | 258 | #endif |
| 265 | }; | 259 | }; |
| 266 | 260 | ||
| @@ -312,13 +312,7 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) · 311 unmodified lines | |||
| 312 | 312 | ||
| 313 | static int usb_dev_prepare(struct device *dev) | 313 | static int usb_dev_prepare(struct device *dev) |
| 314 | { | 314 | { |
| 315 | struct usb_device *udev = to_usb_device(dev); | 315 | return 0; /* Implement eventually? */ |
| 316 | |||
| 317 | /* Return 0 if the current wakeup setting is wrong, otherwise 1 */ | ||
| 318 | if (udev->do_remote_wakeup != device_may_wakeup(dev)) | ||
| 319 | return 0; | ||
| 320 | |||
| 321 | return 1; | ||
| 322 | } | 316 | } |
| 323 | 317 | ||
| 324 | static void usb_dev_complete(struct device *dev) | 318 | static void usb_dev_complete(struct device *dev) |
| @@ -83,9 +83,9 @@ static int jz4740_musb_init(struct musb *musb) · 82 unmodified lines | |||
| 83 | { | 83 | { |
| 84 | usb_phy_generic_register(); | 84 | usb_phy_generic_register(); |
| 85 | musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2); | 85 | musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2); |
| 86 | if (!musb->xceiv) { | 86 | if (IS_ERR(musb->xceiv)) { |
| 87 | pr_err("HS UDC: no transceiver configured\n"); | 87 | pr_err("HS UDC: no transceiver configured\n"); |
| 88 | return -ENODEV; | 88 | return PTR_ERR(musb->xceiv); |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | /* Silicon does not implement ConfigData register. | 91 | /* Silicon does not implement ConfigData register. |
| @@ -1164,12 +1164,12 @@ static int musb_gadget_disable(struct usb_ep *ep) · 1163 unmodified lines | |||
| 1164 | musb_writew(epio, MUSB_RXMAXP, 0); | 1164 | musb_writew(epio, MUSB_RXMAXP, 0); |
| 1165 | } | 1165 | } |
| 1166 | 1166 | ||
| 1167 | musb_ep->desc = NULL; | ||
| 1168 | musb_ep->end_point.desc = NULL; | ||
| 1169 | |||
| 1170 | /* abort all pending DMA and requests */ | 1167 | /* abort all pending DMA and requests */ |
| 1171 | nuke(musb_ep, -ESHUTDOWN); | 1168 | nuke(musb_ep, -ESHUTDOWN); |
| 1172 | 1169 | ||
| 1170 | musb_ep->desc = NULL; | ||
| 1171 | musb_ep->end_point.desc = NULL; | ||
| 1172 | |||
| 1173 | schedule_work(&musb->irq_work); | 1173 | schedule_work(&musb->irq_work); |
| 1174 | 1174 | ||
| 1175 | spin_unlock_irqrestore(&(musb->lock), flags); | 1175 | spin_unlock_irqrestore(&(musb->lock), flags); |
| @@ -2735,7 +2735,7 @@ static const struct hc_driver musb_hc_driver = { · 2734 unmodified lines | |||
| 2735 | .description = "musb-hcd", | 2735 | .description = "musb-hcd", |
| 2736 | .product_desc = "MUSB HDRC host driver", | 2736 | .product_desc = "MUSB HDRC host driver", |
| 2737 | .hcd_priv_size = sizeof(struct musb *), | 2737 | .hcd_priv_size = sizeof(struct musb *), |
| 2738 | .flags = HCD_USB2 | HCD_MEMORY | HCD_BH, | 2738 | .flags = HCD_USB2 | HCD_MEMORY, |
| 2739 | 2739 | ||
| 2740 | /* not using irq handler or reset hooks from usbcore, since | 2740 | /* not using irq handler or reset hooks from usbcore, since |
| 2741 | * those must be shared with peripheral code for OTG configs | 2741 | * those must be shared with peripheral code for OTG configs |
| @@ -109,6 +109,7 @@ static const struct usb_device_id id_table[] = { · 108 unmodified lines | |||
| 109 | { USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */ | 109 | { USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */ |
| 110 | { USB_DEVICE(0x10C4, 0x8281) }, /* Nanotec Plug & Drive */ | 110 | { USB_DEVICE(0x10C4, 0x8281) }, /* Nanotec Plug & Drive */ |
| 111 | { USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */ | 111 | { USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */ |
| 112 | { USB_DEVICE(0x10C4, 0x82F4) }, /* Starizona MicroTouch */ | ||
| 112 | { USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */ | 113 | { USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */ |
| 113 | { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ | 114 | { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ |
| 114 | { USB_DEVICE(0x10C4, 0x8382) }, /* Cygnal Integrated Products, Inc. */ | 115 | { USB_DEVICE(0x10C4, 0x8382) }, /* Cygnal Integrated Products, Inc. */ |
| @@ -118,6 +119,7 @@ static const struct usb_device_id id_table[] = { · 3 unmodified lines | |||
| 118 | { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */ | 119 | { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */ |
| 119 | { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ | 120 | { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ |
| 120 | { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ | 121 | { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ |
| 122 | { USB_DEVICE(0x10C4, 0x84B6) }, /* Starizona Hyperion */ | ||
| 121 | { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ | 123 | { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ |
| 122 | { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ | 124 | { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ |
| 123 | { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ | 125 | { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ |
| @@ -141,6 +143,8 @@ static const struct usb_device_id id_table[] = { · 17 unmodified lines | |||
| 141 | { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */ | 143 | { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */ |
| 142 | { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ | 144 | { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ |
| 143 | { USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */ | 145 | { USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */ |
| 146 | { USB_DEVICE(0x12B8, 0xEC60) }, /* Link G4 ECU */ | ||
| 147 | { USB_DEVICE(0x12B8, 0xEC62) }, /* Link G4+ ECU */ | ||
| 144 | { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ | 148 | { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ |
| 145 | { USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */ | 149 | { USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */ |
| 146 | { USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */ | 150 | { USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */ |