diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 04e4571..3519d5f 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -1160,6 +1160,8 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb, goto out; } if (port->port_num >= DP_MST_LOGICAL_PORT_0) { + printk("**************** Carlos %s %d\n",__FUNCTION__,__LINE__); + port->cached_edid = drm_get_edid(port->connector, &port->aux.ddc); drm_mode_connector_set_tile_property(port->connector); } diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index ec77bd3..cfea9ea 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -1217,6 +1217,11 @@ drm_do_probe_ddc_edid(void *data, u8 *buf, unsigned int block, size_t len) unsigned char xfers = segment ? 3 : 2; int ret, retries = 5; + if(!data){ + printk("************* Carlos %s %d \n", __FUNCTION__,__LINE__); + return -1; + } + /* * The core I2C driver will automatically retry the transfer if the * adapter reports EAGAIN. However, we find that bit-banging transfers @@ -1371,6 +1376,7 @@ drm_probe_ddc(struct i2c_adapter *adapter) { unsigned char out; + //Carlos returns 0 on success return (drm_do_probe_ddc_edid(adapter, &out, 0, 1) == 0); } EXPORT_SYMBOL(drm_probe_ddc); @@ -1390,8 +1396,10 @@ struct edid *drm_get_edid(struct drm_connector *connector, { struct edid *edid; - if (!drm_probe_ddc(adapter)) + if (!drm_probe_ddc(adapter)){ + printk("Carlos *********** %s %d \n",__FUNCTION__,__LINE__); return NULL; + } edid = drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter); if (edid)