On Tue, May 1, 2018 at 9:50 PM, Wu Hao <[email protected]> wrote:

Hi Hao,

> In some cases, other DFL driver modules may need to access some port
> operations, e.g disable / enable port for partial reconfiguration in
> FME module. In order to avoid dependency between port and FME modules,
> this patch introduces the dfl_fpga_port_ops support in DFL framework.
> A global dfl_fpga_port_ops list is added in the DFL framework, and
> it allows other DFL modules to use these port operations registered
> to this list, even in virtualization case, the port platform device
> is turned into VF / guest VM and hidden in host, the registered
> port_ops is still usable. It resolves the dependency issues between
> modules, but once get port ops API returns a valid port ops, that
> means related port driver module has been module_get to prevent from
> unexpected unload, and put port ops API must be invoked after use.
>
> These APIs introduced by this patch is listed below:
>  * dfl_fpga_add_port_ops
>    add one port ops to the global list.
>
>  * dfl_fpga_del_port_ops
>    del one port ops from the global list.
>
>  * dfl_fpga_get_port_ops / dfl_fpga_put_port_ops
>    get/put the port ops before/after use.
>
> Signed-off-by: Wu Hao <[email protected]>
Acked-by: Alan Tull <[email protected]>
> ---
>  drivers/fpga/dfl.c | 67 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/fpga/dfl.h | 21 +++++++++++++++++
>  2 files changed, 88 insertions(+)
>

Reply via email to