Some drivers cannot work with the current design where the connector is embedded within the drm_writeback_connector such as intel and some drivers that can get it working end up adding a lot of checks all around the code to check if it's a writeback conenctor or not. This is due to the inheritance limitation in C. This series intends to solve it by moving the drm_writeback_connector within the drm_connector and remove the drm_connector base which was in drm_writeback_connector. This is done in union with hdmi connector within drm_connector to save memory and since drm_connector cannot be both hdmi and writeback it serves is well. A RFC version was floated and discussion had taken place at [1] which kicked of this more cleaner series. We do all other required modifications that come with these changes along with addition of new function which returns the drm_connector when drm_writeback_connector is present. This series also contains some writeback API cleanups as a consequence of writeback connector moving into drm_connector All drivers will be expected to allocate the drm_connector. This discussion was tiggered from [2] and sits on top of Dmitry's series see [3].
[1] https://patchwork.freedesktop.org/series/152758/ [2] https://patchwork.freedesktop.org/series/152106/ [3] https://patchwork.freedesktop.org/series/152420/ Signed-off-by: Suraj Kandpal <suraj.kand...@intel.com> Suraj Kandpal (7): drm: writeback: Refactor drm_writeback_connector structure drm: writeback: Modify writeback init helpers drm: writeback: Modify drm_writeback_queue_job params drm: writeback: Modify drm_writeback_signal_completion param drm: writeback: Modify params for drm_writeback_get_out_fence drm/connector: Modify prepare_writeback_job helper drm/connector: Modify cleanup_writeback_job helper .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 +-- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 +- .../drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 12 +-- .../gpu/drm/arm/display/komeda/komeda_crtc.c | 2 +- .../gpu/drm/arm/display/komeda/komeda_kms.h | 6 +- .../arm/display/komeda/komeda_wb_connector.c | 11 +-- drivers/gpu/drm/arm/malidp_crtc.c | 2 +- drivers/gpu/drm/arm/malidp_drv.h | 2 +- drivers/gpu/drm/arm/malidp_mw.c | 7 +- drivers/gpu/drm/drm_atomic_uapi.c | 4 +- drivers/gpu/drm/drm_writeback.c | 53 ++++++++----- .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 9 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 10 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h | 4 +- .../gpu/drm/renesas/rcar-du/rcar_du_crtc.h | 4 +- .../drm/renesas/rcar-du/rcar_du_writeback.c | 12 ++- drivers/gpu/drm/vc4/vc4_txp.c | 8 +- drivers/gpu/drm/vkms/vkms_drv.h | 2 +- drivers/gpu/drm/vkms/vkms_writeback.c | 15 ++-- include/drm/drm_connector.h | 70 ++++++++++++++++- include/drm/drm_modeset_helper_vtables.h | 4 +- include/drm/drm_writeback.h | 78 +++---------------- 22 files changed, 170 insertions(+), 158 deletions(-) -- 2.34.1