@@ -57,7 +57,6 @@ struct imx_ldb_channel {
struct drm_bridge *bridge;
struct device_node *child;
- struct i2c_adapter *ddc;
int chno;
void *edid;
int edid_len;
@@ -133,8 +132,8 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
return num_modes;
}
- if (!imx_ldb_ch->edid && imx_ldb_ch->ddc)
- imx_ldb_ch->edid = drm_get_edid(connector, imx_ldb_ch->ddc);
+ if (!imx_ldb_ch->edid && connector->ddc)
+ imx_ldb_ch->edid = drm_get_edid(connector, connector->ddc);
if (imx_ldb_ch->edid) {
drm_connector_update_edid_property(connector,
@@ -462,9 +461,10 @@ static int imx_ldb_register(struct drm_device *drm,
*/
drm_connector_helper_add(&imx_ldb_ch->connector,
&imx_ldb_connector_helper_funcs);
- drm_connector_init(drm, &imx_ldb_ch->connector,
- &imx_ldb_connector_funcs,
- DRM_MODE_CONNECTOR_LVDS);
+ drm_connector_init_with_ddc(drm, &imx_ldb_ch->connector,
+ &imx_ldb_connector_funcs,
+ DRM_MODE_CONNECTOR_LVDS,
+ imx_ldb_ch->connector.ddc);
drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
}
@@ -552,15 +552,15 @@ static int imx_ldb_panel_ddc(struct device *dev,
ddc_node = of_parse_phandle(child, "ddc-i2c-bus", 0);
if (ddc_node) {
- channel->ddc = of_find_i2c_adapter_by_node(ddc_node);
+ channel->connector.ddc = of_find_i2c_adapter_by_node(ddc_node);
of_node_put(ddc_node);
- if (!channel->ddc) {
+ if (!channel->connector.ddc) {
dev_warn(dev, "failed to get ddc i2c adapter\n");
return -EPROBE_DEFER;
}
}
- if (!channel->ddc) {
+ if (!channel->connector.ddc) {
/* if no DDC available, fallback to hardcoded EDID */
dev_dbg(dev, "no ddc available\n");
@@ -727,7 +727,7 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
drm_panel_detach(channel->panel);
kfree(channel->edid);
- i2c_put_adapter(channel->ddc);
+ i2c_put_adapter(channel->connector.ddc);
}
}
Use the ddc pointer provided by the generic connector. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> --- drivers/gpu/drm/imx/imx-ldb.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-)