• Enrico Scholz's avatar
    usb: ISP1760: improve pre-fetch timing · 3f02a957
    Enrico Scholz authored
    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: default avatarEnrico Scholz <enrico.scholz@sigma-chemnitz.de>
    Signed-off-by: default avatarSebastian Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    3f02a957
isp1760-hcd.h 5.87 KB