git: kernel - u4b - Implement doorbell

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jan 10 12:07:25 PST 2014


commit e15d1b6823a13e8ae6c9a6f99c447c695146ac95
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Jan 10 12:03:43 2014 -0800

    kernel - u4b - Implement doorbell
    
    * Implement the doorbell properly.
    
    * Use the doorbell to clear the previous transfer when reusing a transfer.
      This is a horribly inefficient hack but it's better than blowing up the
      controller
    
      (This is in addition to the xfer freeing fifo hack)
    
    * We also seem to need to ring the doorbell when queueing transfers.  This
      should not be necessary.
    
    * Enable ASP.  This allows qTD bursts, making high speed busses more
      efficient.
    
    * NOTE:  There are still problems with umass.  With some USB sticks,
     	 writing to the stick causes the cpu to stall for very long
    	 periods of time.  It is shown as 'interrupt' overhead but insofar
    	 as I can tell it's actually the controller stalling the memory
    	 bus for reasons unknown.
    
    	 This does not happen with e.g. a SATA SSD connected through a USB
    	 adapter.

Summary of changes:
 sys/bus/u4b/controller/ehci.c | 117 +++++++++++++++++++++++++++++++++++-------
 sys/bus/u4b/controller/ehci.h |   4 +-
 sys/bus/u4b/usb_core.h        |   3 ++
 sys/bus/u4b/usb_transfer.c    |   2 +-
 4 files changed, 105 insertions(+), 21 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e15d1b6823a13e8ae6c9a6f99c447c695146ac95


-- 
DragonFly BSD source repository



More information about the Commits mailing list