On Mon, Feb 22, 2021 at 07:02:03PM +0200, Ville Syrjälä wrote: > On Mon, Feb 22, 2021 at 12:00:26PM +0800, Wayne Lin wrote: > > [Why & How] > > According to DP spec, broadcast message LCT equals to 1 and LCR equals > > to 6. Current implementation is incorrect. Fix it. > > > > Signed-off-by: Wayne Lin <Wayne.Lin@xxxxxxx> > > Cc: stable@xxxxxxxxxxxxxxx > > --- > > drivers/gpu/drm/drm_dp_mst_topology.c | 10 ++++++++-- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c > > index 17dbed0a9800..713ef3b42054 100644 > > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > > @@ -2727,8 +2727,14 @@ static int set_hdr_from_dst_qlock(struct drm_dp_sideband_msg_hdr *hdr, > > else > > hdr->broadcast = 0; > > hdr->path_msg = txmsg->path_msg; > > - hdr->lct = mstb->lct; > > - hdr->lcr = mstb->lct - 1; > > + if (hdr->broadcast) { > > + hdr->lct = 1; > > + hdr->lcr = 6; > > + } else { > > + hdr->lct = mstb->lct; > > + hdr->lcr = mstb->lct - 1; > > + } > > + > > if (mstb->lct > 1) > > memcpy(hdr->rad, mstb->rad, mstb->lct / 2); > > We should also do something about RAD no? Just skip the RAD stuff by s/mstb->lct/hdr->lct/ here I guess? -- Ville Syrjälä Intel