diff options
author | Russell King <rmk+cubox@arm.linux.org.uk> | 2013-10-29 19:11:25 +0000 |
---|---|---|
committer | Russell King <rmk@arm.linux.org.uk> | 2013-10-29 19:21:14 +0000 |
commit | 7ddfbda14828656da80c311caf4c7ef2a551c1d9 (patch) | |
tree | f078b7ae0ac402330d9a173d84f0d3de1032b4ca | |
parent | c7227a88ada234f7316aad1992fa77bcf119b407 (diff) | |
download | xf86-video-armada-7ddfbda14828656da80c311caf4c7ef2a551c1d9.tar.gz xf86-video-armada-7ddfbda14828656da80c311caf4c7ef2a551c1d9.tar.xz |
Move cursor maximum width/height to private crtc info structure
Rather than having this hard-coded everywhere, move it into the
struct so we can later make this configurable - especially as we
support 64x32 or 32x64 cursors.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r-- | src/armada_drm.c | 23 | ||||
-rw-r--r-- | src/armada_drm.h | 2 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/armada_drm.c b/src/armada_drm.c index 600218c..6ae5d16 100644 --- a/src/armada_drm.c +++ b/src/armada_drm.c @@ -644,36 +644,32 @@ static void armada_drm_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue, int size) { struct armada_crtc_info *drmc = armada_crtc(crtc); - struct armada_drm_info *drm = drmc->drm; - drmModeCrtcSetGamma(drm->fd, drmc->mode_crtc->crtc_id, + drmModeCrtcSetGamma(drmc->drm->fd, drmc->mode_crtc->crtc_id, size, red, green, blue); } static void armada_drm_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y) { struct armada_crtc_info *drmc = armada_crtc(crtc); - struct armada_drm_info *drm = drmc->drm; - drmModeMoveCursor(drm->fd, drmc->mode_crtc->crtc_id, x, y); + drmModeMoveCursor(drmc->drm->fd, drmc->mode_crtc->crtc_id, x, y); } static void armada_drm_crtc_show_cursor(xf86CrtcPtr crtc) { struct armada_crtc_info *drmc = armada_crtc(crtc); - struct armada_drm_info *drm = drmc->drm; - drmModeSetCursor(drm->fd, drmc->mode_crtc->crtc_id, + drmModeSetCursor(drmc->drm->fd, drmc->mode_crtc->crtc_id, drmc->cursor_bo->handle, - CURSOR_MAX_WIDTH, CURSOR_MAX_HEIGHT); + drmc->cursor_max_width, drmc->cursor_max_height); } static void armada_drm_crtc_hide_cursor(xf86CrtcPtr crtc) { struct armada_crtc_info *drmc = armada_crtc(crtc); - struct armada_drm_info *drm = drmc->drm; - drmModeSetCursor(drm->fd, drmc->mode_crtc->crtc_id, 0, 0, 0); + drmModeSetCursor(drmc->drm->fd, drmc->mode_crtc->crtc_id, 0, 0, 0); } static void armada_drm_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image) @@ -681,7 +677,8 @@ static void armada_drm_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image) struct armada_crtc_info *drmc = armada_crtc(crtc); drm_armada_bo_subdata(drmc->cursor_bo, 0, - CURSOR_MAX_WIDTH * CURSOR_MAX_HEIGHT * 4, image); + drmc->cursor_max_width * + drmc->cursor_max_height * 4, image); } static void * @@ -815,6 +812,8 @@ armada_drm_crtc_init(ScrnInfoPtr pScrn, struct armada_drm_info *drm, drmc->drm = drm; drmc->num = num; + drmc->cursor_max_width = CURSOR_MAX_WIDTH; + drmc->cursor_max_height = CURSOR_MAX_HEIGHT; drmc->mode_crtc = drmModeGetCrtc(drm->fd, id); crtc->driver_private = drmc; @@ -823,8 +822,8 @@ armada_drm_crtc_init(ScrnInfoPtr pScrn, struct armada_drm_info *drm, drm->has_hw_cursor = FALSE; drmc->cursor_bo = drm_armada_bo_dumb_create(drm->bufmgr, - CURSOR_MAX_WIDTH, - CURSOR_MAX_HEIGHT, + drmc->cursor_max_width, + drmc->cursor_max_height, 32); return TRUE; diff --git a/src/armada_drm.h b/src/armada_drm.h index f04d350..32be7d9 100644 --- a/src/armada_drm.h +++ b/src/armada_drm.h @@ -16,6 +16,8 @@ struct drm_armada_bo; struct armada_crtc_info { struct armada_drm_info *drm; unsigned num; + unsigned short cursor_max_width; + unsigned short cursor_max_height; drmModeModeInfo kmode; drmModeCrtcPtr mode_crtc; |