1. 07 10月, 2013 2 次提交
  2. 06 10月, 2013 12 次提交
  3. 04 10月, 2013 3 次提交
  4. 01 10月, 2013 2 次提交
  5. 27 9月, 2013 13 次提交
  6. 26 9月, 2013 8 次提交
    • H
      usb: core: implement AMD remote wakeup quirk · 7868943d
      Huang Rui 提交于
      The following patch is required to resolve remote wake issues with
      certain devices.
      
      Issue description:
      If the remote wake is issued from the device in a specific timing
      condition while the system is entering sleep state then it may cause
      system to auto wake on subsequent sleep cycle.
      
      Root cause:
      Host controller rebroadcasts the Resume signal > 100 µseconds after
      receiving the original resume event from the device. For proper
      function, some devices may require the rebroadcast of resume event
      within the USB spec of 100µS.
      
      Workaroud:
      1. Filter the AMD platforms with Yangtze chipset, then judge of all the usb
      devices are mouse or not. And get out the port id which attached a mouse
      with Pixart controller.
      2. Then reset the port which attached issue device during system resume
      from S3.
      
      [Q] Why the special devices are only mice? Would high speed devices
      such as 3G modem or USB Bluetooth adapter trigger this issue?
      - Current this sensitivity is only confined to devices that use Pixart
        controllers. This controller is designed for use with LS mouse
      devices only. We have not observed any other devices failing. There
      may be a small risk for other devices also but this patch (reset
      device in resume phase) will cover the cases if required.
      
      [Q] Shouldn’t the resume signal be sent within 100 us for every
      device?
      - The Host controller may not send the resume signal within 100us,
        this our host controller specification change. This is why we
      require the patch to prevent side effects on certain known devices.
      
      [Q] Why would clicking mouse INTENSELY to wake the system up trigger
      this issue?
      - This behavior is specific to the devices that use Pixart controller.
        It is timing dependent on when the resume event is triggered during
      the sleep state.
      
      [Q] Is it a host controller issue or mouse?
      - It is the host controller behavior during resume that triggers the
        device incorrect behavior on the next resume.
      
      This patch sets USB_QUIRK_RESET_RESUME flag for these Pixart-based mice
      when they attached to platforms with AMD Yangtze chipset.
      Signed-off-by: NHuang Rui <ray.huang@amd.com>
      Suggested-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7868943d
    • H
      usb: pci-quirks: refactor AMD quirk to abstract AMD chipset types · 22b4f0cd
      Huang Rui 提交于
      This patch abstracts out a AMD chipset type which includes southbridge
      generation and its revision. When os excutes usb_amd_find_chipset_info
      routine to initialize AMD chipset type, driver will know which kind of
      chipset is used.
      
      This update has below benifits:
      - Driver is able to confirm which southbridge generations and their
        revision are used, with chipset detection once.
      - To describe chipset generations with enumeration types brings better
        readability.
      - It's flexible to filter AMD platforms to implement new quirks in future.
      Signed-off-by: NHuang Rui <ray.huang@amd.com>
      Cc: Andiry Xu <andiry.xu@gmail.com>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      22b4f0cd
    • P
      usb: host: delete chipidea dependency · a746c286
      Peter Chen 提交于
      Now, chipidea host has already depended on USB_EHCI_HCD
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NPeter Chen <peter.chen@freescale.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a746c286
    • T
      usb: ohci/uhci - add soft dependencies on ehci_pci · 05c92da0
      Tom Gundersen 提交于
      Support for specifying soft dependencies in the modules themselves was
      introduced in commit 7cb14ba7.
      
      In Arch we have always been shipping a module.d(5) fragment ordering ohci/uhci
      after ehci. If this ordering is really necessary, it would be great to move it
      to the kernel and getting the correct fragment generated by depmod.
      Signed-off-by: NTom Gundersen <teg@jklm.no>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      05c92da0
    • A
      USB: fix PM config symbol in uhci-hcd, ehci-hcd, and xhci-hcd · f875fdbf
      Alan Stern 提交于
      Since uhci-hcd, ehci-hcd, and xhci-hcd support runtime PM, the .pm
      field in their pci_driver structures should be protected by CONFIG_PM
      rather than CONFIG_PM_SLEEP.  The corresponding change has already
      been made for ohci-hcd.
      
      Without this change, controllers won't do runtime suspend if system
      suspend or hibernation isn't enabled.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: Sarah Sharp <sarah.a.sharp@linux.intel.com>
      CC: <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f875fdbf
    • A
      USB: OHCI: accept very late isochronous URBs · a8693424
      Alan Stern 提交于
      Commit 24f53137 (USB: EHCI: accept very late isochronous URBs)
      changed the isochronous API provided by ehci-hcd.  URBs submitted too
      late, so that the time slots for all their packets have already
      expired, are no longer rejected outright.  Instead the submission is
      accepted, and the URB completes normally with a -EXDEV error for each
      packet.  This is what client drivers expect.
      
      This patch implements the same policy in ohci-hcd.  The change is more
      complicated than it was in ehci-hcd, because ohci-hcd doesn't scan for
      isochronous completions in the same way as ehci-hcd does.  Rather, it
      depends on the hardware adding completed TDs to a "done queue".  Some
      OHCI controller don't handle this properly when a TD's time slot has
      already expired, so we have to avoid adding such TDs to the schedule
      in the first place.  As a result, if the URB was submitted too late
      then none of its TDs will get put on the schedule, so none of them
      will end up on the done queue, so the driver will never realize that
      the URB should be completed.
      
      To solve this problem, the patch adds one to urb_priv->td_cnt for such
      URBs, making it larger than urb_priv->length (td_cnt already gets set
      to the number of TD's that had to be skipped because their slots have
      expired).  Each time an URB is given back, the finish_urb() routine
      looks to see if urb_priv->td_cnt for the next URB on the same endpoint
      is marked in this way.  If so, it gives back the next URB right away.
      
      This should be applied to all kernels containing commit 815fa7b9
      (USB: OHCI: fix logic for scheduling isochronous URBs).
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a8693424
    • A
      USB: UHCI: accept very late isochronous URBs · bef073b0
      Alan Stern 提交于
      Commit 24f53137 (USB: EHCI: accept very late isochronous URBs)
      changed the isochronous API provided by ehci-hcd.  URBs submitted too
      late, so that the time slots for all their packets have already
      expired, are no longer rejected outright.  Instead the submission is
      accepted, and the URB completes normally with a -EXDEV error for each
      packet.  This is what client drivers expect.
      
      This patch implements the same policy in uhci-hcd.  It should be
      applied to all kernels containing commit c44b2250 (UHCI: implement
      new semantics for URB_ISO_ASAP).
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bef073b0
    • A
      USB: iMX21: accept very late isochronous URBs · 8937669f
      Alan Stern 提交于
      Commit 24f53137 (USB: EHCI: accept very late isochronous URBs)
      changed the isochronous API provided by ehci-hcd.  URBs submitted too
      late, so that the time slots for all their packets have already
      expired, are no longer rejected outright.  Instead the submission is
      accepted, and the URB completes normally with a -EXDEV error for each
      packet.  This is what client drivers expect.
      
      The same policy should be implemented in imx21-hcd, but I don't know
      enough about the hardware to do it.  As a second-best substitute, this
      patch treats very late isochronous submissions as though the
      URB_ISO_ASAP flag were set.  I don't have any way to test this change,
      unfortunately.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: Sascha Hauer <kernel@pengutronix.de>
      CC: Martin Fuzzey <mfuzzey@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8937669f