[PATCH xserver] xfree86/modes: Make sure the HW cursor is hidden when it should be
Michael Thayer
michael.thayer at oracle.com
Thu Mar 24 09:07:27 UTC 2016
Looks good to me, but I don't feel I'm quite familiar enough with the
code to give a full "reviewed-by".
Regards,
Michael
On 24.03.2016 09:34, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> When the HW cursor is hidden (e.g. because xf86CursorResetCursor
> triggers a switch from HW cursor to SW cursor), the driver isn't
> notified of this for disabled CRTCs. If the HW cursor was shown when the
> CRTC was disabled, it may still be displayed when the CRTC is enabled
> again.
>
> Prevent this by explicitly hiding the HW cursor again after setting a
> mode if it's currently supposed to be hidden.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94560
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> ---
> hw/xfree86/modes/xf86Crtc.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
> index 2639a30..6091b5e 100644
> --- a/hw/xfree86/modes/xf86Crtc.c
> +++ b/hw/xfree86/modes/xf86Crtc.c
> @@ -368,6 +368,12 @@ xf86CrtcSetModeTransform(xf86CrtcPtr crtc, DisplayModePtr mode,
> xf86CrtcSetScreenSubpixelOrder(scrn->pScreen);
> if (scrn->ModeSet)
> scrn->ModeSet(scrn);
> +
> + /* Make sure the HW cursor is hidden if it's supposed to be, in case
> + * it was hidden while the CRTC was disabled
> + */
> + if (!xf86_config->cursor_on)
> + xf86_hide_cursors(scrn);
> }
> else {
> crtc->x = saved_x;
>
--
Michael Thayer | VirtualBox engineer
ORACLE Deutschland B.V. & Co. KG | Werkstr. 24 | D-71384 Weinstadt
ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstraße 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603
Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Nederland, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher
More information about the xorg-devel
mailing list