diff options
author | Jason Ekstrand <jason@jlekstrand.net> | 2015-01-13 15:08:36 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2015-01-23 10:49:38 -0800 |
commit | 7c656bfcae1d68aeffd5e202b3c1569885f5d13d (patch) | |
tree | e0968b2c2a1ba1e201ee8573ddcd5f989f3fa9c5 /hw | |
parent | b4703a5a6e529b78810db8d8782317f0b4e2f265 (diff) |
modesetting: Add drmmode_bo_has_bo and drmmode_bo_map helper function
Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/xfree86/drivers/modesetting/drmmode_display.c | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c index ea59ffeb9..ee7087b23 100644 --- a/hw/xfree86/drivers/modesetting/drmmode_display.c +++ b/hw/xfree86/drivers/modesetting/drmmode_display.c @@ -82,6 +82,17 @@ drmmode_bo_get_pitch(drmmode_bo *bo) return bo->dumb->pitch; } +static Bool +drmmode_bo_has_bo(drmmode_bo *bo) +{ +#ifdef GLAMOR_HAS_GBM + if (bo->gbm) + return TRUE; +#endif + + return bo->dumb != NULL; +} + uint32_t drmmode_bo_get_handle(drmmode_bo *bo) { @@ -93,6 +104,26 @@ drmmode_bo_get_handle(drmmode_bo *bo) return bo->dumb->handle; } +static void * +drmmode_bo_map(drmmode_ptr drmmode, drmmode_bo *bo) +{ + int ret; + +#ifdef GLAMOR_HAS_GBM + if (bo->gbm) + return NULL; +#endif + + if (bo->dumb->ptr) + return bo->dumb->ptr; + + ret = dumb_bo_map(drmmode->fd, bo->dumb); + if (ret) + return NULL; + + return bo->dumb->ptr; +} + static Bool drmmode_create_bo(drmmode_ptr drmmode, drmmode_bo *bo, unsigned width, unsigned height, unsigned bpp) @@ -1570,17 +1601,7 @@ drmmode_create_initial_bos(ScrnInfoPtr pScrn, drmmode_ptr drmmode) void * drmmode_map_front_bo(drmmode_ptr drmmode) { - int ret; - - if (drmmode->front_bo.dumb->ptr) - return drmmode->front_bo.dumb->ptr; - - ret = dumb_bo_map(drmmode->fd, drmmode->front_bo.dumb); - if (ret) - return NULL; - - return drmmode->front_bo.dumb->ptr; - + return drmmode_bo_map(drmmode, &drmmode->front_bo); } void * |