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 | 250 | return retval; |
| 251 | 251 | } |
| 252 | − | |
| 253 | −static int usb_port_prepare(struct device *dev) | |
| 254 | −{ | |
| 255 | − return 1; | |
| 256 | −} | |
| 257 | 252 | #endif |
| 258 | 253 | |
| 259 | 254 | static const struct dev_pm_ops usb_port_pm_ops = { |
| 260 | 255 | #ifdef CONFIG_PM |
| 261 | 256 | .runtime_suspend = usb_port_runtime_suspend, |
| 262 | 257 | .runtime_resume = usb_port_runtime_resume, |
| 263 | − .prepare = usb_port_prepare, | |
| 264 | 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 | 313 | static int usb_dev_prepare(struct device *dev) |
| 314 | 314 | { |
| 315 | − struct usb_device *udev = to_usb_device(dev); | |
| 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; | |
| 315 | + return 0; /* Implement eventually? */ | |
| 322 | 316 | } |
| 323 | 317 | |
| 324 | 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 | 84 | usb_phy_generic_register(); |
| 85 | 85 | musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2); |
| 86 | − if (!musb->xceiv) { | |
| 86 | + if (IS_ERR(musb->xceiv)) { | |
| 87 | 87 | pr_err("HS UDC: no transceiver configured\n"); |
| 88 | − return -ENODEV; | |
| 88 | + return PTR_ERR(musb->xceiv); | |
| 89 | 89 | } |
| 90 | 90 | |
| 91 | 91 | /* Silicon does not implement ConfigData register. |
| @@ -1164,12 +1164,12 @@ static int musb_gadget_disable(struct usb_ep *ep) · 1163 unmodified lines | ||
| 1164 | 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 | 1167 | /* abort all pending DMA and requests */ |
| 1171 | 1168 | nuke(musb_ep, -ESHUTDOWN); |
| 1172 | 1169 | |
| 1170 | + musb_ep->desc = NULL; | |
| 1171 | + musb_ep->end_point.desc = NULL; | |
| 1172 | + | |
| 1173 | 1173 | schedule_work(&musb->irq_work); |
| 1174 | 1174 | |
| 1175 | 1175 | spin_unlock_irqrestore(&(musb->lock), flags); |
| @@ -2735,7 +2735,7 @@ static const struct hc_driver musb_hc_driver = { · 2734 unmodified lines | ||
| 2735 | 2735 | .description = "musb-hcd", |
| 2736 | 2736 | .product_desc = "MUSB HDRC host driver", |
| 2737 | 2737 | .hcd_priv_size = sizeof(struct musb *), |
| 2738 | − .flags = HCD_USB2 | HCD_MEMORY | HCD_BH, | |
| 2738 | + .flags = HCD_USB2 | HCD_MEMORY, | |
| 2739 | 2739 | |
| 2740 | 2740 | /* not using irq handler or reset hooks from usbcore, since |
| 2741 | 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 | 109 | { USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */ |
| 110 | 110 | { USB_DEVICE(0x10C4, 0x8281) }, /* Nanotec Plug & Drive */ |
| 111 | 111 | { USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */ |
| 112 | + { USB_DEVICE(0x10C4, 0x82F4) }, /* Starizona MicroTouch */ | |
| 112 | 113 | { USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */ |
| 113 | 114 | { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ |
| 114 | 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 | 119 | { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */ |
| 119 | 120 | { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ |
| 120 | 121 | { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ |
| 122 | + { USB_DEVICE(0x10C4, 0x84B6) }, /* Starizona Hyperion */ | |
| 121 | 123 | { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ |
| 122 | 124 | { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ |
| 123 | 125 | { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ |
| @@ -141,6 +143,8 @@ static const struct usb_device_id id_table[] = { · 17 unmodified lines | ||
| 141 | 143 | { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */ |
| 142 | 144 | { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ |
| 143 | 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 | 148 | { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ |
| 145 | 149 | { USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */ |
| 146 | 150 | { USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */ |