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:
@@ -2827,10 +2827,15 @@ static int set_hdr_from_dst_qlock(struct drm_dp_sideband_msg_hdr *hdr,
|
|||||||
else
|
else
|
||||||
hdr->broadcast = 0;
|
hdr->broadcast = 0;
|
||||||
hdr->path_msg = txmsg->path_msg;
|
hdr->path_msg = txmsg->path_msg;
|
||||||
hdr->lct = mstb->lct;
|
if (hdr->broadcast) {
|
||||||
hdr->lcr = mstb->lct - 1;
|
hdr->lct = 1;
|
||||||
if (mstb->lct > 1)
|
hdr->lcr = 6;
|
||||||
memcpy(hdr->rad, mstb->rad, mstb->lct / 2);
|
} else {
|
||||||
|
hdr->lct = mstb->lct;
|
||||||
|
hdr->lcr = mstb->lct - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(hdr->rad, mstb->rad, hdr->lct / 2);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user