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 <[email protected]>

Dmitry Baryshkov (1):
  drm: writeback: drop excess connector initialization functions

Suraj Kandpal (7):
  drm: writeback: Refactor drm_writeback_connector structure
  drm: writeback: Modify writeback init helpers
  drm: writeback: Modify drm_writeback_queue_job helper
  drm: writeback: Modify drm_writeback_signal_completion helper
  drm: writeback: Modify drm_writeback_get_out_fence helper
  drm: writeback: Modify prepare_writeback_job helper
  drm: writeback: Modify cleanup_writeback_job helper

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   8 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h |   3 +-
 .../display/amdgpu_dm/amdgpu_dm_connector.c   |   4 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c  |  37 ++--
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_wb.h  |   4 +-
 .../tests/amdgpu_dm_connector_test.c          |   6 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_test.c  |   2 +-
 .../amdgpu_dm/tests/amdgpu_dm_wb_test.c       |  10 +-
 .../gpu/drm/arm/display/komeda/komeda_crtc.c  |   2 +-
 .../gpu/drm/arm/display/komeda/komeda_kms.h   |   9 +-
 .../arm/display/komeda/komeda_wb_connector.c  |  37 ++--
 drivers/gpu/drm/arm/malidp_crtc.c             |   2 +-
 drivers/gpu/drm/arm/malidp_drv.h              |   3 +-
 drivers/gpu/drm/arm/malidp_mw.c               |  32 ++-
 drivers/gpu/drm/drm_atomic_uapi.c             |   4 +-
 drivers/gpu/drm/drm_connector.c               |   3 +
 drivers/gpu/drm/drm_crtc_internal.h           |   3 +
 drivers/gpu/drm/drm_writeback.c               | 193 ++++++------------
 .../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    |   8 +-
 .../drm/renesas/rcar-du/rcar_du_writeback.c   |  44 ++--
 drivers/gpu/drm/vc4/vc4_txp.c                 |  16 +-
 drivers/gpu/drm/vkms/vkms_drv.h               |   2 +-
 drivers/gpu/drm/vkms/vkms_writeback.c         |  15 +-
 include/drm/drm_connector.h                   |  69 ++++++-
 include/drm/drm_modeset_helper_vtables.h      |   4 +-
 include/drm/drm_writeback.h                   |  98 +--------
 29 files changed, 307 insertions(+), 334 deletions(-)

-- 
2.34.1

Reply via email to