Use the ddc pointer provided by the generic connector.

Signed-off-by: Andrzej Pietrasiewicz <andrze...@collabora.com>
---
 drivers/gpu/drm/tegra/drm.h    |  1 -
 drivers/gpu/drm/tegra/hdmi.c   |  7 ++++---
 drivers/gpu/drm/tegra/output.c | 12 ++++++------
 drivers/gpu/drm/tegra/sor.c    | 13 +++++++------
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 86daa19fcf24..9bf72bcd3ec1 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -120,7 +120,6 @@ struct tegra_output {
        struct device *dev;
 
        struct drm_panel *panel;
-       struct i2c_adapter *ddc;
        const struct edid *edid;
        struct cec_notifier *cec;
        unsigned int hpd_irq;
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index 334c4d7d238b..aac871847be4 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -1425,9 +1425,10 @@ static int tegra_hdmi_init(struct host1x_client *client)
 
        hdmi->output.dev = client->dev;
 
-       drm_connector_init(drm, &hdmi->output.connector,
-                          &tegra_hdmi_connector_funcs,
-                          DRM_MODE_CONNECTOR_HDMIA);
+       drm_connector_init_with_ddc(drm, &hdmi->output.connector,
+                                   &tegra_hdmi_connector_funcs,
+                                   DRM_MODE_CONNECTOR_HDMIA,
+                                   hdmi->output.connector.ddc);
        drm_connector_helper_add(&hdmi->output.connector,
                                 &tegra_hdmi_connector_helper_funcs);
        hdmi->output.connector.dpms = DRM_MODE_DPMS_OFF;
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index 274cb955e2e1..0b5037a29c63 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -30,8 +30,8 @@ int tegra_output_connector_get_modes(struct drm_connector 
*connector)
 
        if (output->edid)
                edid = kmemdup(output->edid, sizeof(*edid), GFP_KERNEL);
-       else if (output->ddc)
-               edid = drm_get_edid(connector, output->ddc);
+       else if (connector->ddc)
+               edid = drm_get_edid(connector, connector->ddc);
 
        cec_notifier_set_phys_addr_from_edid(output->cec, edid);
        drm_connector_update_edid_property(connector, edid);
@@ -111,8 +111,8 @@ int tegra_output_probe(struct tegra_output *output)
 
        ddc = of_parse_phandle(output->of_node, "nvidia,ddc-i2c-bus", 0);
        if (ddc) {
-               output->ddc = of_find_i2c_adapter_by_node(ddc);
-               if (!output->ddc) {
+               output->connector.ddc = of_find_i2c_adapter_by_node(ddc);
+               if (!output->connector.ddc) {
                        err = -EPROBE_DEFER;
                        of_node_put(ddc);
                        return err;
@@ -174,8 +174,8 @@ void tegra_output_remove(struct tegra_output *output)
        if (output->hpd_gpio)
                free_irq(output->hpd_irq, output);
 
-       if (output->ddc)
-               put_device(&output->ddc->dev);
+       if (output->connector.ddc)
+               put_device(&output->connector.ddc->dev);
 }
 
 int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 4ffe3794e6d3..63b6cfbbd17e 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -2311,7 +2311,7 @@ static void tegra_sor_hdmi_disable_scrambling(struct 
tegra_sor *sor)
 
 static void tegra_sor_hdmi_scdc_disable(struct tegra_sor *sor)
 {
-       struct i2c_adapter *ddc = sor->output.ddc;
+       struct i2c_adapter *ddc = sor->output.connector.ddc;
 
        drm_scdc_set_high_tmds_clock_ratio(ddc, false);
        drm_scdc_set_scrambling(ddc, false);
@@ -2339,7 +2339,7 @@ static void tegra_sor_hdmi_enable_scrambling(struct 
tegra_sor *sor)
 
 static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
 {
-       struct i2c_adapter *ddc = sor->output.ddc;
+       struct i2c_adapter *ddc = sor->output.connector.ddc;
 
        drm_scdc_set_high_tmds_clock_ratio(ddc, true);
        drm_scdc_set_scrambling(ddc, true);
@@ -2350,7 +2350,7 @@ static void tegra_sor_hdmi_scdc_enable(struct tegra_sor 
*sor)
 static void tegra_sor_hdmi_scdc_work(struct work_struct *work)
 {
        struct tegra_sor *sor = container_of(work, struct tegra_sor, scdc.work);
-       struct i2c_adapter *ddc = sor->output.ddc;
+       struct i2c_adapter *ddc = sor->output.connector.ddc;
 
        if (!drm_scdc_get_scrambling_status(ddc)) {
                DRM_DEBUG_KMS("SCDC not scrambled\n");
@@ -2832,9 +2832,10 @@ static int tegra_sor_init(struct host1x_client *client)
 
        sor->output.dev = sor->dev;
 
-       drm_connector_init(drm, &sor->output.connector,
-                          &tegra_sor_connector_funcs,
-                          connector);
+       drm_connector_init_with_ddc(drm, &sor->output.connector,
+                                   &tegra_sor_connector_funcs,
+                                   connector,
+                                   sor->output.connector.ddc);
        drm_connector_helper_add(&sor->output.connector,
                                 &tegra_sor_connector_helper_funcs);
        sor->output.connector.dpms = DRM_MODE_DPMS_OFF;
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to