From: "Sinclair Yeh" <syeh@vmware.com>
To: Thomas Hellstrom <thellstrom@vmware.com>
Cc: airlied@redhat.com, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm: Avoid calling the cursor_set2 callback from the drm_mode_cursor ioctl
Date: Mon, 30 Nov 2015 11:50:53 -0800 [thread overview]
Message-ID: <20151130195052.GA13379@syeh-linux> (raw)
In-Reply-To: <1448563935-3157-1-git-send-email-thellstrom@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
On Thu, Nov 26, 2015 at 10:52:14AM -0800, Thomas Hellstrom wrote:
> If the drm_mode_cursor_ioctl is called and the cursor_set2 callback is
> implemented, the cursor hotspot is set to (0,0) which is incompatible
> with vmwgfx where the hotspot should instead remain unchanged.
>
> So if the driver implements both cursor_set2 and cursor_set, prefer calling
> the latter from the drm_mode_cursor ioctl.
>
> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
> ---
> drivers/gpu/drm/drm_crtc.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 24c5434..93f80a5 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -2874,7 +2874,8 @@ static int drm_mode_cursor_universal(struct drm_crtc *crtc,
>
> static int drm_mode_cursor_common(struct drm_device *dev,
> struct drm_mode_cursor2 *req,
> - struct drm_file *file_priv)
> + struct drm_file *file_priv,
> + bool from_2)
> {
> struct drm_crtc *crtc;
> int ret = 0;
> @@ -2907,7 +2908,8 @@ static int drm_mode_cursor_common(struct drm_device *dev,
> goto out;
> }
> /* Turns off the cursor if handle is 0 */
> - if (crtc->funcs->cursor_set2)
> + if (crtc->funcs->cursor_set2 &&
> + (from_2 || !crtc->funcs->cursor_set))
> ret = crtc->funcs->cursor_set2(crtc, file_priv, req->handle,
> req->width, req->height, req->hot_x, req->hot_y);
> else
> @@ -2953,7 +2955,7 @@ int drm_mode_cursor_ioctl(struct drm_device *dev,
> memcpy(&new_req, req, sizeof(struct drm_mode_cursor));
> new_req.hot_x = new_req.hot_y = 0;
>
> - return drm_mode_cursor_common(dev, &new_req, file_priv);
> + return drm_mode_cursor_common(dev, &new_req, file_priv, false);
> }
>
> /**
> @@ -2976,7 +2978,7 @@ int drm_mode_cursor2_ioctl(struct drm_device *dev,
> {
> struct drm_mode_cursor2 *req = data;
>
> - return drm_mode_cursor_common(dev, req, file_priv);
> + return drm_mode_cursor_common(dev, req, file_priv, true);
> }
>
> /**
> --
> 2.4.3
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
prev parent reply other threads:[~2015-11-30 19:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-26 18:52 [PATCH 1/2] drm: Avoid calling the cursor_set2 callback from the drm_mode_cursor ioctl Thomas Hellstrom
2015-11-26 18:52 ` [PATCH 2/2] drm/vmwgfx: Implement the cursor_set2 callback Thomas Hellstrom
2015-11-27 10:11 ` [PATCH 1/2] drm: Avoid calling the cursor_set2 callback from the drm_mode_cursor ioctl Daniel Vetter
2015-11-27 11:42 ` Thomas Hellstrom
2015-11-27 12:02 ` Ville Syrjälä
2015-11-27 12:24 ` Thomas Hellstrom
2015-11-29 9:18 ` Daniel Vetter
2015-11-30 13:35 ` Thomas Hellstrom
2015-11-30 14:55 ` Daniel Vetter
2015-11-30 15:52 ` Thomas Hellstrom
2015-11-30 16:12 ` Daniel Vetter
2015-11-30 19:50 ` Sinclair Yeh [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151130195052.GA13379@syeh-linux \
--to=syeh@vmware.com \
--cc=airlied@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=thellstrom@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.