drm/msm/dp: move pdev from struct dp_display_private to struct msm_dp
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Mon, 9 Oct 2023 18:10:30 +0000 (21:10 +0300)
committerRob Clark <robdclark@chromium.org>
Mon, 9 Oct 2023 18:37:34 +0000 (11:37 -0700)
The dp_drm needs accessing the DP's platform device. Move pdev to the
public structure.

Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/561642/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/dp/dp_display.c
drivers/gpu/drm/msm/dp/dp_display.h

index 397bc19f408dcdd31989ee90940ee4f7285810a3..c7f77cb06fccf72a74a91a6c1595cffe0c009c0a 100644 (file)
@@ -88,7 +88,6 @@ struct dp_display_private {
        bool audio_supported;
 
        struct drm_device *drm_dev;
-       struct platform_device *pdev;
        struct dentry *root;
 
        struct dp_parser  *parser;
@@ -595,7 +594,7 @@ static int dp_hpd_plug_handle(struct dp_display_private *dp, u32 data)
                return 0;
        }
 
-       ret = dp_display_usbpd_configure_cb(&dp->pdev->dev);
+       ret = dp_display_usbpd_configure_cb(&dp->dp_display.pdev->dev);
        if (ret) {      /* link train failed */
                dp->hpd_state = ST_DISCONNECTED;
        } else {
@@ -643,7 +642,7 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
                if (dp->link->sink_count == 0) {
                        dp_display_host_phy_exit(dp);
                }
-               dp_display_notify_disconnect(&dp->pdev->dev);
+               dp_display_notify_disconnect(&dp->dp_display.pdev->dev);
                mutex_unlock(&dp->event_mutex);
                return 0;
        } else if (state == ST_DISCONNECT_PENDING) {
@@ -653,7 +652,7 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
                dp_ctrl_off_link(dp->ctrl);
                dp_display_host_phy_exit(dp);
                dp->hpd_state = ST_DISCONNECTED;
-               dp_display_notify_disconnect(&dp->pdev->dev);
+               dp_display_notify_disconnect(&dp->dp_display.pdev->dev);
                mutex_unlock(&dp->event_mutex);
                return 0;
        }
@@ -662,7 +661,7 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
         * We don't need separate work for disconnect as
         * connect/attention interrupts are disabled
         */
-       dp_display_notify_disconnect(&dp->pdev->dev);
+       dp_display_notify_disconnect(&dp->dp_display.pdev->dev);
 
        if (state == ST_DISPLAY_OFF) {
                dp->hpd_state = ST_DISCONNECTED;
@@ -704,7 +703,7 @@ static int dp_irq_hpd_handle(struct dp_display_private *dp, u32 data)
                return 0;
        }
 
-       dp_display_usbpd_attention_cb(&dp->pdev->dev);
+       dp_display_usbpd_attention_cb(&dp->dp_display.pdev->dev);
 
        drm_dbg_dp(dp->drm_dev, "After, type=%d hpd_state=%d\n",
                        dp->dp_display.connector_type, state);
@@ -725,12 +724,12 @@ static void dp_display_deinit_sub_modules(struct dp_display_private *dp)
 static int dp_init_sub_modules(struct dp_display_private *dp)
 {
        int rc = 0;
-       struct device *dev = &dp->pdev->dev;
+       struct device *dev = &dp->dp_display.pdev->dev;
        struct dp_panel_in panel_in = {
                .dev = dev,
        };
 
-       dp->parser = dp_parser_get(dp->pdev);
+       dp->parser = dp_parser_get(dp->dp_display.pdev);
        if (IS_ERR(dp->parser)) {
                rc = PTR_ERR(dp->parser);
                DRM_ERROR("failed to initialize parser, rc = %d\n", rc);
@@ -791,7 +790,7 @@ static int dp_init_sub_modules(struct dp_display_private *dp)
                goto error_ctrl;
        }
 
-       dp->audio = dp_audio_get(dp->pdev, dp->panel, dp->catalog);
+       dp->audio = dp_audio_get(dp->dp_display.pdev, dp->panel, dp->catalog);
        if (IS_ERR(dp->audio)) {
                rc = PTR_ERR(dp->audio);
                pr_err("failed to initialize audio, rc = %d\n", rc);
@@ -1197,7 +1196,7 @@ int dp_display_request_irq(struct msm_dp *dp_display)
 
        dp = container_of(dp_display, struct dp_display_private, dp_display);
 
-       dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0);
+       dp->irq = irq_of_parse_and_map(dp->dp_display.pdev->dev.of_node, 0);
        if (!dp->irq) {
                DRM_ERROR("failed to get irq\n");
                return -EINVAL;
@@ -1253,7 +1252,7 @@ static int dp_display_probe(struct platform_device *pdev)
        if (!desc)
                return -EINVAL;
 
-       dp->pdev = pdev;
+       dp->dp_display.pdev = pdev;
        dp->name = "drm_dp";
        dp->id = desc->id;
        dp->dp_display.connector_type = desc->connector_type;
@@ -1461,7 +1460,7 @@ void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor)
        int rc;
 
        dp = container_of(dp_display, struct dp_display_private, dp_display);
-       dev = &dp->pdev->dev;
+       dev = &dp->dp_display.pdev->dev;
 
        dp->debug = dp_debug_get(dev, dp->panel,
                                        dp->link, dp->dp_display.connector,
@@ -1481,7 +1480,7 @@ static int dp_display_get_next_bridge(struct msm_dp *dp)
        struct device *dev;
 
        dp_priv = container_of(dp, struct dp_display_private, dp_display);
-       dev = &dp_priv->pdev->dev;
+       dev = &dp_priv->dp_display.pdev->dev;
        aux_bus = of_get_child_by_name(dev->of_node, "aux-bus");
 
        if (aux_bus && dp->is_edp) {
index 1e9415ab15d89b4e9d023e0ddc16746eca51bf7f..f66cdbc357856ba36afa323ade225ce4ee354846 100644 (file)
@@ -12,6 +12,7 @@
 
 struct msm_dp {
        struct drm_device *drm_dev;
+       struct platform_device *pdev;
        struct device *codec_dev;
        struct drm_bridge *bridge;
        struct drm_connector *connector;