History

Merge tag 'usb-4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

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

Linus Torvalds committed 10 years ago

Commit 3f8f0cf2 parents 9125aeb 9be427e6 files · +11 −19Browse files

Unified · Split

6 files
  1. drivers/usb/core/port.c +0 −6
  2. drivers/usb/core/usb.c +1 −7
  3. drivers/usb/musb/jz4740.c +2 −2
  4. drivers/usb/musb/musb_gadget.c +3 −3
  5. drivers/usb/musb/musb_host.c +1 −1
  6. drivers/usb/serial/cp210x.c +4 −0
drivers/usb/core/port.c+0−6
@@ -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
253static int usb_port_prepare(struct device *dev)
254{
255 return 1;
256}
257#endif252#endif
258 253
259static const struct dev_pm_ops usb_port_pm_ops = {254static const struct dev_pm_ops usb_port_pm_ops = {
260#ifdef CONFIG_PM255#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#endif258#endif
265};259};
266 260
drivers/usb/core/usb.c+1−7
@@ -312,13 +312,7 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) · 311 unmodified lines
312 312
313static int usb_dev_prepare(struct device *dev)313static 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
324static void usb_dev_complete(struct device *dev)318static void usb_dev_complete(struct device *dev)
drivers/usb/musb/jz4740.c+2−2
@@ -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.
drivers/usb/musb/musb_gadget.c+3−3
@@ -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);
drivers/usb/musb/musb_host.c+1−1
@@ -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, since2740 /* not using irq handler or reset hooks from usbcore, since
2741 * those must be shared with peripheral code for OTG configs2741 * those must be shared with peripheral code for OTG configs
drivers/usb/serial/cp210x.c+4−0
@@ -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 */