On Tue, Jan 09, 2001, David Mosberger wrote: > Kernel > - verify that all on-board hardware is supported and working: A little late, but this patch is modestly tested and it appears to work on ia32 as well as ia64. This patch is a little different than the one I send to the linux-usb-devel list. The only major difference is the patch to set uhci->dev correctly so the PCI DMA API routines work correctly under ia64. It's a bit large, but there were some large changes necessary to support the PCI DMA API in the driver. Here's the changelog I sent to linux-usb-devel if anyone cares: bug fixes --------- - Don't use nested locks anymore. This could cause deadlocks in drivers which were hard to track down. We use a complete list which is walked through after determining the transfer result of the URB's - Bulk queueing should work significantly better now. I've fixed some obvious problems with it (order issues, retoggle remaining URB's) - Enforce memory barriers. I hope this will help some of the people who were having some problems with the driver - In some situations, the device usage count would be off and the memory would never get freed - Don't always mark VRH interrupt URB as done - When forcing unlinking of urb's in uhci_free_dev, make sure they are not done asynchronously new features ------------ - Use PCI DMA architecture. This is necessary for 64 bit architectures (alpha, ultrasparc, ia64, etc) - New /proc interface. Dump the status of the schedule - debug option is more versatile now clean ups --------- - Use list_heads when possible now. Makes code cleaner/easier to read - Added uhci_call_completion function to call the completion handler the same way in multiple places TODO ---- - The PCI DMA architecture is horribly inefficient on x86 and ia64. The result is a page is allocated for each TD. This is evil. Perhaps a slab cache internally? Or modify the generic slab cache to handle PCI DMA pages instead? - Cleanup up FIXME's - Make uhci-debug.h functions respect len - More testing, I have seen it lock up my machine hard with a CPiA camera after a long period of running - Figure out why the submit loop (second) of uhci_call_completion causes crashes - Should we return -EPIPE on BABBLE? Drivers will confuse this with a STALL JE