[PATCH] drm/radeon/kms: fix cursor image off-by-one error

Michel Dänzer michel at daenzer.net
Fri Sep 30 06:53:53 PDT 2011


On Don, 2011-09-29 at 19:07 -0700, Nicholas Miell wrote: 
> The mouse cursor hotspot calculation when the cursor is partially off the
> top or left side of the screen was off by one.
> 
> Fixes https://bugs.freedesktop.org/show_bug.cgi?id=41158
> 
> Signed-off-by: Nicholas Miell <nmiell at gmail.com>
> ---
>  drivers/gpu/drm/radeon/radeon_cursor.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/radeon/radeon_cursor.c b/drivers/gpu/drm/radeon/radeon_cursor.c
> index 3189a7e..c495575 100644
> --- a/drivers/gpu/drm/radeon/radeon_cursor.c
> +++ b/drivers/gpu/drm/radeon/radeon_cursor.c
> @@ -209,9 +209,9 @@ int radeon_crtc_cursor_move(struct drm_crtc *crtc,
>  	int w = radeon_crtc->cursor_width;
>  
>  	if (x < 0)
> -		xorigin = -x + 1;
> +		xorigin = -x;
>  	if (y < 0)
> -		yorigin = -y + 1;
> +		yorigin = -y;
>  	if (xorigin >= CURSOR_WIDTH)
>  		xorigin = CURSOR_WIDTH - 1;
>  	if (yorigin >= CURSOR_HEIGHT)

While you're at it, might be worth combining with the lines below to
something like

	if (x < 0)
		xorigin = min(-x, CURSOR_WIDTH - 1);
        if (y < 0)
                yorigin = min(-y, CURSOR_HEIGHT - 1);

Either way though,

Reviewed-by: Michel Dänzer <michel at daenzer.net>
.

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


More information about the dri-devel mailing list