MSM DRM driver stores connectors, encoders and planes in the arrays inside struct msm_drm_private. They are not really necessary, as drm_devices also references lists of these objects. Drop private arrays and use drm_mode_foo() macros. Note, the crtc array is kept intact as it is used in vblank handling code. Maybe it can be dropped later, but it would be a separate intrusive change. Dmitry Baryshkov (3): drm/msm/dpu: remove manual destruction of DRM objects drm/msm: loop over encoders using drm_for_each_encoder() drm/msm: don't store created planes, connectors and encoders drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 50 ++++++------------------ drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 7 ---- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 17 ++++---- drivers/gpu/drm/msm/dp/dp_display.c | 2 - drivers/gpu/drm/msm/dsi/dsi.c | 1 - drivers/gpu/drm/msm/hdmi/hdmi.c | 1 - drivers/gpu/drm/msm/msm_drv.h | 9 ----- 7 files changed, 20 insertions(+), 67 deletions(-) -- 2.35.1