summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+cubox@arm.linux.org.uk>2013-10-29 19:11:25 +0000
committerRussell King <rmk@arm.linux.org.uk>2013-10-29 19:21:14 +0000
commit7ddfbda14828656da80c311caf4c7ef2a551c1d9 (patch)
treef078b7ae0ac402330d9a173d84f0d3de1032b4ca
parentc7227a88ada234f7316aad1992fa77bcf119b407 (diff)
downloadxf86-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.c23
-rw-r--r--src/armada_drm.h2
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;