On 14/11/16 11:12 PM, Max Staudt wrote: > On 11/14/2016 02:46 AM, Michel Dänzer wrote: >> On 11/11/16 02:21 AM, Max Staudt wrote: >>> Hi, >>> >>> I have bisected a commit in v4.6 that fixes a freeze of the screen on >>> DPMS sleep: >>> >>> 777e3cbc791f131806d9bf24b3325637c7fc228d drm/radeon: Switch to >>> drm_vblank_on/off >>> >>> >>> When running 'xset dpms force off' in a GNOME session (I tested this on >>> openSUSE Leap 42.2), sometimes the screen will freeze, sometimes it will >>> not. It may take several tries. >>> >>> When it does freeze, the mouse can still be used, but clicking anything >>> will (seem to?) have no effect. Typing in an open terminal still works, >>> albeit the screen will still be frozen. Run "xterm" and the screen will >>> unfreeze. Running "xlogo" does not unfreeze it. >> >> Does this still happen with current xf86-video-ati Git master? > > > Hmm, good idea! > > > I bisected this, and the problem goes away in this xf86-video-ati commit: > > 1181b9c582f10b6c523e4b2988e2ce87ecf3d367 Enable DRI3 by default when building > for Xorg >= 1.18.3 > > > I tested this on Kabini. > > > So... what about DRI2?
Does the attached kernel patch help with pre-4.6 kernels? -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 801dd60..3d41415 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c @@ -276,6 +276,7 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode) atombios_enable_crtc_memreq(crtc, ATOM_ENABLE); atombios_blank_crtc(crtc, ATOM_DISABLE); drm_vblank_post_modeset(dev, radeon_crtc->crtc_id); + radeon_irq_set(rdev); radeon_crtc_load_lut(crtc); break; case DRM_MODE_DPMS_STANDBY: diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c index 32b338f..911efe5 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c @@ -332,6 +332,7 @@ static void radeon_crtc_dpms(struct drm_crtc *crtc, int mode) WREG32_P(RADEON_CRTC_EXT_CNTL, crtc_ext_cntl, ~(mask | crtc_ext_cntl)); } drm_vblank_post_modeset(dev, radeon_crtc->crtc_id); + radeon_irq_set(rdev); radeon_crtc_load_lut(crtc); break; case DRM_MODE_DPMS_STANDBY:
_______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
