* [PATCH] drm/nouveau: make cursor_set implementation consistent with other drivers
@ 2011-05-01 21:49 Marcin Slusarz
[not found] ` <20110501214904.GA6742-OI9uyE9O0yo@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Marcin Slusarz @ 2011-05-01 21:49 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
When xorg state tracker wants to hide the cursor it calls set_cursor
with NULL buffer_handle and size=0x0, but nouveau refuses to hide it
because size is not 64x64... which is a bit odd. Both radeon and intel
check buffer_handle before validating size of cursor, so make nouveau
implementation consistent with them.
Signed-off-by: Marcin Slusarz <marcin.slusarz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
drivers/gpu/drm/nouveau/nv04_crtc.c | 6 +++---
drivers/gpu/drm/nouveau/nv50_crtc.c | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nv04_crtc.c b/drivers/gpu/drm/nouveau/nv04_crtc.c
index cc3cd17..3c78bc8 100644
--- a/drivers/gpu/drm/nouveau/nv04_crtc.c
+++ b/drivers/gpu/drm/nouveau/nv04_crtc.c
@@ -943,14 +943,14 @@ nv04_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
struct drm_gem_object *gem;
int ret = 0;
- if (width != 64 || height != 64)
- return -EINVAL;
-
if (!buffer_handle) {
nv_crtc->cursor.hide(nv_crtc, true);
return 0;
}
+ if (width != 64 || height != 64)
+ return -EINVAL;
+
gem = drm_gem_object_lookup(dev, file_priv, buffer_handle);
if (!gem)
return -ENOENT;
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c
index e900a51..75ad2dc 100644
--- a/drivers/gpu/drm/nouveau/nv50_crtc.c
+++ b/drivers/gpu/drm/nouveau/nv50_crtc.c
@@ -349,14 +349,14 @@ nv50_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
struct drm_gem_object *gem;
int ret = 0, i;
- if (width != 64 || height != 64)
- return -EINVAL;
-
if (!buffer_handle) {
nv_crtc->cursor.hide(nv_crtc, true);
return 0;
}
+ if (width != 64 || height != 64)
+ return -EINVAL;
+
gem = drm_gem_object_lookup(dev, file_priv, buffer_handle);
if (!gem)
return -ENOENT;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/nouveau: make cursor_set implementation consistent with other drivers
[not found] ` <20110501214904.GA6742-OI9uyE9O0yo@public.gmane.org>
@ 2011-05-02 6:58 ` Ben Skeggs
0 siblings, 0 replies; 2+ messages in thread
From: Ben Skeggs @ 2011-05-02 6:58 UTC (permalink / raw)
To: Marcin Slusarz; +Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
On Sun, 2011-05-01 at 23:49 +0200, Marcin Slusarz wrote:
> When xorg state tracker wants to hide the cursor it calls set_cursor
> with NULL buffer_handle and size=0x0, but nouveau refuses to hide it
> because size is not 64x64... which is a bit odd. Both radeon and intel
> check buffer_handle before validating size of cursor, so make nouveau
> implementation consistent with them.
Pushed, thanks.
>
> Signed-off-by: Marcin Slusarz <marcin.slusarz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> drivers/gpu/drm/nouveau/nv04_crtc.c | 6 +++---
> drivers/gpu/drm/nouveau/nv50_crtc.c | 6 +++---
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nv04_crtc.c b/drivers/gpu/drm/nouveau/nv04_crtc.c
> index cc3cd17..3c78bc8 100644
> --- a/drivers/gpu/drm/nouveau/nv04_crtc.c
> +++ b/drivers/gpu/drm/nouveau/nv04_crtc.c
> @@ -943,14 +943,14 @@ nv04_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
> struct drm_gem_object *gem;
> int ret = 0;
>
> - if (width != 64 || height != 64)
> - return -EINVAL;
> -
> if (!buffer_handle) {
> nv_crtc->cursor.hide(nv_crtc, true);
> return 0;
> }
>
> + if (width != 64 || height != 64)
> + return -EINVAL;
> +
> gem = drm_gem_object_lookup(dev, file_priv, buffer_handle);
> if (!gem)
> return -ENOENT;
> diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c
> index e900a51..75ad2dc 100644
> --- a/drivers/gpu/drm/nouveau/nv50_crtc.c
> +++ b/drivers/gpu/drm/nouveau/nv50_crtc.c
> @@ -349,14 +349,14 @@ nv50_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
> struct drm_gem_object *gem;
> int ret = 0, i;
>
> - if (width != 64 || height != 64)
> - return -EINVAL;
> -
> if (!buffer_handle) {
> nv_crtc->cursor.hide(nv_crtc, true);
> return 0;
> }
>
> + if (width != 64 || height != 64)
> + return -EINVAL;
> +
> gem = drm_gem_object_lookup(dev, file_priv, buffer_handle);
> if (!gem)
> return -ENOENT;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-05-02 6:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-01 21:49 [PATCH] drm/nouveau: make cursor_set implementation consistent with other drivers Marcin Slusarz
[not found] ` <20110501214904.GA6742-OI9uyE9O0yo@public.gmane.org>
2011-05-02 6:58 ` Ben Skeggs
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.