From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com ([134.134.136.31]:46077 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753643AbcJZSa5 (ORCPT ); Wed, 26 Oct 2016 14:30:57 -0400 Message-ID: <1477506715.5667.1.camel@intel.com> Subject: Re: [PATCH 4/4] drm/dp/mst: Check peer device type before attempting EDID read From: Carlos Santa To: "ville.syrjala@linux.intel.com" , "dri-devel@lists.freedesktop.org" Cc: "stable@vger.kernel.org" , "Kirill A . Shutemov" Date: Wed, 26 Oct 2016 11:31:55 -0700 In-Reply-To: <1477472755-15288-5-git-send-email-ville.syrjala@linux.intel.com> References: <1477472755-15288-1-git-send-email-ville.syrjala@linux.intel.com> <1477472755-15288-5-git-send-email-ville.syrjala@linux.intel.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: On Wed, 2016-10-26 at 02:05 -0700, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä > > 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?? Carlos > Cc: stable@vger.kernel.org > Cc: Carlos Santa > Cc: Kirill A. Shutemov > Tested-by: Carlos Santa > Tested-by: Kirill A. Shutemov > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97666 > Signed-off-by: Ville Syrjälä > --- >  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 >