On 3/16/26 01:30, Suraj Kandpal wrote:
Now with drm_writeback_connector moved to drm_connector it makes
more sense use drm_connector as an argument rather than
drm_writeback_connector. The writeback connector can easily be derived
from drm_connector.
So this patch and all five subsequent patches are basically the same search and replace of base_conn->wb_conn to base_conn in the DRM level helper functions, yes? I would add a little more explanation of why "it makes more sense". Something like: "Some of the writeback helper functions require access to the parent drm_connector object as well as the drm_writeback_connector object itself. So, pass in the top level object and traverse down rather than passing in the lower level object and traversing back up. Even where such is not the case, update to use the top level object for consistency across the interface."

Also, there could be better consistency across these 'modify' patches. First, the subject of patches 1-5 should be 'drm/writeback: ...' not 'drm: writeback: ...'. Then you have 'modify XXX helpers', 'modify XXX params' and 'modify params for XXX'. It would be cleaner to pick a single variant and use that for all the patches. Lastly, are the final two patches really 'drm/connector:'? The header file with the function declarations being updated is drm_modeset_helper_vtables.h. Which would make the prefix 'drm/modeset'? Although, given that the declarations are specific to writeback support, I would just stick with 'drm/writeback' for all seven patches.

John.


Signed-off-by: Suraj Kandpal <[email protected]>
---
  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c   |  2 +-
  .../drm/arm/display/komeda/komeda_wb_connector.c   |  5 +----
  drivers/gpu/drm/arm/malidp_mw.c                    |  2 +-
  drivers/gpu/drm/drm_writeback.c                    | 14 ++++++--------
  drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c      |  2 +-
  .../gpu/drm/renesas/rcar-du/rcar_du_writeback.c    |  3 +--
  drivers/gpu/drm/vc4/vc4_txp.c                      |  2 +-
  drivers/gpu/drm/vkms/vkms_writeback.c              |  4 ++--
  include/drm/drm_writeback.h                        |  4 ++--
  9 files changed, 16 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
index 8fea29720989..84a9c1d2bd8e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
@@ -204,7 +204,7 @@ int amdgpu_dm_wb_connector_init(struct 
amdgpu_display_manager *dm,
drm_connector_helper_add(&wbcon->base, &amdgpu_dm_wb_conn_helper_funcs); - res = drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base.writeback,
+       res = drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base,
                                            &amdgpu_dm_wb_connector_funcs,
                                            encoder,
                                            amdgpu_dm_wb_formats,
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
index fa2f63c142cd..85b34375d275 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
@@ -135,7 +135,6 @@ static int komeda_wb_connector_add(struct komeda_kms_dev 
*kms,
  {
        struct komeda_dev *mdev = kms->base.dev_private;
        struct komeda_wb_connector *kwb_conn;
-       struct drm_writeback_connector *wb_conn;
        struct drm_display_info *info;
        struct drm_encoder *encoder;
@@ -151,8 +150,6 @@ static int komeda_wb_connector_add(struct komeda_kms_dev *kms, kwb_conn->wb_layer = kcrtc->master->wb_layer; - wb_conn = &kwb_conn->base.writeback;
-
        formats = komeda_get_layer_fourcc_list(&mdev->fmt_tbl,
                                               kwb_conn->wb_layer->layer_type,
                                               &n_formats);
@@ -170,7 +167,7 @@ static int komeda_wb_connector_add(struct komeda_kms_dev 
*kms,
encoder->possible_crtcs = drm_crtc_mask(&kcrtc->base); - err = drmm_writeback_connector_init(&kms->base, wb_conn,
+       err = drmm_writeback_connector_init(&kms->base, &kwb_conn->base,
                                            &komeda_wb_connector_funcs,
                                            encoder,
                                            formats, n_formats);
diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_mw.c
index 472598b3e007..7d42b007ef19 100644
--- a/drivers/gpu/drm/arm/malidp_mw.c
+++ b/drivers/gpu/drm/arm/malidp_mw.c
@@ -228,7 +228,7 @@ int malidp_mw_connector_init(struct drm_device *drm)
encoder->possible_crtcs = drm_crtc_mask(&malidp->crtc); - ret = drmm_writeback_connector_init(drm, &malidp->mw_connector.writeback,
+       ret = drmm_writeback_connector_init(drm, &malidp->mw_connector,
                                            &malidp_mw_connector_funcs,
                                            encoder,
                                            formats, n_formats);
diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writeback.c
index 7bf9f6374712..9a3037d11009 100644
--- a/drivers/gpu/drm/drm_writeback.c
+++ b/drivers/gpu/drm/drm_writeback.c
@@ -242,7 +242,7 @@ static int __drm_writeback_connector_init(struct drm_device 
*dev,
   * a custom encoder
   *
   * @dev: DRM device
- * @wb_connector: Writeback connector to initialize
+ * @connector: Drm connector which contains the writeback connector to 
initialize
   * @enc: handle to the already initialized drm encoder
   * @con_funcs: Connector funcs vtable
   * @formats: Array of supported pixel formats for the writeback engine
@@ -267,13 +267,12 @@ static int __drm_writeback_connector_init(struct 
drm_device *dev,
   * Returns: 0 on success, or a negative error code
   */
  int drm_writeback_connector_init(struct drm_device *dev,
-                                struct drm_writeback_connector *wb_connector,
+                                struct drm_connector *connector,
                                 const struct drm_connector_funcs *con_funcs,
                                 struct drm_encoder *enc,
                                 const u32 *formats, int n_formats)
  {
-       struct drm_connector *connector =
-               drm_writeback_to_connector(wb_connector);
+       struct drm_writeback_connector *wb_connector = &connector->writeback;
        int ret;
ret = drm_connector_init(dev, connector, con_funcs,
@@ -322,7 +321,7 @@ static void drm_writeback_connector_cleanup(struct 
drm_device *dev,
   * a custom encoder
   *
   * @dev: DRM device
- * @wb_connector: Writeback connector to initialize
+ * @connector: Drm connector containing the writeback connector to initialize
   * @con_funcs: Connector funcs vtable
   * @enc: Encoder to connect this writeback connector
   * @formats: Array of supported pixel formats for the writeback engine
@@ -338,13 +337,12 @@ static void drm_writeback_connector_cleanup(struct 
drm_device *dev,
   * Returns: 0 on success, or a negative error code
   */
  int drmm_writeback_connector_init(struct drm_device *dev,
-                                 struct drm_writeback_connector *wb_connector,
+                                 struct drm_connector *connector,
                                  const struct drm_connector_funcs *con_funcs,
                                  struct drm_encoder *enc,
                                  const u32 *formats, int n_formats)
  {
-       struct drm_connector *connector =
-               drm_writeback_to_connector(wb_connector);
+       struct drm_writeback_connector *wb_connector = &connector->writeback;
        int ret;
ret = drmm_connector_init(dev, connector, con_funcs,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
index 930ba1ad777b..d4fc28951085 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
@@ -136,7 +136,7 @@ int dpu_writeback_init(struct drm_device *dev, struct 
drm_encoder *enc,
drm_connector_helper_add(&dpu_wb_conn->base, &dpu_wb_conn_helper_funcs); - rc = drmm_writeback_connector_init(dev, &dpu_wb_conn->base.writeback,
+       rc = drmm_writeback_connector_init(dev, &dpu_wb_conn->base,
                                           &dpu_wb_conn_funcs, enc,
                                           format_list, num_formats);
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
index cd09e0fbb030..1de8865fb751 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
@@ -203,7 +203,6 @@ static const u32 writeback_formats[] = {
  int rcar_du_writeback_init(struct rcar_du_device *rcdu,
                           struct rcar_du_crtc *rcrtc)
  {
-       struct drm_writeback_connector *wb_conn = &rcrtc->writeback.writeback;
        struct drm_encoder *encoder;
encoder = drmm_plain_encoder_alloc(&rcdu->ddev, NULL,
@@ -218,7 +217,7 @@ int rcar_du_writeback_init(struct rcar_du_device *rcdu,
        drm_connector_helper_add(&rcrtc->writeback,
                                 &rcar_du_wb_conn_helper_funcs);
- return drmm_writeback_connector_init(&rcdu->ddev, wb_conn,
+       return drmm_writeback_connector_init(&rcdu->ddev, &rcrtc->writeback,
                                             &rcar_du_wb_conn_funcs,
                                             encoder,
                                             writeback_formats,
diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c
index de3db0834011..d08271142116 100644
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
@@ -601,7 +601,7 @@ static int vc4_txp_bind(struct device *dev, struct device 
*master, void *data)
drm_connector_helper_add(&txp->connector,
                                 &vc4_txp_connector_helper_funcs);
-       ret = drmm_writeback_connector_init(drm, &txp->connector.writeback,
+       ret = drmm_writeback_connector_init(drm, &txp->connector,
                                            &vc4_txp_connector_funcs,
                                            encoder,
                                            drm_fmts, ARRAY_SIZE(drm_fmts));
diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c 
b/drivers/gpu/drm/vkms/vkms_writeback.c
index cadb4cb372c5..b368c569cf0a 100644
--- a/drivers/gpu/drm/vkms/vkms_writeback.c
+++ b/drivers/gpu/drm/vkms/vkms_writeback.c
@@ -170,7 +170,6 @@ static const struct drm_connector_helper_funcs 
vkms_wb_conn_helper_funcs = {
  int vkms_enable_writeback_connector(struct vkms_device *vkmsdev,
                                    struct vkms_output *vkms_output)
  {
-       struct drm_writeback_connector *wb = 
&vkms_output->wb_connector.writeback;
        int ret;
ret = drmm_encoder_init(&vkmsdev->drm, &vkms_output->wb_encoder,
@@ -183,7 +182,8 @@ int vkms_enable_writeback_connector(struct vkms_device 
*vkmsdev,
drm_connector_helper_add(&vkms_output->wb_connector, &vkms_wb_conn_helper_funcs); - return drmm_writeback_connector_init(&vkmsdev->drm, wb,
+       return drmm_writeback_connector_init(&vkmsdev->drm,
+                                            &vkms_output->wb_connector,
                                             &vkms_wb_connector_funcs,
                                             &vkms_output->wb_encoder,
                                             vkms_wb_formats,
diff --git a/include/drm/drm_writeback.h b/include/drm/drm_writeback.h
index 702141099520..c6960c7e634e 100644
--- a/include/drm/drm_writeback.h
+++ b/include/drm/drm_writeback.h
@@ -78,13 +78,13 @@ drm_writeback_to_connector(struct drm_writeback_connector 
*wb_connector)
  }
int drm_writeback_connector_init(struct drm_device *dev,
-                                struct drm_writeback_connector *wb_connector,
+                                struct drm_connector *connector,
                                 const struct drm_connector_funcs *con_funcs,
                                 struct drm_encoder *enc,
                                 const u32 *formats, int n_formats);
int drmm_writeback_connector_init(struct drm_device *dev,
-                                 struct drm_writeback_connector *wb_connector,
+                                 struct drm_connector *connector,
                                  const struct drm_connector_funcs *con_funcs,
                                  struct drm_encoder *enc,
                                  const u32 *formats, int n_formats);

Reply via email to