[PATCH] drm/amdgpu: disable vga render in dce hw_init

Andres Rodriguez andresx7 at gmail.com
Mon Jun 19 21:36:33 UTC 2017


This fixes display regressions on my MSI RX480 Gaming X

Tested-by: Andres Rodriguez <andresx7 at gmail.com>

On 2017-06-19 05:29 PM, Alex Deucher wrote:
> This got dropped accidently with the fb location changes, but for
> some reason, this doesn't seem to cause an issue on all cards which
> is why I never saw it despite extensive testing.  I suspect it may
> only be an issue on systems with a legacy sbios that enable vga.
> 
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 ++
>   drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 ++
>   drivers/gpu/drm/amd/amdgpu/dce_v6_0.c  | 2 ++
>   drivers/gpu/drm/amd/amdgpu/dce_v8_0.c  | 2 ++
>   4 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> index 884f22f..712dfd3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> @@ -2894,6 +2894,8 @@ static int dce_v10_0_hw_init(void *handle)
>   
>   	dce_v10_0_init_golden_registers(adev);
>   
> +	/* disable vga render */
> +	dce_v10_0_set_vga_render_state(adev, false);
>   	/* init dig PHYs, disp eng pll */
>   	amdgpu_atombios_encoder_init_dig(adev);
>   	amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> index 15208a5..406fe66 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> @@ -3010,6 +3010,8 @@ static int dce_v11_0_hw_init(void *handle)
>   
>   	dce_v11_0_init_golden_registers(adev);
>   
> +	/* disable vga render */
> +	dce_v11_0_set_vga_render_state(adev, false);
>   	/* init dig PHYs, disp eng pll */
>   	amdgpu_atombios_crtc_powergate_init(adev);
>   	amdgpu_atombios_encoder_init_dig(adev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
> index af0b96c..1e28f14 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
> @@ -2759,6 +2759,8 @@ static int dce_v6_0_hw_init(void *handle)
>   	int i;
>   	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>   
> +	/* disable vga render */
> +	dce_v6_0_set_vga_render_state(adev, false);
>   	/* init dig PHYs, disp eng pll */
>   	amdgpu_atombios_encoder_init_dig(adev);
>   	amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> index b7079f8..e34335f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> @@ -2792,6 +2792,8 @@ static int dce_v8_0_hw_init(void *handle)
>   	int i;
>   	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>   
> +	/* disable vga render */
> +	dce_v8_0_set_vga_render_state(adev, false);
>   	/* init dig PHYs, disp eng pll */
>   	amdgpu_atombios_encoder_init_dig(adev);
>   	amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
> 


More information about the amd-gfx mailing list