1. 21 2月, 2013 3 次提交
  2. 19 2月, 2013 1 次提交
  3. 16 2月, 2013 2 次提交
    • M
      USB: EHCI: make ehci-orion a separate driver · 6ed3c43d
      Manjunath Goudar 提交于
      With the multiplatform changes in arm-soc tree, it becomes
      possible to enable the mvebu platform (which uses
      ehci-orion) at the same time as other platforms that require
      a conflicting EHCI bus glue. At the moment, this results
      in a warning like
      
      drivers/usb/host/ehci-hcd.c:1297:0: warning: "PLATFORM_DRIVER" redefined [enabled by default]
      drivers/usb/host/ehci-hcd.c:1277:0: note: this is the location of the previous definition
      drivers/usb/host/ehci-orion.c:334:31: warning: 'ehci_orion_driver' defined but not used [-Wunused-variable]
      
      and an ehci driver that only works on one of them.
      
      With the infrastructure added by Alan Stern in patch 3e023203
      "USB: EHCI: prepare to make ehci-hcd a library module", we can
      avoid this problem by turning a bus glue into a separate
      module, as we do here for the orion bus glue.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ed3c43d
    • M
      USB: EHCI: make ehci-vt8500 a separate driver · d57ada0c
      Manjunath Goudar 提交于
      With the multiplatform changes in arm-soc tree, it becomes
      possible to enable the vt8500 platform at the same time
      as other platforms that require a conflicting EHCI bus
      glue. At the moment, this results in a warning like
      
      drivers/usb/host/ehci-hcd.c:1277:0: warning: "PLATFORM_DRIVER" redefined [enabled by default]
      drivers/usb/host/ehci-hcd.c:1257:0: note: this is the location of the previous definition
      drivers/usb/host/ehci-omap.c:319:31: warning: 'ehci_hcd_omap_driver' defined but not used [-Wunused-variable]
      
      and an ehci driver that only works on one of them.
      
      With the infrastructure added by Alan Stern in patch 3e023203
      "USB: EHCI: prepare to make ehci-hcd a library module", we can
      avoid this problem by turning a bus glue into a separate
      module, as we do here for the vt8500 bus glue.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NTony Prisk <linux@prisktech.co.nz>
      Cc: Alexey Charkov <alchark@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d57ada0c
  4. 15 2月, 2013 3 次提交
  5. 14 2月, 2013 3 次提交
    • B
      USB: option: add Huawei "ACM" devices using protocol = vendor · 1f3f6877
      Bjørn Mork 提交于
      The USB device descriptor of one identity presented by a few
      Huawei morphing devices have serial functions with class codes
      02/02/ff, indicating CDC ACM with a vendor specific protocol. This
      combination is often used for MSFT RNDIS functions, and the CDC
      ACM class driver will therefore ignore such functions.
      
      The CDC ACM class driver cannot support functions with only 2
      endpoints.  The underlying serial functions of these modems are
      also believed to be the same as for alternate device identities
      already supported by the option driver. Letting the same driver
      handle these functions independently of the current identity
      ensures consistent handling and user experience.
      
      There is no need to blacklist these devices in the rndis_host
      driver. Huawei serial functions will either have only 2 endpoints
      or a CDC ACM functional descriptor with bmCapabilities != 0, making
      them correctly ignored as "non RNDIS" by that driver.
      
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1f3f6877
    • J
      USB: serial: fix null-pointer dereferences on disconnect · b2ca6990
      Johan Hovold 提交于
      Make sure serial-driver dtr_rts is called with disc_mutex held after
      checking the disconnected flag.
      
      Due to a bug in the tty layer, dtr_rts may get called after a device has
      been disconnected and the tty-device unregistered. Some drivers have had
      individual checks for disconnect to make sure the disconnected interface
      was not accessed, but this should really be handled in usb-serial core
      (at least until the long-standing tty-bug has been fixed).
      
      Note that the problem has been made more acute with commit 0998d063
      ("device-core: Ensure drvdata = NULL when no driver is bound") as the
      port data is now also NULL when dtr_rts is called resulting in further
      oopses.
      Reported-by: NChris Ruehl <chris.ruehl@gtsys.com.hk>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b2ca6990
    • B
      USB: option: add Yota / Megafon M100-1 4g modem · cd565279
      Bjørn Mork 提交于
      Interface layout:
      
       00 CD-ROM
       01 debug COM port
       02 AP control port
       03 modem
       04 usb-ethernet
      
      Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  4 Spd=480  MxCh= 0
      D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=0408 ProdID=ea42 Rev= 0.00
      S:  Manufacturer=Qualcomm, Incorporated
      S:  Product=Qualcomm CDMA Technologies MSM
      S:  SerialNumber=353568051xxxxxx
      C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
      E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff 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= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=83(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=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
      E:  Ad=85(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= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=86(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
      E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cd565279
  6. 09 2月, 2013 2 次提交
  7. 07 2月, 2013 4 次提交
  8. 05 2月, 2013 2 次提交
  9. 02 2月, 2013 3 次提交
  10. 31 1月, 2013 5 次提交
  11. 30 1月, 2013 4 次提交
  12. 29 1月, 2013 2 次提交
  13. 26 1月, 2013 6 次提交
    • A
      USB: EHCI: fix timer bug affecting port resume · ee74290b
      Alan Stern 提交于
      This patch (as1652) fixes a long-standing bug in ehci-hcd.  The driver
      relies on status polls to know when to stop port-resume signalling.
      It uses the root-hub status timer to schedule these status polls.  But
      when the driver for the root hub is resumed, the timer is rescheduled
      to go off immediately -- before the port is ready.  When this happens
      the timer does not get re-enabled, which prevents the port resume from
      finishing until some other event occurs.
      
      The symptom is that when a new device is plugged in, it doesn't get
      recognized or enumerated until lsusb is run or something else happens.
      
      The solution is to re-enable the root-hub status timer after every
      status poll while a port resume is in progress.
      
      This bug hasn't surfaced before now because we never used to try to
      suspend the root hub in the middle of a port resume (except by
      coincidence).
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Reported-and-tested-by: NNorbert Preining <preining@logic.at>
      Tested-by: NMing Lei <ming.lei@canonical.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ee74290b
    • A
      USB: UHCI: notify usbcore about port resumes · 840008bb
      Alan Stern 提交于
      This patch (as1651) adds calls to the new
      usb_hcd_{start,end}_port_resume() functions to uhci-hcd.  Now UHCI
      root hubs won't be runtime suspended while they are sending a resume
      signal to one of their ports.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      840008bb
    • A
      USB: EHCI: notify usbcore about port resumes · f292e7f9
      Alan Stern 提交于
      This patch (as1650) adds calls to the new
      usb_hcd_{start,end}_port_resume() functions to ehci-hcd.  Now EHCI
      root hubs won't be runtime suspended while they are sending a resume
      signal to one of their ports.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Tested-by: NMing Lei <ming.lei@canonical.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f292e7f9
    • A
      USB: add usb_hcd_{start,end}_port_resume · da0aa716
      Alan Stern 提交于
      This patch (as1649) adds a mechanism for host controller drivers to
      inform usbcore when they have begun or ended resume signalling on a
      particular root-hub port.  The core will then make sure that the root
      hub does not get runtime-suspended while the port resume is going on.
      
      Since commit 596d789a (USB: set hub's
      default autosuspend delay as 0), the system tries to suspend hubs
      whenever they aren't in use.  While a root-hub port is being resumed,
      the root hub does not appear to be in use.  Attempted runtime suspends
      fail because of the ongoing port resume, but the PM core just keeps on
      trying over and over again.  We want to prevent this wasteful effort.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Tested-by: NMing Lei <ming.lei@canonical.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      da0aa716
    • A
      USB: EHCI: unlink one async QH at a time · 6e0c3339
      Alan Stern 提交于
      This patch (as1648) fixes a regression affecting nVidia EHCI
      controllers.  Evidently they don't like to have more than one async QH
      unlinked at a time.  I can't imagine how they manage to mess it up,
      but at least one of them does.
      
      The patch changes the async unlink logic in two ways:
      
      	Each time an IAA cycle is started, only the first QH on the
      	async unlink list is handled (rather than all of them).
      
      	Async QHs do not all get unlinked as soon as they have been
      	empty for long enough.  Instead, only the last one (i.e., the
      	one that has been on the schedule the longest) is unlinked,
      	and then only if no other unlinks are in progress at the time.
      
      This means that when multiple QHs are empty, they won't be unlinked as
      quickly as before.  That's okay; it won't affect correct operation of
      the driver or add an excessive load.  Multiple unlinks tend to be
      relatively rare in any case.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Reported-and-tested-by: NPiergiorgio Sartor <piergiorgio.sartor@nexgo.de>
      Cc: stable <stable@vger.kernel.org> # 3.6
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6e0c3339
    • A
      USB: EHCI: remove ASS/PSS polling timeout · 55bcdce8
      Alan Stern 提交于
      This patch (as1647) attempts to work around a problem that seems to
      affect some nVidia EHCI controllers.  They sometimes take a very long
      time to turn off their async or periodic schedules.  I don't know if
      this is a result of other problems, but in any case it seems wise not
      to depend on schedule enables or disables taking effect in any
      specific length of time.
      
      The patch removes the existing 20-ms timeout for enabling and
      disabling the schedules.  The driver will now continue to poll the
      schedule state at 1-ms intervals until the controller finally decides
      to obey the most recent command issued by the driver.  Just in case
      this hides a problem, a debugging message will be logged if the
      controller takes longer than 20 polls.
      
      I don't know if this will actually fix anything, but it can't hurt.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Tested-by: NPiergiorgio Sartor <piergiorgio.sartor@nexgo.de>
      CC: <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      55bcdce8