6849a3f94183fcc72a7a75d489648c19b84a9036
[openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0113-drm-Put-an-optional-field-in-the-driver-struct-for-G.patch
1 From 486a03e437e2472aa0d88cd77ef4a4394d895085 Mon Sep 17 00:00:00 2001
2 From: Eric Anholt <eric@anholt.net>
3 Date: Wed, 19 Nov 2014 12:06:38 -0800
4 Subject: [PATCH 113/156] drm: Put an optional field in the driver struct for
5  GEM obj struct size.
6
7 This allows a driver to derive from the CMA object without copying all
8 of the code.
9
10 Signed-off-by: Eric Anholt <eric@anholt.net>
11 ---
12  drivers/gpu/drm/drm_gem_cma_helper.c | 5 ++++-
13  include/drm/drmP.h                   | 1 +
14  2 files changed, 5 insertions(+), 1 deletion(-)
15
16 --- a/drivers/gpu/drm/drm_gem_cma_helper.c
17 +++ b/drivers/gpu/drm/drm_gem_cma_helper.c
18 @@ -58,8 +58,11 @@ __drm_gem_cma_create(struct drm_device *
19         struct drm_gem_cma_object *cma_obj;
20         struct drm_gem_object *gem_obj;
21         int ret;
22 +       size_t obj_size = (drm->driver->gem_obj_size ?
23 +                          drm->driver->gem_obj_size :
24 +                          sizeof(*cma_obj));
25  
26 -       cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL);
27 +       cma_obj = kzalloc(obj_size, GFP_KERNEL);
28         if (!cma_obj)
29                 return ERR_PTR(-ENOMEM);
30  
31 --- a/include/drm/drmP.h
32 +++ b/include/drm/drmP.h
33 @@ -639,6 +639,7 @@ struct drm_driver {
34  
35         u32 driver_features;
36         int dev_priv_size;
37 +       size_t gem_obj_size;
38         const struct drm_ioctl_desc *ioctls;
39         int num_ioctls;
40         const struct file_operations *fops;