[PATCH] drm/amdgpu: fix solid screen and hard hang when 2k + 4k display connected with DP

Christian König deathsimple at vodafone.de
Mon Jun 26 07:18:52 UTC 2017


Am 26.06.2017 um 09:03 schrieb Huang Rui:
> Signed-off-by: Huang Rui <ray.huang at amd.com>
> Cc: Xiaojie Yuan <Xiaojie.Yuan at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index 5bed483..60d0455 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -130,7 +130,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
>   	ret = psp_cmd_submit(psp, ucode, cmd_buf_mc_addr,
>   			     fence_mc_addr, index);
>   
> -	while (*((unsigned int *)psp->fence_buf) != index) {
> +	while (*((unsigned int *)psp->fence_buf) < index) {

That is still horrible incorrect. At bare minimum you need to use the 
READ_ONCE() macro here.

But it would be even better to completely drop this and use the fence 
implementation in amdgpu_fence.c as well.

Christian.

>   		msleep(1);
>   	}
>   




More information about the amd-gfx mailing list