On Wed, May 26, 2021 at 01:03:11PM +0300, eli.billauer@xxxxxxxxx wrote: > From: Eli Billauer <eli.billauer@xxxxxxxxx> > > The XillyUSB driver is the USB variant for the Xillybus FPGA IP core. > Even though it presents a nearly identical API on the FPGA and host, > it's almost a complete rewrite of the driver: The framework for exchanging > data on a USB bus is fundamentally different from doing the same with a > PCIe interface, which leaves very little in common between the existing > driver and the new one for XillyUSB. > > Signed-off-by: Eli Billauer <eli.billauer@xxxxxxxxx> > --- > > Notes: > Changelog: > > v5: > - Move xillyusb.c back from staging to char/xillybus/ > - Turn previously lockless FIFO into one relying on a lock > - Set driver's soft_unbind flag, so that the device is notified when the > driver is unloaded + due changes for killing URBs as required > - Some refactoring of locks for better granularity > - Avoid using pr_err and pr_warn, replace with dev_* counterparts > - Bump MODULE_VERSION to 1.1 > - Remove module_params > - Fix a few minor bugs regarding error handling flow > - Various coding style fixes and comment clarifications > > v4: > (No changes) > > v3: > - Move to staging > - Rely on xillybus_class for device file operations > - Fix no return value bug in xillyusb_discovery() > - Add module parameters for URB buffer size and count > > v2: > - Add comment in Kconfig file, saying XILLYUSB really doesn't depend > on XILLYBUS (following comment by Randy Dunlap) > - Use SEEK_* predefined constants instead of numbers > > drivers/char/xillybus/Kconfig | 14 + > drivers/char/xillybus/Makefile | 1 + > drivers/char/xillybus/xillyusb.c | 2260 ++++++++++++++++++++++++++++++ > 3 files changed, 2275 insertions(+) > create mode 100644 drivers/char/xillybus/xillyusb.c > > diff --git a/drivers/char/xillybus/Kconfig b/drivers/char/xillybus/Kconfig > index 7cc4d719ec4f..a8036dad437e 100644 > --- a/drivers/char/xillybus/Kconfig > +++ b/drivers/char/xillybus/Kconfig > @@ -36,3 +36,17 @@ config XILLYBUS_OF > system, say M. The module will be called xillybus_of. > > endif # if XILLYBUS > + > +# XILLYUSB doesn't depend on XILLYBUS > + > +config XILLYUSB > + tristate "XillyUSB: Xillybus generic FPGA interface for USB" > + depends on USB > + select CRC32 > + select XILLYBUS_CLASS > + help > + XillyUSB is the Xillybus variant which uses USB for communicating > + with the FPGA. > + > + Set to M if you want Xillybus to use USB for communicating with > + the FPGA. The module will be called xillyusb. > diff --git a/drivers/char/xillybus/Makefile b/drivers/char/xillybus/Makefile > index 591615264591..16f31d03209d 100644 > --- a/drivers/char/xillybus/Makefile > +++ b/drivers/char/xillybus/Makefile > @@ -7,3 +7,4 @@ obj-$(CONFIG_XILLYBUS_CLASS) += xillybus_class.o > obj-$(CONFIG_XILLYBUS) += xillybus_core.o > obj-$(CONFIG_XILLYBUS_PCIE) += xillybus_pcie.o > obj-$(CONFIG_XILLYBUS_OF) += xillybus_of.o > +obj-$(CONFIG_XILLYUSB) += xillyusb.o This doesn't quite work. Even if I have not selected CONFIG_XILLYBUS I get asked aboug CONFIG_XILLYUSB. And if I say 'm' to CONFIG_XILLYUSB, nothing gets built. So I'll take this now, but you need to send a follow-up patch to fix these dependencies up to work correctly. thanks, greg k-h