提交 3f8f0cf2 编写于 作者: L Linus Torvalds

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
...@@ -249,18 +249,12 @@ static int usb_port_runtime_suspend(struct device *dev) ...@@ -249,18 +249,12 @@ static int usb_port_runtime_suspend(struct device *dev)
return retval; return retval;
} }
static int usb_port_prepare(struct device *dev)
{
return 1;
}
#endif #endif
static const struct dev_pm_ops usb_port_pm_ops = { static const struct dev_pm_ops usb_port_pm_ops = {
#ifdef CONFIG_PM #ifdef CONFIG_PM
.runtime_suspend = usb_port_runtime_suspend, .runtime_suspend = usb_port_runtime_suspend,
.runtime_resume = usb_port_runtime_resume, .runtime_resume = usb_port_runtime_resume,
.prepare = usb_port_prepare,
#endif #endif
}; };
......
...@@ -312,13 +312,7 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) ...@@ -312,13 +312,7 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
static int usb_dev_prepare(struct device *dev) static int usb_dev_prepare(struct device *dev)
{ {
struct usb_device *udev = to_usb_device(dev); return 0; /* Implement eventually? */
/* Return 0 if the current wakeup setting is wrong, otherwise 1 */
if (udev->do_remote_wakeup != device_may_wakeup(dev))
return 0;
return 1;
} }
static void usb_dev_complete(struct device *dev) static void usb_dev_complete(struct device *dev)
......
...@@ -83,9 +83,9 @@ static int jz4740_musb_init(struct musb *musb) ...@@ -83,9 +83,9 @@ static int jz4740_musb_init(struct musb *musb)
{ {
usb_phy_generic_register(); usb_phy_generic_register();
musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2); musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
if (!musb->xceiv) { if (IS_ERR(musb->xceiv)) {
pr_err("HS UDC: no transceiver configured\n"); pr_err("HS UDC: no transceiver configured\n");
return -ENODEV; return PTR_ERR(musb->xceiv);
} }
/* Silicon does not implement ConfigData register. /* Silicon does not implement ConfigData register.
......
...@@ -1164,12 +1164,12 @@ static int musb_gadget_disable(struct usb_ep *ep) ...@@ -1164,12 +1164,12 @@ static int musb_gadget_disable(struct usb_ep *ep)
musb_writew(epio, MUSB_RXMAXP, 0); musb_writew(epio, MUSB_RXMAXP, 0);
} }
musb_ep->desc = NULL;
musb_ep->end_point.desc = NULL;
/* abort all pending DMA and requests */ /* abort all pending DMA and requests */
nuke(musb_ep, -ESHUTDOWN); nuke(musb_ep, -ESHUTDOWN);
musb_ep->desc = NULL;
musb_ep->end_point.desc = NULL;
schedule_work(&musb->irq_work); schedule_work(&musb->irq_work);
spin_unlock_irqrestore(&(musb->lock), flags); spin_unlock_irqrestore(&(musb->lock), flags);
......
...@@ -2735,7 +2735,7 @@ static const struct hc_driver musb_hc_driver = { ...@@ -2735,7 +2735,7 @@ static const struct hc_driver musb_hc_driver = {
.description = "musb-hcd", .description = "musb-hcd",
.product_desc = "MUSB HDRC host driver", .product_desc = "MUSB HDRC host driver",
.hcd_priv_size = sizeof(struct musb *), .hcd_priv_size = sizeof(struct musb *),
.flags = HCD_USB2 | HCD_MEMORY | HCD_BH, .flags = HCD_USB2 | HCD_MEMORY,
/* not using irq handler or reset hooks from usbcore, since /* not using irq handler or reset hooks from usbcore, since
* those must be shared with peripheral code for OTG configs * those must be shared with peripheral code for OTG configs
......
...@@ -109,6 +109,7 @@ static const struct usb_device_id id_table[] = { ...@@ -109,6 +109,7 @@ static const struct usb_device_id id_table[] = {
{ USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */ { USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */
{ USB_DEVICE(0x10C4, 0x8281) }, /* Nanotec Plug & Drive */ { USB_DEVICE(0x10C4, 0x8281) }, /* Nanotec Plug & Drive */
{ USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */ { USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */
{ USB_DEVICE(0x10C4, 0x82F4) }, /* Starizona MicroTouch */
{ USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */ { USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */
{ USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */
{ USB_DEVICE(0x10C4, 0x8382) }, /* Cygnal Integrated Products, Inc. */ { USB_DEVICE(0x10C4, 0x8382) }, /* Cygnal Integrated Products, Inc. */
...@@ -118,6 +119,7 @@ static const struct usb_device_id id_table[] = { ...@@ -118,6 +119,7 @@ static const struct usb_device_id id_table[] = {
{ USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */ { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */
{ USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */
{ USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */
{ USB_DEVICE(0x10C4, 0x84B6) }, /* Starizona Hyperion */
{ USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */
{ USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */
{ USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */
...@@ -141,6 +143,8 @@ static const struct usb_device_id id_table[] = { ...@@ -141,6 +143,8 @@ static const struct usb_device_id id_table[] = {
{ USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */ { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */
{ USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */
{ USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */ { USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */
{ USB_DEVICE(0x12B8, 0xEC60) }, /* Link G4 ECU */
{ USB_DEVICE(0x12B8, 0xEC62) }, /* Link G4+ ECU */
{ USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */
{ USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */ { USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */
{ USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */ { USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册