drm/dp_mst: Set CLEAR_PAYLOAD_ID_TABLE as broadcast
authorWayne Lin <Wayne.Lin@amd.com>
Wed, 24 Feb 2021 10:15:21 +0000 (18:15 +0800)
committerLyude Paul <lyude@redhat.com>
Wed, 24 Feb 2021 18:10:17 +0000 (13:10 -0500)
[Why & How]
According to DP spec, CLEAR_PAYLOAD_ID_TABLE is a path broadcast request
message and current implementation is incorrect. Fix it.

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-3-Wayne.Lin@amd.com
drivers/gpu/drm/drm_dp_mst_topology.c

index 2995e9c..f1068c5 100644 (file)
@@ -1154,6 +1154,7 @@ static void build_clear_payload_id_table(struct drm_dp_sideband_msg_tx *msg)
 
        req.req_type = DP_CLEAR_PAYLOAD_ID_TABLE;
        drm_dp_encode_sideband_req(&req, msg);
+       msg->path_msg = true;
 }
 
 static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg,
@@ -2822,7 +2823,8 @@ static int set_hdr_from_dst_qlock(struct drm_dp_sideband_msg_hdr *hdr,
 
        req_type = txmsg->msg[0] & 0x7f;
        if (req_type == DP_CONNECTION_STATUS_NOTIFY ||
-               req_type == DP_RESOURCE_STATUS_NOTIFY)
+               req_type == DP_RESOURCE_STATUS_NOTIFY ||
+               req_type == DP_CLEAR_PAYLOAD_ID_TABLE)
                hdr->broadcast = 1;
        else
                hdr->broadcast = 0;