1. 03 5月, 2011 6 次提交
  2. 15 4月, 2011 1 次提交
    • G
      Revert "USB: isp1760-hcd: move imask clear after pending work is done" · 753d8534
      Greg Kroah-Hartman 提交于
      This reverts commit 58085446.
      
      To quote Richard:
      	I don't think this should be mainlined. It was a
      	misunderstanding on my part.  If you see all the other hdc
      	drivers in the same location, they all do the same thing (i.e.
      	clear the interrupt status first, then do the work) that
      	"glitch" I think I saw was actually two back-to-back
      	interrupts.
      
      	Sebastian (the original author of isp1760) explained it to me a
      	few days after my submission.
      
      	sorry for the confusion
      
      Cc: Richard Retanubun <RichardRetanubun@ruggedcom.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      753d8534
  3. 14 4月, 2011 2 次提交
  4. 14 3月, 2011 2 次提交
    • J
      USB 3.0 Hub Changes · dbe79bbe
      John Youn 提交于
      Update the USB core to deal with USB 3.0 hubs.  These hubs have a slightly
      different hub descriptor than USB 2.0 hubs, with a fixed (rather than
      variable length) size.  Change the USB core's hub descriptor to have a
      union for the last fields that differ.  Change the host controller drivers
      that access those last fields (DeviceRemovable and PortPowerCtrlMask) to
      use the union.
      
      Translate the new version of the hub port status field into the old
      version that khubd understands.  (Note: we need to fix it to translate the
      roothub's port status once we stop converting it to USB 2.0 hub status
      internally.)
      
      Add new code to handle link state change status.  Send out new control
      messages that are needed for USB 3.0 hubs, like Set Hub Depth.
      
      This patch is a modified version of the original patch submitted by John
      Youn.  It's updated to reflect the removal of the "bitmap" #define, and
      change the hub descriptor accesses of a couple new host controller
      drivers.
      Signed-off-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
      Cc: Tony Olech <tony.olech@elandigitalsystems.com>
      Cc: "Robert P. J. Day" <rpjday@crashcourse.ca>
      Cc: Max Vozeler <mvz@vozeler.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Cc: Rodolfo Giometti <giometti@linux.it>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Anton Vorontsov <avorontsov@mvista.com>
      Cc: Sebastian Siewior <bigeasy@linutronix.de>
      Cc: Lothar Wassmann <LW@KARO-electronics.de>
      Cc: Olav Kongas <ok@artecdesign.ee>
      Cc: Martin Fuzzey <mfuzzey@gmail.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      dbe79bbe
    • S
      USB: Remove bitmap #define from hcd.h · da13051c
      Sarah Sharp 提交于
      Using a #define to redefine a common variable name is a bad thing,
      especially when the #define is in a header.  include/linux/usb/hcd.h
      redefined bitmap to DeviceRemovable to avoid typing a long field in the
      hub descriptor.  This has unintended side effects for files like
      drivers/usb/core/devio.c that include that file, since another header
      included after hcd.h has different variables named bitmap.
      
      Remove the bitmap #define and replace instances of it in the host
      controller code.  Cleanup the spaces around function calls and square
      brackets while we're at it.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
      Cc: Tony Olech <tony.olech@elandigitalsystems.com>
      Cc: "Robert P. J. Day" <rpjday@crashcourse.ca>
      Cc: Max Vozeler <mvz@vozeler.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Cc: Rodolfo Giometti <giometti@linux.it>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Anton Vorontsov <avorontsov@mvista.com>
      Cc: Sebastian Siewior <bigeasy@linutronix.de>
      Cc: Lothar Wassmann <LW@KARO-electronics.de>
      Cc: Olav Kongas <ok@artecdesign.ee>
      Cc: Martin Fuzzey <mfuzzey@gmail.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      da13051c
  5. 08 3月, 2011 1 次提交
  6. 01 3月, 2011 7 次提交
  7. 18 2月, 2011 1 次提交
    • S
      USB: isp1760: Implement solution for erratum 2 · b14e840d
      Sebastian Andrzej Siewior 提交于
      The document says:
      |2.1 Problem description
      |    When at least two USB devices are simultaneously running, it is observed that
      |    sometimes the INT corresponding to one of the USB devices stops occurring. This may
      |    be observed sometimes with USB-to-serial or USB-to-network devices.
      |    The problem is not noticed when only USB mass storage devices are running.
      |2.2 Implication
      |    This issue is because of the clearing of the respective Done Map bit on reading the ATL
      |    PTD Done Map register when an INT is generated by another PTD completion, but is not
      |    found set on that read access. In this situation, the respective Done Map bit will remain
      |    reset and no further INT will be asserted so the data transfer corresponding to that USB
      |    device will stop.
      |2.3 Workaround
      |    An SOF INT can be used instead of an ATL INT with polling on Done bits. A time-out can
      |    be implemented and if a certain Done bit is never set, verification of the PTD completion
      |    can be done by reading PTD contents (valid bit).
      |    This is a proven workaround implemented in software.
      
      Russell King run into this with an USB-to-serial converter. This patch
      implements his suggestion to enable the high frequent SOF interrupt only
      at the time we have ATL packages queued. It goes even one step further
      and enables the SOF interrupt only if we have more than one ATL packet
      queued at the same time.
      
      Cc: <stable@kernel.org> # [2.6.35.x, 2.6.36.x, 2.6.37.x]
      Tested-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b14e840d
  8. 24 8月, 2010 1 次提交
  9. 11 8月, 2010 1 次提交
    • A
      USB: convert usb_hcd bitfields into atomic flags · 541c7d43
      Alan Stern 提交于
      This patch (as1393) converts several of the single-bit fields in
      struct usb_hcd to atomic flags.  This is for safety's sake; not all
      CPUs can update bitfield values atomically, and these flags are used
      in multiple contexts.
      
      The flag fields that are set only during registration or removal can
      remain as they are, since non-atomic accesses at those times will not
      cause any problems.
      
      (Strictly speaking, the authorized_default flag should become atomic
      as well.  I didn't bother with it because it gets changed only via
      sysfs.  It can be done later, if anyone wants.)
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      541c7d43
  10. 21 5月, 2010 4 次提交
  11. 03 3月, 2010 1 次提交
    • C
      USB: isp1760: Flush the D-cache for the pipe-in transfer buffers · db8516f6
      Catalin Marinas 提交于
      When the HDC driver writes the data to the transfer buffers it pollutes
      the D-cache (unlike DMA drivers where the device writes the data). If
      the corresponding pages get mapped into user space, there are no
      additional cache flushing operations performed and this causes random
      user space faults on architectures with separate I and D caches
      (Harvard) or those with aliasing D-cache.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Cc: Matthew Dharm <mdharm-kernel@one-eyed-alien.net>
      Cc: Greg KH <greg@kroah.com>
      Cc: Sebastian Siewior <bigeasy@linutronix.de>
      Cc: Oliver Neukum <oliver@neukum.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      db8516f6
  12. 21 1月, 2010 1 次提交
  13. 23 9月, 2009 1 次提交
  14. 29 5月, 2009 1 次提交
    • W
      USB: isp1760: urb_dequeue doesn't always find the urbs · 0afb20e0
      Warren Free 提交于
      The option driver (and presumably others) allocates several URBs when it
      opens and tries to free them when it closes. The isp1760_urb_dequeue
      function gets called, but the packet being dequeued is not necessarily at
      the
      front of one of the 32 queues. If not, the isp1760_urb_done function doesn't
      get called for the URB and the process trying to free it hangs forever on a
      wait_queue. This patch does two things. If the URB being dequeued has others
      queued behind it, it re-queues them. And it searches the queues looking for
      the URB being dequeued rather than just looking at the one at the front of
      the queue.
      
      [bigeasy@linutronix] whitespace fixes, reformating
      
      Cc: stable <stable@kernel.org>
      Signed-off-by: NWarren Free <wfree@ipmn.com>
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0afb20e0
  15. 25 3月, 2009 3 次提交
  16. 08 1月, 2009 1 次提交
  17. 22 8月, 2008 1 次提交
  18. 14 8月, 2008 3 次提交
  19. 22 7月, 2008 2 次提交