• Johannes Erdfelt's avatar
    [PATCH] uhci-hcd for 2.5.15 · 7ed10dbc
    Johannes Erdfelt authored
    So I finally hunkered down and got uhci-hcd working. I was surprised how
    easy it was to make the modifications for hcd.c.
    
    This patch has received a moderate amount of testing so far. I've played
    with various devices and haven't had any problems. I won't claim it's
    bug free yet and I'll continue doing more testing.
    
    The patch includes a small change to hcd.c to not call free_config if
    the HCD doesn't implement it.
    
    There are some other messages that get printed such as:
    
    hcd.c: usb_hcd_pci_remove 00:10.0, count != 1
    
    but it appears from the code that this is just a soft warning that all
    of the references to the bus aren't freed yet. This isn't a bug.
    
    Differences from usb-uhci/usb-uhci-hcd:
    - Cleaner code. uhci-hcd is based off of uhci, so it maintains the same
      look and feel as well as readability.
    - Faster. The tests I've run so far show that uhci-hcd is faster in
      every case than usb-uhci-hcd
    - It does not have the watchdog type feature for VIA chipsets. It's
      something that is definately possible to implement, but I'd like to
      find out what Windows does first.
    
    Differences from uhci:
    - Modified to use the hcd.c framework. This removed a significant amount
      of code and nesessitated lots of little changes.
    - Big endian support. I haven't been able to test it on a big endian
      machine yet, but atleast 90+% of the work should be done. Once I get
      my PowerPC working again, I'll test this and submit any appropriate
      patches. This was the biggest functional change between uhci.c.
    - No more urb->next processing. Completely ripped out.
    - urb->interval support for Isochronous pipes.
    - A couple of bug fixes for some problems I noticed while working on the
      code. These will be submitted for uhci.c in a seperate email.
    7ed10dbc
uhci-hub.c 4.57 KB