• Dmitry Baryshkov's avatar
    drm/msm: Revert "drm/msm: Stop using iommu_present()" · 0371870b
    Dmitry Baryshkov authored
    This reverts commit e2a88eab. The commit
    in question makes msm_use_mmu() check whether the DRM 'component master'
    device is translated by the IOMMU. At this moment it is the 'mdss'
    device.
    However on platforms using the MDP5 driver (e.g. MSM8916/APQ8016,
    MSM8996/APQ8096) it's the mdp5 device, which has the iommus property
    (and thus is "translated by the IOMMU"). This results in these devices
    being broken with the following lines in the dmesg.
    
    [drm] Initialized msm 1.9.0 20130625 for 1a00000.mdss on minor 0
    msm 1a00000.mdss: [drm:adreno_request_fw] loaded qcom/a300_pm4.fw from new location
    msm 1a00000.mdss: [drm:adreno_request_fw] loaded qcom/a300_pfp.fw from new location
    msm 1a00000.mdss: [drm:get_pages] *ERROR* could not get pages: -28
    msm 1a00000.mdss: could not allocate stolen bo
    msm 1a00000.mdss: [drm:get_pages] *ERROR* could not get pages: -28
    msm 1a00000.mdss: [drm:msm_alloc_stolen_fb] *ERROR* failed to allocate buffer object
    msm 1a00000.mdss: [drm:msm_fbdev_create] *ERROR* failed to allocate fb
    
    Getting the mdp5 device pointer from this function is not that easy at
    this moment. Thus this patch is reverted till the MDSS rework [1] lands.
    It will make the mdp5/dpu1 device component master and the check will be
    legit.
    
    [1] https://patchwork.freedesktop.org/series/98525/
    
    Fixes: e2a88eab
    
     ("drm/msm: Stop using iommu_present()")
    Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20220419130422.1033699-1-dmitry.baryshkov@linaro.org
    
    Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
    0371870b
msm_drv.c 32.2 KB