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(+) >

