]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 May 2021 08:49:28 +0000 (10:49 +0200)
commit d919d3d6cdb31d0f9fe06c880f683a24f2838813 upstream.

[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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/drm_dp_mst_topology.c

index 4af224a3d60d85e79f5e2308857d13d10e5724b2..6d4fb07cc9e784f0ac654c5b2495fc12794e7bff 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,
@@ -2824,7 +2825,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;