Patch "drm/amd/display: add connector type check for CRC source set" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/amd/display: add connector type check for CRC source set

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-amd-display-add-connector-type-check-for-crc-sou.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b51e854dccf93d67a4c42f07753790cee1a6b435
Author: Perry Yuan <Perry.Yuan@xxxxxxx>
Date:   Fri Nov 19 04:27:55 2021 -0500

    drm/amd/display: add connector type check for CRC source set
    
    [ Upstream commit 2da34b7bb59e1caa9a336e0e20a76b8b6a4abea2 ]
    
    [Why]
    IGT bypass test will set crc source as DPRX,and display DM didn`t check
    connection type, it run the test on the HDMI connector ,then the kernel
    will be crashed because aux->transfer is set null for HDMI connection.
    This patch will skip the invalid connection test and fix kernel crash issue.
    
    [How]
    Check the connector type while setting the pipe crc source as DPRX or
    auto,if the type is not DP or eDP, the crtc crc source will not be set
    and report error code to IGT test,IGT will show the this subtest as no
    valid crtc/connector combinations found.
    
    116.779714] [IGT] amd_bypass: starting subtest 8bpc-bypass-mode
    [ 117.730996] BUG: kernel NULL pointer dereference, address: 0000000000000000
    [ 117.731001] #PF: supervisor instruction fetch in kernel mode
    [ 117.731003] #PF: error_code(0x0010) - not-present page
    [ 117.731004] PGD 0 P4D 0
    [ 117.731006] Oops: 0010 [#1] SMP NOPTI
    [ 117.731009] CPU: 11 PID: 2428 Comm: amd_bypass Tainted: G OE 5.11.0-34-generic #36~20.04.1-Ubuntu
    [ 117.731011] Hardware name: AMD CZN/, BIOS AB.FD 09/07/2021
    [ 117.731012] RIP: 0010:0x0
    [ 117.731015] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
    [ 117.731016] RSP: 0018:ffffa8d64225bab8 EFLAGS: 00010246
    [ 117.731017] RAX: 0000000000000000 RBX: 0000000000000020 RCX: ffffa8d64225bb5e
    [ 117.731018] RDX: ffff93151d921880 RSI: ffffa8d64225bac8 RDI: ffff931511a1a9d8
    [ 117.731022] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 117.731023] CR2: ffffffffffffffd6 CR3: 000000010d5a4000 CR4: 0000000000750ee0
    [ 117.731023] PKRU: 55555554
    [ 117.731024] Call Trace:
    [ 117.731027] drm_dp_dpcd_access+0x72/0x110 [drm_kms_helper]
    [ 117.731036] drm_dp_dpcd_read+0xb7/0xf0 [drm_kms_helper]
    [ 117.731040] drm_dp_start_crc+0x38/0xb0 [drm_kms_helper]
    [ 117.731047] amdgpu_dm_crtc_set_crc_source+0x1ae/0x3e0 [amdgpu]
    [ 117.731149] crtc_crc_open+0x174/0x220 [drm]
    [ 117.731162] full_proxy_open+0x168/0x1f0
    [ 117.731165] ? open_proxy_open+0x100/0x100
    
    BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1546
    Reviewed-by: Harry Wentland <harry.wentland@xxxxxxx>
    Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@xxxxxxx>
    Signed-off-by: Perry Yuan <Perry.Yuan@xxxxxxx>
    Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
index f0b001b3af578..883ee517673bd 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
@@ -221,6 +221,14 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name)
 			ret = -EINVAL;
 			goto cleanup;
 		}
+
+		if ((aconn->base.connector_type != DRM_MODE_CONNECTOR_DisplayPort) &&
+				(aconn->base.connector_type != DRM_MODE_CONNECTOR_eDP)) {
+			DRM_DEBUG_DRIVER("No DP connector available for CRC source\n");
+			ret = -EINVAL;
+			goto cleanup;
+		}
+
 	}
 
 	if (amdgpu_dm_crtc_configure_crc_source(crtc, crtc_state, source)) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux