[PATCH v4 0/7] Refactor drm_writeback_connector structure

Suraj Kandpal posted 7 patches 3 days, 14 hours ago
There is a newer version of this series
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +--
.../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               | 50 +++++++-----
.../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    |  6 +-
.../drm/renesas/rcar-du/rcar_du_writeback.c   | 16 ++--
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                   | 69 ++++++++++++++++-
include/drm/drm_modeset_helper_vtables.h      |  4 +-
include/drm/drm_writeback.h                   | 76 ++-----------------
22 files changed, 164 insertions(+), 163 deletions(-)
[PATCH v4 0/7] Refactor drm_writeback_connector structure
Posted by Suraj Kandpal 3 days, 14 hours ago
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.kandpal@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 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 | 10 +--
 .../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               | 50 +++++++-----
 .../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    |  6 +-
 .../drm/renesas/rcar-du/rcar_du_writeback.c   | 16 ++--
 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                   | 69 ++++++++++++++++-
 include/drm/drm_modeset_helper_vtables.h      |  4 +-
 include/drm/drm_writeback.h                   | 76 ++-----------------
 22 files changed, 164 insertions(+), 163 deletions(-)

-- 
2.34.1
Re: [PATCH v4 0/7] Refactor drm_writeback_connector structure
Posted by John Harrison 3 days, 1 hour ago
On 5/20/26 22:37, Suraj Kandpal wrote:
> 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/
QQ: What tree is this patch set based on? I tried to apply it locally 
but I get conflicts no matter what baseline I use. I've tried full 
kernel, drm-tip and drm-next. Dmitry's patch set, [3] above, applies 
fine but I get conflicts in the rcar and mali files when trying to apply 
this set.

Thanks,
John.

>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@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 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 | 10 +--
>   .../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               | 50 +++++++-----
>   .../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    |  6 +-
>   .../drm/renesas/rcar-du/rcar_du_writeback.c   | 16 ++--
>   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                   | 69 ++++++++++++++++-
>   include/drm/drm_modeset_helper_vtables.h      |  4 +-
>   include/drm/drm_writeback.h                   | 76 ++-----------------
>   22 files changed, 164 insertions(+), 163 deletions(-)
>
RE: [PATCH v4 0/7] Refactor drm_writeback_connector structure
Posted by Kandpal, Suraj 2 days, 16 hours ago
> Subject: Re: [PATCH v4 0/7] Refactor drm_writeback_connector structure
> 
> On 5/20/26 22:37, Suraj Kandpal wrote:
> > 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/
> QQ: What tree is this patch set based on? I tried to apply it locally but I get
> conflicts no matter what baseline I use. I've tried full kernel, drm-tip and drm-
> next. Dmitry's patch set, [3] above, applies fine but I get conflicts in the rcar
> and mali files when trying to apply this set.

Hmm I probably need to take his latest revision and apply my series on top of it again then send It that should resolve it.
This should be fixed by next revision.

Regards,
Suraj Kandpal 

> 
> Thanks,
> John.
> 
> >
> > Signed-off-by: Suraj Kandpal <suraj.kandpal@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 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 | 10 +--
> >   .../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               | 50 +++++++-----
> >   .../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    |  6 +-
> >   .../drm/renesas/rcar-du/rcar_du_writeback.c   | 16 ++--
> >   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                   | 69 ++++++++++++++++-
> >   include/drm/drm_modeset_helper_vtables.h      |  4 +-
> >   include/drm/drm_writeback.h                   | 76 ++-----------------
> >   22 files changed, 164 insertions(+), 163 deletions(-)
> >