• Wu Hao's avatar
    fpga: dfl: add dfl_fpga_port_ops support. · 6e8fd6e4
    Wu Hao authored
    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_port_ops_add
       add one port ops to the global list.
    
     * dfl_fpga_port_ops_del
       del one port ops from the global list.
    
     * dfl_fpga_port_ops_get / dfl_fpga_port_ops_put
       get/put the port ops before/after use.
    Signed-off-by: default avatarWu Hao <hao.wu@intel.com>
    Acked-by: default avatarAlan Tull <atull@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6e8fd6e4
dfl.h 12 KB