diff options
author | Eric Anholt <eric@anholt.net> | 2014-11-19 12:06:38 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2015-06-04 14:15:25 -0700 |
commit | 558caeba4ece63112452d0a454554d011a465917 (patch) | |
tree | d12973b041ce0df9f807d78c82cc55a1ac366832 | |
parent | 89717fa400c0a77850c7ca55ce43c4ca0085f548 (diff) | |
download | linux-558caeba4ece63112452d0a454554d011a465917.tar.gz |
drm: Put an optional field in the driver struct for GEM obj struct size.
This allows a driver to derive from the CMA object without copying all
of the code.
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | drivers/gpu/drm/drm_gem_cma_helper.c | 5 | ||||
-rw-r--r-- | include/drm/drmP.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c index e419eedf751d..be121c9a8e92 100644 --- a/drivers/gpu/drm/drm_gem_cma_helper.c +++ b/drivers/gpu/drm/drm_gem_cma_helper.c @@ -58,8 +58,11 @@ __drm_gem_cma_create(struct drm_device *drm, size_t size) struct drm_gem_cma_object *cma_obj; struct drm_gem_object *gem_obj; int ret; + size_t obj_size = (drm->driver->gem_obj_size ? + drm->driver->gem_obj_size : + sizeof(*cma_obj)); - cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL); + cma_obj = kzalloc(obj_size, GFP_KERNEL); if (!cma_obj) return ERR_PTR(-ENOMEM); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 62c40777c009..f59a177aa344 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -621,6 +621,7 @@ struct drm_driver { u32 driver_features; int dev_priv_size; + size_t gem_obj_size; const struct drm_ioctl_desc *ioctls; int num_ioctls; const struct file_operations *fops; |