@@ -125,7 +125,6 @@ struct hdmi_context {
void __iomem *regs;
void __iomem *regs_hdmiphy;
struct i2c_client *hdmiphy_port;
- struct i2c_adapter *ddc_adpt;
struct gpio_desc *hpd_gpio;
int irq;
struct regmap *pmureg;
@@ -871,10 +870,10 @@ static int hdmi_get_modes(struct drm_connector *connector)
struct edid *edid;
int ret;
- if (!hdata->ddc_adpt)
+ if (!connector->ddc)
return -ENODEV;
- edid = drm_get_edid(connector, hdata->ddc_adpt);
+ edid = drm_get_edid(connector, connector->ddc);
if (!edid)
return -ENODEV;
@@ -940,8 +939,10 @@ static int hdmi_create_connector(struct drm_encoder *encoder)
connector->interlace_allowed = true;
connector->polled = DRM_CONNECTOR_POLL_HPD;
- ret = drm_connector_init(hdata->drm_dev, connector,
- &hdmi_connector_funcs, DRM_MODE_CONNECTOR_HDMIA);
+ ret = drm_connector_init_with_ddc(hdata->drm_dev, connector,
+ &hdmi_connector_funcs,
+ DRM_MODE_CONNECTOR_HDMIA,
+ connector->ddc);
if (ret) {
DRM_DEV_ERROR(hdata->dev,
"Failed to initialize connector with drm\n");
@@ -1892,7 +1893,7 @@ static int hdmi_get_ddc_adapter(struct hdmi_context *hdata)
return -EPROBE_DEFER;
}
- hdata->ddc_adpt = adpt;
+ hdata->connector.ddc = adpt;
return 0;
}
@@ -2044,7 +2045,7 @@ static int hdmi_probe(struct platform_device *pdev)
if (hdata->regs_hdmiphy)
iounmap(hdata->regs_hdmiphy);
err_ddc:
- put_device(&hdata->ddc_adpt->dev);
+ put_device(&hdata->connector.ddc->dev);
return ret;
}
@@ -2071,7 +2072,7 @@ static int hdmi_remove(struct platform_device *pdev)
if (hdata->regs_hdmiphy)
iounmap(hdata->regs_hdmiphy);
- put_device(&hdata->ddc_adpt->dev);
+ put_device(&hdata->connector.ddc->dev);
mutex_destroy(&hdata->mutex);
Switch to using the ddc provided by the generic connector. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> --- drivers/gpu/drm/exynos/exynos_hdmi.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)