The writeback connector init helpers (drm_writeback_connector_init
and drmm_writeback_connector_init) require access to the
parent drm_connector object as well as the drm_writeback_connector
object itself. So, pass in the top level drm_connector and traverse
down to drm_writeback_connector 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.

Signed-off-by: Suraj Kandpal <[email protected]>
Reviewed-by: John Harrison <[email protected]>
Reviewed-by: Alex Hung <[email protected]>
---
v6 -> v7:
- Rebase over latest kernel
- Rebase over latest writeback series by Dmitry
- Update commit message (Alex)

v5 -> v6:
- Rebase over latest kernel

v4 -> v5:
- Make @connector kerneldoc wording consistent across the series (John)
- Fix Drm -> DRM (John)

v3 -> v4:
- Update subject line for consitency (John)
- Update commit message across commits for consitency (John)
- Rename writeback to wb_connector in rcar_du_crtc for clarity (John)


 .../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    |  6 +++---
 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, 19 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 4cd8fdf6ef07..e98481d5aa74 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
@@ -262,7 +262,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 = drm_writeback_connector_init(&dm->adev->ddev, 
&wbcon->base.writeback,
+       res = drm_writeback_connector_init(&dm->adev->ddev, &wbcon->base,
                                           &amdgpu_dm_wb_connector_funcs,
                                           &wbcon->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 07075a8b5aa8..5cdcc468e8a4 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
@@ -145,7 +145,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;
        struct drm_encoder *wb_encoder;
@@ -164,8 +163,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);
@@ -186,7 +183,7 @@ static int komeda_wb_connector_add(struct komeda_kms_dev 
*kms,
                return err;
        }
 
-       err = drm_writeback_connector_init(&kms->base, wb_conn,
+       err = drm_writeback_connector_init(&kms->base, &kwb_conn->base,
                                           &komeda_wb_connector_funcs,
                                           wb_encoder,
                                           formats, n_formats);
diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_mw.c
index 503a19963587..bf06a47c3b63 100644
--- a/drivers/gpu/drm/arm/malidp_mw.c
+++ b/drivers/gpu/drm/arm/malidp_mw.c
@@ -239,7 +239,7 @@ int malidp_mw_connector_init(struct drm_device *drm)
                return ret;
        }
 
-       ret = drm_writeback_connector_init(drm, &malidp->mw_connector.writeback,
+       ret = drm_writeback_connector_init(drm, &malidp->mw_connector,
                                           &malidp_mw_connector_funcs,
                                           &malidp->mw_encoder,
                                           formats, n_formats);
diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writeback.c
index c3d2853755ac..4a32ab840862 100644
--- a/drivers/gpu/drm/drm_writeback.c
+++ b/drivers/gpu/drm/drm_writeback.c
@@ -224,9 +224,9 @@ static int __drm_writeback_connector_init(struct drm_device 
*dev,
  * drm_writeback_connector_init - Initialize a writeback connector
  *
  * @dev: DRM device
- * @wb_connector: Writeback connector to initialize
- * @enc: handle to the already initialized drm encoder
+ * @connector: DRM connector which contains the writeback connector to 
initialize
  * @con_funcs: Connector funcs vtable
+ * @enc: handle to the already initialized drm encoder
  * @formats: Array of supported pixel formats for the writeback engine
  * @n_formats: Length of the formats array
  *
@@ -249,12 +249,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,
@@ -307,7 +307,7 @@ void drm_writeback_connector_cleanup(struct drm_connector 
*connector)
  * drmm_writeback_connector_init - Initialize a writeback connector
  *
  * @dev: DRM device
- * @wb_connector: Writeback connector to initialize
+ * @connector: DRM connector which contains 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
@@ -324,12 +324,12 @@ void drm_writeback_connector_cleanup(struct drm_connector 
*connector)
  * 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 95db5002e999..38c214dea08d 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
@@ -134,7 +134,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 0708e5a38a15..5ad8b935eb81 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
@@ -204,7 +204,7 @@ 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->wb_connector.writeback;
+       struct drm_connector *connector = &rcrtc->wb_connector;
        struct drm_encoder *encoder = &rcrtc->encoder;
        int ret;
 
@@ -216,9 +216,9 @@ int rcar_du_writeback_init(struct rcar_du_device *rcdu,
        if (ret)
                return ret;
 
-       drm_connector_helper_add(&rcrtc->wb_connector,
+       drm_connector_helper_add(connector,
                                 &rcar_du_wb_conn_helper_funcs);
-       ret = drm_writeback_connector_init(&rcdu->ddev, wb_conn,
+       ret = drm_writeback_connector_init(&rcdu->ddev, connector,
                                           &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 591753dcfb30..34a9c714deb8 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 = drm_writeback_connector_init(drm, &txp->connector.writeback,
+       ret = drm_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 b9f33f2e8b92..b8ef524fe313 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);
-- 
2.34.1

Reply via email to