Re: [PATCH v5 2/2] char: xillybus: Add driver for XillyUSB (Xillybus variant for USB)

Greg KH
2021-05-27T12:12:17Z

On Wed, May 26, 2021 at 01:03:11PM +0300, eli.billauer@gmail.com wrote:
> From: Eli Billauer <eli.billauer@gmail.com>
>
> 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@gmail.com>
> ---
>
> 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