[PATCH] drm/amd/display: Fix external display detection with overlay

Kazlauskas, Nicholas nicholas.kazlauskas at amd.com
Thu Oct 1 13:06:10 UTC 2020


On 2020-10-01 5:06 a.m., Pratik Vishwakarma wrote:
> [Why]
> When overlay plane is in use and external display
> is connected, atomic check will fail.
> 
> [How]
> Disable overlay plane on multi-monitor scenario
> by tying it to single crtc.
> 
> Signed-off-by: Pratik Vishwakarma <Pratik.Vishwakarma at amd.com>

This will break overlay usage on any other CRTC other than index 1. That 
index is arbitrary and can vary based on board configuration. As-is this 
patch breaks a number of our existing IGT tests that were previously 
passing.

Userspace should really be made aware if possible to understand that 
overlays can't be left enabled after major hardware configurations - eg. 
enabling extra planes and CRTCs.

Regards,
Nicholas Kazlauskas

> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index e8177656e083..e45c1176048a 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -3149,7 +3149,7 @@ static int initialize_plane(struct amdgpu_display_manager *dm,
>   	 */
>   	possible_crtcs = 1 << plane_id;
>   	if (plane_id >= dm->dc->caps.max_streams)
> -		possible_crtcs = 0xff;
> +		possible_crtcs = 0x01;
>   
>   	ret = amdgpu_dm_plane_init(dm, plane, possible_crtcs, plane_cap);
>   
> 



More information about the amd-gfx mailing list