1. 13 9月, 2012 5 次提交
  2. 12 9月, 2012 1 次提交
    • B
      USB: option: replace ZTE K5006-Z entry with vendor class rule · ba9edaa4
      Bjørn Mork 提交于
      Fix the ZTE K5006-Z entry so that it actually matches anything
      
        commit f1b5c997 USB: option: add ZTE K5006-Z
      
      added a device specific entry assuming that the device would use
      class/subclass/proto == ff/ff/ff like other ZTE devices. It
      turns out that ZTE has started using vendor specific subclass
      and protocol codes:
      
      T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  4 Spd=480  MxCh= 0
      D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=19d2 ProdID=1018 Rev= 0.00
      S:  Manufacturer=ZTE,Incorporated
      S:  Product=ZTE LTE Technologies MSM
      S:  SerialNumber=MF821Vxxxxxxx
      C:* #Ifs= 5 Cfg#= 1 Atr=c0 MxPwr=500mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=86 Prot=10 Driver=(none)
      E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=05 Driver=(none)
      E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
      E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=00 Driver=qmi_wwan
      E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
      E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
      E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      
      We do not have any information on how ZTE intend to use these
      codes, but let us assume for now that the 3 sets matching
      serial functions in the K5006-Z always will identify a serial
      function in a ZTE device.
      
      Cc: Thomas Schäfer <tschaefer@t-online.de>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ba9edaa4
  3. 11 9月, 2012 3 次提交
    • P
      EHCI: Update qTD next pointer in QH overlay region during unlink · 3d037774
      Pavankumar Kondeti 提交于
      There is a possibility of QH overlay region having reference to a stale
      qTD pointer during unlink.
      
      Consider an endpoint having two pending qTD before unlink process begins.
      The endpoint's QH queue looks like this.
      
      qTD1 --> qTD2 --> Dummy
      
      To unlink qTD2, QH is removed from asynchronous list and Asynchronous
      Advance Doorbell is programmed.  The qTD1's next qTD pointer is set to
      qTD2'2 next qTD pointer and qTD2 is retired upon controller's doorbell
      interrupt.  If QH's current qTD pointer points to qTD1, transfer overlay
      region still have reference to qTD2. But qtD2 is just unlinked and freed.
      This may cause EHCI system error.  Fix this by updating qTD next pointer
      in QH overlay region with the qTD next pointer of the current qTD.
      Signed-off-by: NPavankumar Kondeti <pkondeti@codeaurora.org>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3d037774
    • B
      USB: cdc-wdm: fix wdm_find_device* return value · 6a448868
      Bjørn Mork 提交于
      A logic error made the wdm_find_device* functions
      return a bogus pointer into static data instead of
      the intended NULL no matching device was found.
      
      Cc: stable <stable@vger.kernel.org> # v3.4+
      Cc: Oliver Neukum <oliver@neukum.org>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6a448868
    • B
      USB: ftdi_sio: do not claim CDC ACM function · f08dea73
      Bjørn Mork 提交于
      The Microchip vid:pid 04d8:000a is used for their CDC ACM
      demo firmware application.  This is a device with a single
      function conforming to the CDC ACM specification and with
      the intention of demonstrating CDC ACM class firmware and
      driver interaction.  The demo is used on a number of
      development boards, and may also be used unmodified by
      vendors using Microchip hardware.
      
      Some vendors have re-used this vid:pid for other types of
      firmware, emulating FTDI chips. Attempting to continue to
      support such devices without breaking class based
      applications that by matching on interface
      class/subclass/proto being ff/ff/00.  I have no information
      about the actual device or interface descriptors, but this
      will at least make the proper CDC ACM devices work again.
      Anyone having details of the offending device's descriptors
      should update this entry with the details.
      Reported-by: NFlorian Wöhrl <fw@woehrl.biz>
      Reported-by: NXiaofan Chen <xiaofanc@gmail.com>
      Cc: stable <stable@vger.kernel.org>
      Cc: Alan Cox <alan@linux.intel.com>
      Cc: Bruno Thomsen <bruno.thomsen@gmail.com>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f08dea73
  4. 07 9月, 2012 13 次提交
  5. 06 9月, 2012 9 次提交
  6. 05 9月, 2012 2 次提交
  7. 21 8月, 2012 1 次提交
    • G
      gpu/mfd/usb: Fix USB randconfig problems · 8f057d7b
      Guenter Roeck 提交于
      Fix config warning:
      
      warning: ( ... && DRM_USB) selects USB which has unmet direct dependencies
      (USB_SUPPORT && USB_ARCH_HAS_HCD)
      
      and build error:
      ERROR: "usb_speed_string" [drivers/usb/core/usbcore.ko] undefined!
      
      by adding the missing dependency on USB_ARCH_HAS_HCD to DRM_UDL and DRM_USB.
      
      This exposes:
      drivers/video/Kconfig:36:error: recursive dependency detected!
      drivers/video/Kconfig:36:       symbol FB is selected by DRM_KMS_HELPER
      drivers/gpu/drm/Kconfig:28:     symbol DRM_KMS_HELPER is selected by DRM_UDL
      drivers/gpu/drm/udl/Kconfig:1:  symbol DRM_UDL depends on USB_ARCH_HAS_HCD
      drivers/usb/Kconfig:78: symbol USB_ARCH_HAS_HCD depends on USB_ARCH_HAS_OHCI
      drivers/usb/Kconfig:16: symbol USB_ARCH_HAS_OHCI depends on I2C
      drivers/i2c/Kconfig:5:  symbol I2C is selected by FB_DDC
      drivers/video/Kconfig:86:       symbol FB_DDC is selected by FB_CYBER2000_DDC
      drivers/video/Kconfig:385:      symbol FB_CYBER2000_DDC depends on FB_CYBER2000
      drivers/video/Kconfig:373:      symbol FB_CYBER2000 depends on FB
      
      which is due to drivers/usb/Kconfig:
      config USB_ARCH_HAS_OHCI
      	...
      	default y if ARCH_PNX4008 && I2C
      
      Fix by dropping I2C from the above dependency; logic is that this is not a
      platform dependency but a configuration dependency: the _architecture_ still
      supports USB even is I2C is not selected.
      
      This exposes:
      drivers/video/Kconfig:36:error: recursive dependency detected!
      drivers/video/Kconfig:36:       symbol FB is selected by DRM_KMS_HELPER
      drivers/gpu/drm/Kconfig:28:     symbol DRM_KMS_HELPER is selected by DRM_UDL
      drivers/gpu/drm/udl/Kconfig:1:  symbol DRM_UDL depends on USB_ARCH_HAS_HCD
      drivers/usb/Kconfig:78: symbol USB_ARCH_HAS_HCD depends on USB_ARCH_HAS_OHCI
      drivers/usb/Kconfig:17: symbol USB_ARCH_HAS_OHCI depends on MFD_TC6393XB
      drivers/mfd/Kconfig:396:        symbol MFD_TC6393XB depends on GPIOLIB
      drivers/gpio/Kconfig:35:        symbol GPIOLIB is selected by FB_VIA
      drivers/video/Kconfig:1560:     symbol FB_VIA depends on FB
      
      which can be fixed by having MFD_TC6393XB select GPIOLIB instead of depending on
      it.
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8f057d7b
  8. 18 8月, 2012 2 次提交
  9. 17 8月, 2012 1 次提交
  10. 16 8月, 2012 2 次提交
  11. 11 8月, 2012 1 次提交
    • M
      usb: gadget: u_ether: fix kworker 100% CPU issue with still used interfaces in eth_stop · b1b552a6
      Michael Grzeschik 提交于
      This patch fixes an issue introduced by patch:
      
          72c973dd usb: gadget: add usb_endpoint_descriptor to struct usb_ep
      
      Without this patch we see a kworker taking 100% CPU, after this sequence:
      
      - Connect gadget to a windows host
      - load g_ether
      - ifconfig up <ip>; ifconfig down; ifconfig up
      - ping <windows host>
      
      The "ifconfig down" results in calling eth_stop(), which will call
      usb_ep_disable() and, if the carrier is still ok, usb_ep_enable():
      
               usb_ep_disable(link->in_ep);
               usb_ep_disable(link->out_ep);
               if (netif_carrier_ok(net)) {
                       usb_ep_enable(link->in_ep);
                       usb_ep_enable(link->out_ep);
               }
      
      The ep should stay enabled, but will not, as ep_disable set the desc
      pointer to NULL, therefore the subsequent ep_enable will fail. This leads
      to permanent rescheduling of the eth_work() worker as usb_ep_queue()
      (called by the worker) will fail due to the unconfigured endpoint.
      
      We fix this issue by saving the ep descriptors and re-assign them before
      usb_ep_enable().
      
      Cc: Tatyana Brokhman <tlinder@codeaurora.org>
      Signed-off-by: NMichael Grzeschik <m.grzeschik@pengutronix.de>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b1b552a6