On 21.01.2016 19:08, Daniel Vetter wrote:
> Equivalent change to the radeon driver.
> 
> Note that with radeon this caught a bug in the dri3 DDX
> implementation, which asked for vblank interrupts when the pipe is
> off. That bug needs to be fixed before we can merge this patch (if
> amdgpu is affected too). Michel discovered this one.

This is fixed in xf86-video-amdgpu as well.


> Cc: Michel Dänzer <michel.daenzer at amd.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 4 ++--
>  drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c 
> b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> index 093599aba64b..d3926d193018 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> @@ -2701,13 +2701,13 @@ static void dce_v10_0_crtc_dpms(struct drm_crtc 
> *crtc, int mode)
>               type = amdgpu_crtc_idx_to_irq_type(adev, amdgpu_crtc->crtc_id);
>               amdgpu_irq_update(adev, &adev->crtc_irq, type);
>               amdgpu_irq_update(adev, &adev->pageflip_irq, type);
> -             drm_vblank_post_modeset(dev, amdgpu_crtc->crtc_id);
> +             drm_vblank_on(dev, amdgpu_crtc->crtc_id);
>               dce_v10_0_crtc_load_lut(crtc);
>               break;
>       case DRM_MODE_DPMS_STANDBY:
>       case DRM_MODE_DPMS_SUSPEND:
>       case DRM_MODE_DPMS_OFF:
> -             drm_vblank_pre_modeset(dev, amdgpu_crtc->crtc_id);
> +             drm_vblank_off(dev, amdgpu_crtc->crtc_id);
>               if (amdgpu_crtc->enabled) {
>                       dce_v10_0_vga_enable(crtc, true);
>                       amdgpu_atombios_crtc_blank(crtc, ATOM_ENABLE);
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c 
> b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> index 8e67249d4367..789c7f9f623a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> @@ -2692,13 +2692,13 @@ static void dce_v11_0_crtc_dpms(struct drm_crtc 
> *crtc, int mode)
>               type = amdgpu_crtc_idx_to_irq_type(adev, amdgpu_crtc->crtc_id);
>               amdgpu_irq_update(adev, &adev->crtc_irq, type);
>               amdgpu_irq_update(adev, &adev->pageflip_irq, type);
> -             drm_vblank_post_modeset(dev, amdgpu_crtc->crtc_id);
> +             drm_vblank_on(dev, amdgpu_crtc->crtc_id);
>               dce_v11_0_crtc_load_lut(crtc);
>               break;
>       case DRM_MODE_DPMS_STANDBY:
>       case DRM_MODE_DPMS_SUSPEND:
>       case DRM_MODE_DPMS_OFF:
> -             drm_vblank_pre_modeset(dev, amdgpu_crtc->crtc_id);
> +             drm_vblank_off(dev, amdgpu_crtc->crtc_id);
>               if (amdgpu_crtc->enabled) {
>                       dce_v11_0_vga_enable(crtc, true);
>                       amdgpu_atombios_crtc_blank(crtc, ATOM_ENABLE);
> 

You missed dce_v8_0.c. With that fixed,

Acked-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer

Reply via email to