• Xu Yilun's avatar
    fpga: dfl: map feature mmio resources in their own feature drivers · 89eb35e8
    Xu Yilun authored
    This patch makes preparation for modularization of DFL sub feature
    drivers.
    
    DFL based FPGA devices may contain some IP blocks which are already
    supported by kernel, most of them are supported by platform device
    drivers. We could create platform devices for these IP blocks and get them
    supported by these drivers.
    
    An important issue is that platform device drivers usually requests mmio
    resources on probe. But now DFL mmio is mapped in DFL bus driver (e.g.
    dfl-pci) as a whole region. Then platform device drivers for sub features
    can't request their own mmio resources again. This is what the patch
    trying to resolve.
    
    This patch changes the DFL enumeration. DFL bus driver will unmap mmio
    resources after first step enumeration and pass enumeration info to DFL
    framework. Then DFL framework will map the mmio resources again, do 2nd
    step enumeration, and also unmap the mmio resources. In this way, sub
    feature drivers could then request their own mmio resources as needed.
    
    An exception is that mmio resource of FIU headers are still mapped in DFL
    bus driver. The FIU headers have some fundamental functions (sriov set,
    port enable/disable) needed for DFL bus devices and other sub features.
    They should not be unmapped as long as DFL bus device is alive.
    Signed-off-by: default avatarXu Yilun <yilun.xu@intel.com>
    Signed-off-by: default avatarWu Hao <hao.wu@intel.com>
    Signed-off-by: default avatarMatthew Gerlach <matthew.gerlach@linux.intel.com>
    Signed-off-by: default avatarRuss Weight <russell.h.weight@intel.com>
    Reviewed-by: default avatarTom Rix <trix@redhat.com>
    Acked-by: default avatarWu Hao <hao.wu@intel.com>
    Signed-off-by: default avatarMoritz Fischer <mdf@kernel.org>
    89eb35e8
dfl.c 40.9 KB