[PATCH 4/4] drm/dp/mst: Check peer device type before attempting EDID read

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Oct 26 18:45:56 UTC 2016


On Wed, Oct 26, 2016 at 11:31:55AM -0700, Carlos Santa wrote:
> On Wed, 2016-10-26 at 02:05 -0700, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > 
> > Only certain types of pdts have the DDC bus registered, so check for
> > that before we attempt the EDID read. Othwewise we risk playing 
> 
> typo above
> 
> > around
> > with an i2c adapter that doesn't actually exist.
> > 
> 
> Would it be worth pasting the stack trace of the crash??

Can't hurt.

> 
> Carlos
> 
> 
> > Cc: stable at vger.kernel.org
> > Cc: Carlos Santa <carlos.santa at intel.com>
> > Cc: Kirill A. Shutemov <kirill at shutemov.name>
> > Tested-by: Carlos Santa <carlos.santa at intel.com>
> > Tested-by: Kirill A. Shutemov <kirill at shutemov.name>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97666
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > ---
> >  drivers/gpu/drm/drm_dp_mst_topology.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c
> > b/drivers/gpu/drm/drm_dp_mst_topology.c
> > index 956babc161e5..690d1b407a90 100644
> > --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> > @@ -1162,7 +1162,9 @@ static void drm_dp_add_port(struct
> > drm_dp_mst_branch *mstb,
> >  			drm_dp_put_port(port);
> >  			goto out;
> >  		}
> > -		if (port->port_num >= DP_MST_LOGICAL_PORT_0) {
> > +		if ((port->pdt == DP_PEER_DEVICE_DP_LEGACY_CONV ||
> > +		     port->pdt == DP_PEER_DEVICE_SST_SINK) &&
> > +		    port->port_num >= DP_MST_LOGICAL_PORT_0) {
> >  			port->cached_edid = drm_get_edid(port-
> > >connector, &port->aux.ddc);
> >  			drm_mode_connector_set_tile_property(port-
> > >connector);
> >  		}
> > -- 
> > 2.7.4
> > 

-- 
Ville Syrjälä
Intel OTC


More information about the dri-devel mailing list