Re: [PATCH v11 0/2] UIO support for dfl devices
From: Xu Yilun
Date: Thu Feb 25 2021 - 20:28:01 EST
On Mon, Feb 22, 2021 at 10:56:45AM -0800, Tom Rix wrote:
>
Yilun,
>
>
Is there anything outstanding or remaining to be done ?
Sorry for late reply. No, this is my lastest version now.
Hi Greg:
Do you have some comments on this patchset?
Thanks,
Yilun
>
>
Tom
>
>
On 2/3/21 5:59 PM, 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.
>
>
>
> Before v9, we create a "uio_pdrv_genirq" platform device using DFL devices'
>
> resources. Then we leverage the uio_pdrv_genirq driver for UIO support. It
>
> is suggested that we implement a driver in drivers/uio that directly calls
>
> UIO framework APIs. So we implement the uio_dfl driver in v9. The driver
>
> now only binds the ether group feature, which has no irq. So the irq
>
> support is not implemented yet.
>
>
>
>
>
> 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.
>
>
>
> Main changes from v5:
>
> - fix the res[] zero initialization issue.
>
> - improve the return code for probe().
>
> - some doc improvement.
>
>
>
> Main changes from v6:
>
> - use platform_device_register_resndata() for pdev creation.
>
>
>
> Main changes from v7:
>
> - some doc fixes.
>
>
>
> Main changes from v8:
>
> - switch to add a uio driver in drivers/uio
>
>
>
> Main changes from v9:
>
> - add this source file in MAINTAINERS
>
> - improve the Kconfig, add more descriptive Kconfig header, add detailed
>
> path for opae uio example in Kconfig.
>
>
>
> Main changes from v10:
>
> - add description in doc that interrupt support is not implemented yet.
>
>
>
>
>
> Xu Yilun (2):
>
> uio: uio_dfl: add userspace i/o driver for DFL bus
>
> Documentation: fpga: dfl: Add description for DFL UIO support
>
>
>
> Documentation/fpga/dfl.rst | 26 ++++++++++++++++++
>
> MAINTAINERS | 1 +
>
> drivers/uio/Kconfig | 17 ++++++++++++
>
> drivers/uio/Makefile | 1 +
>
> drivers/uio/uio_dfl.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++
>
> 5 files changed, 111 insertions(+)
>
> create mode 100644 drivers/uio/uio_dfl.c
>
>