From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com ([192.55.52.43]:16279 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S942675AbcJZNIo (ORCPT ); Wed, 26 Oct 2016 09:08:44 -0400 Date: Wed, 26 Oct 2016 16:05:31 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Daniel Vetter Cc: dri-devel@lists.freedesktop.org, "Kirill A . Shutemov" , Carlos Santa , stable@vger.kernel.org Subject: Re: [PATCH 4/4] drm/dp/mst: Check peer device type before attempting EDID read Message-ID: <20161026130531.GD4617@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> <20161026125514.32jyrl44kiywuoz7@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20161026125514.32jyrl44kiywuoz7@phenom.ffwll.local> Sender: stable-owner@vger.kernel.org List-ID: On Wed, Oct 26, 2016 at 02:55:14PM +0200, Daniel Vetter wrote: > On Wed, Oct 26, 2016 at 12:05:55PM +0300, 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 around > > with an i2c adapter that doesn't actually exist. > > > > 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) { > > Matches what's in drm_dp_port_setup_pdt. Not sure this is the most > reliable way to do this though, but I can't come up with anything better. Yeah. I just went with whatever looks semi-correct based on where the thing is set up. I'd have to go read the actual spec to figure out if this makes any real sense. But at least it avoids the explosion. > > Reviewed-by: Daniel Vetter > > > port->cached_edid = drm_get_edid(port->connector, &port->aux.ddc); > > drm_mode_connector_set_tile_property(port->connector); > > } > > -- > > 2.7.4 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Ville Syrj�l� Intel OTC