• Sean Paul's avatar
    drm/msm/a6xx: Remove devm calls from gmu driver · a62fb211
    Sean Paul authored
    The gmu driver is initialized and cleaned up with calls from the gpu driver. As
    such, the platform device stays valid after a6xx_gmu_remove is called and the
    device managed resources are not freed. In the case of gpu probe failures or
    unbind, these resources will remain managed.
    
    If the gpu bind is run again (eg: if there's a probe defer somewhere in msm),
    these resources will be initialized again for the same device, creating multiple
    references. In the case of irqs, this causes failures since the irqs are
    not shared (nor should they be).
    
    This patch removes all devm_* calls and manually cleans things up in
    gmu_remove.
    
    Changes in v2:
    - Add iounmap and free_irq to gmu_probe error paths
    
    Cc: Jordan Crouse <jcrouse@codeaurora.org>
    Reviewed-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
    Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190523171653.138678-4-sean@poorly.run
    a62fb211
a6xx_gmu.c 33.7 KB