diff mbox series

drm/bochs: Fix DPMS regression

Message ID 20250304134203.20534-1-tiwai@suse.de (mailing list archive)
State New
Headers show
Series drm/bochs: Fix DPMS regression | expand

Commit Message

Takashi Iwai March 4, 2025, 1:41 p.m. UTC
The recent rewrite with the use of regular atomic helpers broke the
DPMS unblanking on X11.  Fix it by moving the call of
bochs_hw_blank(false) from CRTC mode_set_nofb() to atomic_enable().

Fixes: 2037174993c8 ("drm/bochs: Use regular atomic helpers")
Link: https://bugzilla.suse.com/show_bug.cgi?id=1238209
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 drivers/gpu/drm/tiny/bochs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Thomas Zimmermann March 4, 2025, 2:13 p.m. UTC | #1
Am 04.03.25 um 14:41 schrieb Takashi Iwai:
> The recent rewrite with the use of regular atomic helpers broke the
> DPMS unblanking on X11.  Fix it by moving the call of
> bochs_hw_blank(false) from CRTC mode_set_nofb() to atomic_enable().
>
> Fixes: 2037174993c8 ("drm/bochs: Use regular atomic helpers")
> Link: https://bugzilla.suse.com/show_bug.cgi?id=1238209
> Signed-off-by: Takashi Iwai <tiwai@suse.de>

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

Thanks for the patch.

> ---
>   drivers/gpu/drm/tiny/bochs.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
> index 76e29950a807..c1c7d6c9e85f 100644
> --- a/drivers/gpu/drm/tiny/bochs.c
> +++ b/drivers/gpu/drm/tiny/bochs.c
> @@ -323,8 +323,6 @@ static void bochs_hw_setmode(struct bochs_device *bochs, struct drm_display_mode
>   			 bochs->xres, bochs->yres, bochs->bpp,
>   			 bochs->yres_virtual);
>   
> -	bochs_hw_blank(bochs, false);
> -
>   	bochs_dispi_write(bochs, VBE_DISPI_INDEX_ENABLE,      0);
>   	bochs_dispi_write(bochs, VBE_DISPI_INDEX_BPP,         bochs->bpp);
>   	bochs_dispi_write(bochs, VBE_DISPI_INDEX_XRES,        bochs->xres);
> @@ -494,6 +492,9 @@ static int bochs_crtc_helper_atomic_check(struct drm_crtc *crtc,
>   static void bochs_crtc_helper_atomic_enable(struct drm_crtc *crtc,
>   					    struct drm_atomic_state *state)
>   {
> +	struct bochs_device *bochs = to_bochs_device(crtc->dev);
> +
> +	bochs_hw_blank(bochs, false);
>   }
>   
>   static void bochs_crtc_helper_atomic_disable(struct drm_crtc *crtc,
diff mbox series

Patch

diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
index 76e29950a807..c1c7d6c9e85f 100644
--- a/drivers/gpu/drm/tiny/bochs.c
+++ b/drivers/gpu/drm/tiny/bochs.c
@@ -323,8 +323,6 @@  static void bochs_hw_setmode(struct bochs_device *bochs, struct drm_display_mode
 			 bochs->xres, bochs->yres, bochs->bpp,
 			 bochs->yres_virtual);
 
-	bochs_hw_blank(bochs, false);
-
 	bochs_dispi_write(bochs, VBE_DISPI_INDEX_ENABLE,      0);
 	bochs_dispi_write(bochs, VBE_DISPI_INDEX_BPP,         bochs->bpp);
 	bochs_dispi_write(bochs, VBE_DISPI_INDEX_XRES,        bochs->xres);
@@ -494,6 +492,9 @@  static int bochs_crtc_helper_atomic_check(struct drm_crtc *crtc,
 static void bochs_crtc_helper_atomic_enable(struct drm_crtc *crtc,
 					    struct drm_atomic_state *state)
 {
+	struct bochs_device *bochs = to_bochs_device(crtc->dev);
+
+	bochs_hw_blank(bochs, false);
 }
 
 static void bochs_crtc_helper_atomic_disable(struct drm_crtc *crtc,