summaryrefslogtreecommitdiff
path: root/src/drmmode_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drmmode_display.c')
-rw-r--r--src/drmmode_display.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 404f8b94..24c76591 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -421,12 +421,11 @@ drmmode_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
static void
drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
{
- ScrnInfoPtr pScrn = crtc->scrn;
- I830Ptr pI830 = I830PTR(pScrn);
+ drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
int ret;
/* cursor should be mapped already */
- ret = dri_bo_subdata(pI830->cursor_mem->bo, 0, 64*64*4, image);
+ ret = dri_bo_subdata(drmmode_crtc->cursor, 0, 64*64*4, image);
if (ret)
xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
"failed to set cursor: %s", strerror(-ret));
@@ -450,11 +449,9 @@ drmmode_show_cursor (xf86CrtcPtr crtc)
{
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
drmmode_ptr drmmode = drmmode_crtc->drmmode;
- ScrnInfoPtr pScrn = crtc->scrn;
- I830Ptr pI830 = I830PTR(pScrn);
drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
- pI830->cursor_mem->bo->handle, 64, 64);
+ drmmode_crtc->cursor->handle, 64, 64);
}
static void *
@@ -600,6 +597,13 @@ drmmode_crtc_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int num)
return;
}
+void
+drmmode_crtc_set_cursor_bo(xf86CrtcPtr crtc, dri_bo *cursor)
+{
+ drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+ drmmode_crtc->cursor = cursor;
+}
+
static xf86OutputStatus
drmmode_output_detect(xf86OutputPtr output)
{