Hi Xu, On Sat, Jan 02, 2021 at 11:13:00AM +0800, Xu Yilun wrote: > This patchset supports some dfl device drivers written in userspace. > > In the patchset v1, the "driver_override" interface should be used to bind > the DFL UIO driver to DFL devices. But there is concern that the > "driver_override" interface is not OK itself. > > In v2, we use a new matching algorithem. The "driver_override" interface > is abandoned, the DFL UIO driver matches any DFL device which could not be > handled by other DFL drivers. So the DFL UIO driver could be used for new > DFL devices which are not supported by kernel. The concern is the UIO may > not be suitable as a default/generic driver for all dfl features, such as > features with multiple interrupts. > > In v4, we specify each matching device in the id_table of the UIO driver, > just the same as other dfl drivers do. Now the UIO driver supports Ether > Group feature. To support more DFL features, their feature ids should be > added to the driver's id_table. I think this is what you want, yes. Instead of doing a driver override or such, add devices that should always be bound to UIO to a device id table. For those you temporarily want to bind, make sure you can unbind them and use 'new_id' or 'bind' in sysfs, similar to what sysfs does. > > > Main changes from v1: > - switch to the new matching algorithem. It matches DFL devices which could > not be handled by other DFL drivers. > - refacor the code about device resources filling. > - add the documentation. > > Main changes from v2: > - split the match ops changes in dfl.c to an independent patch. > - move the declarations needed for dfl-uio-pdev from include/linux/dfl.h > to driver/fpga/dfl.h > - some minor fixes. > > Main changes from v3: > - switch to specifying each matching device in the driver's id_table. > - refactor the irq handling code. > > Main changes from v4: > - refactor the irq handling code. > > Xu Yilun (2): > fpga: dfl: add the userspace I/O device support for DFL devices > Documentation: fpga: dfl: Add description for DFL UIO support > > Documentation/fpga/dfl.rst | 24 ++++++++++++ > drivers/fpga/Kconfig | 10 +++++ > drivers/fpga/Makefile | 1 + > drivers/fpga/dfl-uio-pdev.c | 91 +++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 126 insertions(+) > create mode 100644 drivers/fpga/dfl-uio-pdev.c > > -- > 2.7.4 > - Moritz