On 03/01/2014 07:53 AM, David Mosberger wrote: > Attached is v0.1 of the max3421 driver. This one actually is trying to do > (mostly) the right things. It's event-driven (no busy-waiting anymore). > > The URB-scheduling implemented in max3421_next_ep() is still simplistic: it > runs all periodic transfers, then runs non-periodic transfers until there > is no more (useful) work to do or the next frame starts. > > With this version of the driver: > > 1. A USB-keyboard seems to work reliably (as per evtest anyhow). > 2. Several USB mass-storage devices get recognized correctly. There are > still some issues with reliably writing data, though. > 3. Some WIFI dongles are starting to work. > > I'd be very interested in getting feedback on this driver as this is the > first time I tried my hands at a USB host-controller driver. Without going too much into detail wrt the actual implementation, here are two things that caught my eye: 1. Your patch has a large number of style issues, which scripts/checkpatch.pl will tell you more about. 2. Is there any good reason for not using the regmap abstraction framework for the SPI layer? It has convenience functions for bit fiddling, a register cache and a nice debugging interface through debugfs, among other things. See include/linux/regmap.h. Also, out of curiosity: which SPI master controller are you using in your setup? Is the whole thing actually fast enough for real-world applications? Which data rates are you able to get through on mass-storage devices for instance? Thanks, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html