1. 01 3月, 2011 1 次提交
  2. 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
  3. 23 9月, 2009 1 次提交
  4. 25 3月, 2009 1 次提交
  5. 08 1月, 2009 1 次提交
  6. 14 8月, 2008 2 次提交
    • S
      usb: isp1760: don't be noisy about short packets. · 7839b516
      Sebastian Siewior 提交于
      According to Alan Stern, short packets are quite normal under
      certain circumstances. This printk was triggered by usb to
      serial converters on every packet and some usb sticks triggered
      a few of those while plugging the stick.
      This printks are now hidden unless USB debug mode is activated.
      
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NSebastian Siewior <sebastian@breakpoint.cc>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      7839b516
    • E
      usb: ISP1760: improve pre-fetch timing · 3f02a957
      Enrico Scholz 提交于
      ISP1760 requires a delay of 90ns between programming the address and
      reading the data.  Current driver solves this by a mdelay(1) which is
      very heavy weighted and slow.  This patch applies the workaround from
      the ISP1760 FAQ by using two different banks for PTD and payload data
      and using a common wait for them.  This wait is done by an additional
      ISP1760 access (whose timing constraints guarantee the 90ns delay).
      This improves speed when reading from an USB stick from:
      
        $ time dd if=/dev/sda of=/dev/zero bs=65536 count=1638
        real    1m 15.43s
        user    0m 0.44s
        sys     0m 39.46s
      
      to
      
        $ time dd if=/dev/sda of=/dev/zero bs=65536 count=1638
        real    0m 18.53s
        user    0m 0.16s
        sys     0m 12.97s
      
      [bigeasy@linutronix.de: fixed comment formating, moved define into
         header file, obey 80 char rule]
      Signed-off-by: NEnrico Scholz <enrico.scholz@sigma-chemnitz.de>
      Signed-off-by: NSebastian Siewior <bigeasy@linutronix.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3f02a957
  7. 22 7月, 2008 1 次提交
  8. 03 5月, 2008 1 次提交