Message ID | 20240626084825.878565-2-Wayne.Lin@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix mst daisy chain light up issue after resume | expand |
Thanks! Reviewed-by: Lyude Paul <lyude@redhat.com> On Wed, 2024-06-26 at 16:48 +0800, Wayne Lin wrote: > [Why] > After supend/resume, with topology unchanged, observe that > link_address_sent of all mstb are marked as false even the topology > probing > is done without any error. > > It is caused by wrongly also include "ret == 0" case as a probing > failure > case. > > [How] > Remove inappropriate checking conditions. > > Cc: Lyude Paul <lyude@redhat.com> > Cc: Harry Wentland <hwentlan@amd.com> > Cc: Jani Nikula <jani.nikula@intel.com> > Cc: Imre Deak <imre.deak@intel.com> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: stable@vger.kernel.org > Fixes: 37dfdc55ffeb ("drm/dp_mst: Cleanup drm_dp_send_link_address() > a bit") > Signed-off-by: Wayne Lin <Wayne.Lin@amd.com> > --- > drivers/gpu/drm/display/drm_dp_mst_topology.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c > b/drivers/gpu/drm/display/drm_dp_mst_topology.c > index 7f8e1cfbe19d..68831f4e502a 100644 > --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c > @@ -2929,7 +2929,7 @@ static int drm_dp_send_link_address(struct > drm_dp_mst_topology_mgr *mgr, > > /* FIXME: Actually do some real error handling here */ > ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); > - if (ret <= 0) { > + if (ret < 0) { > drm_err(mgr->dev, "Sending link address failed with > %d\n", ret); > goto out; > } > @@ -2981,7 +2981,7 @@ static int drm_dp_send_link_address(struct > drm_dp_mst_topology_mgr *mgr, > mutex_unlock(&mgr->lock); > > out: > - if (ret <= 0) > + if (ret < 0) > mstb->link_address_sent = false; > kfree(txmsg); > return ret < 0 ? ret : changed;
diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c index 7f8e1cfbe19d..68831f4e502a 100644 --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c @@ -2929,7 +2929,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, /* FIXME: Actually do some real error handling here */ ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); - if (ret <= 0) { + if (ret < 0) { drm_err(mgr->dev, "Sending link address failed with %d\n", ret); goto out; } @@ -2981,7 +2981,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, mutex_unlock(&mgr->lock); out: - if (ret <= 0) + if (ret < 0) mstb->link_address_sent = false; kfree(txmsg); return ret < 0 ? ret : changed;
[Why] After supend/resume, with topology unchanged, observe that link_address_sent of all mstb are marked as false even the topology probing is done without any error. It is caused by wrongly also include "ret == 0" case as a probing failure case. [How] Remove inappropriate checking conditions. Cc: Lyude Paul <lyude@redhat.com> Cc: Harry Wentland <hwentlan@amd.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Imre Deak <imre.deak@intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: stable@vger.kernel.org Fixes: 37dfdc55ffeb ("drm/dp_mst: Cleanup drm_dp_send_link_address() a bit") Signed-off-by: Wayne Lin <Wayne.Lin@amd.com> --- drivers/gpu/drm/display/drm_dp_mst_topology.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)