Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/tinydrm: Fix drm_driver.fops.owner

drm_driver.fops can't be shared since the owner then becomes tinydrm.ko.
Move the fops declaration to the driver.

v2: Use DEFINE_DRM_GEM_CMA_FOPS

Reported-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170326142529.16938-1-noralf@tronnes.org

authored by

Noralf Trønnes and committed by
Daniel Vetter
79b85d2b 187697a4

+4 -18
-15
drivers/gpu/drm/tinydrm/core/tinydrm-core.c
··· 122 122 } 123 123 EXPORT_SYMBOL_GPL(tinydrm_gem_cma_free_object); 124 124 125 - const struct file_operations tinydrm_fops = { 126 - .owner = THIS_MODULE, 127 - .open = drm_open, 128 - .release = drm_release, 129 - .unlocked_ioctl = drm_ioctl, 130 - #ifdef CONFIG_COMPAT 131 - .compat_ioctl = drm_compat_ioctl, 132 - #endif 133 - .poll = drm_poll, 134 - .read = drm_read, 135 - .llseek = no_llseek, 136 - .mmap = drm_gem_cma_mmap, 137 - }; 138 - EXPORT_SYMBOL(tinydrm_fops); 139 - 140 125 static struct drm_framebuffer * 141 126 tinydrm_fb_create(struct drm_device *drm, struct drm_file *file_priv, 142 127 const struct drm_mode_fb_cmd2 *mode_cmd)
+3
drivers/gpu/drm/tinydrm/mi0283qt.c
··· 132 132 TINYDRM_MODE(320, 240, 58, 43), 133 133 }; 134 134 135 + DEFINE_DRM_GEM_CMA_FOPS(mi0283qt_fops); 136 + 135 137 static struct drm_driver mi0283qt_driver = { 136 138 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | 137 139 DRIVER_ATOMIC, 140 + .fops = &mi0283qt_fops, 138 141 TINYDRM_GEM_DRIVER_OPS, 139 142 .lastclose = tinydrm_lastclose, 140 143 .debugfs_init = mipi_dbi_debugfs_init,
+1 -3
include/drm/tinydrm/tinydrm.h
··· 58 58 .gem_prime_mmap = drm_gem_cma_prime_mmap, \ 59 59 .dumb_create = drm_gem_cma_dumb_create, \ 60 60 .dumb_map_offset = drm_gem_cma_dumb_map_offset, \ 61 - .dumb_destroy = drm_gem_dumb_destroy, \ 62 - .fops = &tinydrm_fops 61 + .dumb_destroy = drm_gem_dumb_destroy 63 62 64 63 /** 65 64 * TINYDRM_MODE - tinydrm display mode ··· 83 84 .type = DRM_MODE_TYPE_DRIVER, \ 84 85 .clock = 1 /* pass validation */ 85 86 86 - extern const struct file_operations tinydrm_fops; 87 87 void tinydrm_lastclose(struct drm_device *drm); 88 88 void tinydrm_gem_cma_free_object(struct drm_gem_object *gem_obj); 89 89 struct drm_gem_object *