• Tvrtko Ursulin's avatar
    drm/i915: Use per device iommu check · cca08469
    Tvrtko Ursulin authored
    With both integrated and discrete Intel GPUs in a system, the current
    global check of intel_iommu_gfx_mapped, as done from intel_vtd_active()
    may not be completely accurate.
    
    In this patch we add i915 parameter to intel_vtd_active() in order to
    prepare it for multiple GPUs and we also change the check away from Intel
    specific intel_iommu_gfx_mapped (global exported by the Intel IOMMU
    driver) to probing the presence of IOMMU on a specific device using
    device_iommu_mapped().
    
    This will return true both for IOMMU pass-through and address translation
    modes which matches the current behaviour. If in the future we wanted to
    distinguish between these two modes we could either use
    iommu_get_domain_for_dev() and check for __IOMMU_DOMAIN_PAGING bit
    indicating address translation, or ask for a new API to be exported from
    the IOMMU core code.
    
    v2:
      * Check for dmar translation specifically, not just iommu domain. (Baolu)
    
    v3:
     * Go back to plain "any domain" check for now, rewrite commit message.
    
    v4:
     * Use device_iommu_mapped. (Robin, Baolu)
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Lu Baolu <baolu.lu@linux.intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Acked-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Reviewed-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211126141424.493753-1-tvrtko.ursulin@linux.intel.com
    cca08469
intel_device_info.c 12.2 KB