drm/dp_mst: Revise broadcast msg lct & lcr

[Why & How]
According to DP spec, broadcast message LCT equals to 1 and LCR equals
to 6. Current implementation is incorrect. Fix it.
In addition, revise a bit the hdr->rad handling to include broadcast
case.

Signed-off-by: Wayne Lin <Wayne.Lin@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210224101521.6713-2-Wayne.Lin@amd.com
This commit is contained in:
Wayne Lin 2021-02-24 18:15:20 +08:00 committed by Lyude Paul
parent 66922f8509
commit 419e91ea31
1 changed files with 9 additions and 4 deletions

View File

@ -2827,10 +2827,15 @@ 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 (mstb->lct > 1)
memcpy(hdr->rad, mstb->rad, mstb->lct / 2);
if (hdr->broadcast) {
hdr->lct = 1;
hdr->lcr = 6;
} else {
hdr->lct = mstb->lct;
hdr->lcr = mstb->lct - 1;
}
memcpy(hdr->rad, mstb->rad, hdr->lct / 2);
return 0;
}