• David Brownell's avatar
    [PATCH] USB: sl811-hcd driver, replaces hc_sl811 · d3e8ea41
    David Brownell authored
    This patch provides a new "sl811-hcd" driver, which should replace the older
    one from Cypress (which has been broken for ages, even on SA-1100).
    
    Key features of this new driver:
    
     - Small, relatively tight code;
     - Uses the 2.6 platform_device and usbcore HCD infrastructures;
     - Compiles (x86, ARM) and works (ARM/PXA255);
     - Passed a day's worth of "usbtest" stress testing (on 2.6.9).
    
    I've enumerated over a dozen different devices with it, and actually tested
    mice, hubs, keyboards, and usb-storage.  There's a hardware erratum that
    prevents this chip from working with certain external hubs.  There's scope
    yet for some performance work here; and some IRQ quirks linger.
    
    This PIO-only driver should serve as a model for some other non-DMA USB host
    controllers (like isp1161, isp1362, td243) used in embedded Linuxes ... in
    particular, showing how to maintain async and periodic schedules without
    pointless emulation of OHCI DMA queues and/or registers.
    
    The driver should handle ISO, but since it doesn't implement the special
    urb->iso_frame_desc[] "pseudo-queue" model (and since Linux can't guarantee
    low enough IRQ latencies!), ISO is disabled.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
    d3e8ea41
sl811.h 6.71 KB