diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/gpu/drm/drm_drv.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/gpu/drm/drm_drv.c')
-rw-r--r-- | drivers/gpu/drm/drm_drv.c | 62 |
1 files changed, 10 insertions, 52 deletions
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 84da748555bc..93a112d45c1a 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c | |||
@@ -67,6 +67,7 @@ static struct drm_ioctl_desc drm_ioctls[] = { | |||
67 | DRM_IOCTL_DEF(DRM_IOCTL_GET_MAP, drm_getmap, 0), | 67 | DRM_IOCTL_DEF(DRM_IOCTL_GET_MAP, drm_getmap, 0), |
68 | DRM_IOCTL_DEF(DRM_IOCTL_GET_CLIENT, drm_getclient, 0), | 68 | DRM_IOCTL_DEF(DRM_IOCTL_GET_CLIENT, drm_getclient, 0), |
69 | DRM_IOCTL_DEF(DRM_IOCTL_GET_STATS, drm_getstats, 0), | 69 | DRM_IOCTL_DEF(DRM_IOCTL_GET_STATS, drm_getstats, 0), |
70 | DRM_IOCTL_DEF(DRM_IOCTL_GET_CAP, drm_getcap, 0), | ||
70 | DRM_IOCTL_DEF(DRM_IOCTL_SET_VERSION, drm_setversion, DRM_MASTER), | 71 | DRM_IOCTL_DEF(DRM_IOCTL_SET_VERSION, drm_setversion, DRM_MASTER), |
71 | 72 | ||
72 | DRM_IOCTL_DEF(DRM_IOCTL_SET_UNIQUE, drm_setunique, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 73 | DRM_IOCTL_DEF(DRM_IOCTL_SET_UNIQUE, drm_setunique, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
@@ -91,8 +92,8 @@ static struct drm_ioctl_desc drm_ioctls[] = { | |||
91 | DRM_IOCTL_DEF(DRM_IOCTL_NEW_CTX, drm_newctx, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 92 | DRM_IOCTL_DEF(DRM_IOCTL_NEW_CTX, drm_newctx, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
92 | DRM_IOCTL_DEF(DRM_IOCTL_RES_CTX, drm_resctx, DRM_AUTH), | 93 | DRM_IOCTL_DEF(DRM_IOCTL_RES_CTX, drm_resctx, DRM_AUTH), |
93 | 94 | ||
94 | DRM_IOCTL_DEF(DRM_IOCTL_ADD_DRAW, drm_adddraw, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 95 | DRM_IOCTL_DEF(DRM_IOCTL_ADD_DRAW, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
95 | DRM_IOCTL_DEF(DRM_IOCTL_RM_DRAW, drm_rmdraw, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 96 | DRM_IOCTL_DEF(DRM_IOCTL_RM_DRAW, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
96 | 97 | ||
97 | DRM_IOCTL_DEF(DRM_IOCTL_LOCK, drm_lock, DRM_AUTH), | 98 | DRM_IOCTL_DEF(DRM_IOCTL_LOCK, drm_lock, DRM_AUTH), |
98 | DRM_IOCTL_DEF(DRM_IOCTL_UNLOCK, drm_unlock, DRM_AUTH), | 99 | DRM_IOCTL_DEF(DRM_IOCTL_UNLOCK, drm_unlock, DRM_AUTH), |
@@ -127,7 +128,7 @@ static struct drm_ioctl_desc drm_ioctls[] = { | |||
127 | 128 | ||
128 | DRM_IOCTL_DEF(DRM_IOCTL_MODESET_CTL, drm_modeset_ctl, 0), | 129 | DRM_IOCTL_DEF(DRM_IOCTL_MODESET_CTL, drm_modeset_ctl, 0), |
129 | 130 | ||
130 | DRM_IOCTL_DEF(DRM_IOCTL_UPDATE_DRAW, drm_update_drawable_info, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 131 | DRM_IOCTL_DEF(DRM_IOCTL_UPDATE_DRAW, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
131 | 132 | ||
132 | DRM_IOCTL_DEF(DRM_IOCTL_GEM_CLOSE, drm_gem_close_ioctl, DRM_UNLOCKED), | 133 | DRM_IOCTL_DEF(DRM_IOCTL_GEM_CLOSE, drm_gem_close_ioctl, DRM_UNLOCKED), |
133 | DRM_IOCTL_DEF(DRM_IOCTL_GEM_FLINK, drm_gem_flink_ioctl, DRM_AUTH|DRM_UNLOCKED), | 134 | DRM_IOCTL_DEF(DRM_IOCTL_GEM_FLINK, drm_gem_flink_ioctl, DRM_AUTH|DRM_UNLOCKED), |
@@ -150,7 +151,10 @@ static struct drm_ioctl_desc drm_ioctls[] = { | |||
150 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, drm_mode_addfb, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), | 151 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, drm_mode_addfb, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), |
151 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), | 152 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), |
152 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_PAGE_FLIP, drm_mode_page_flip_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), | 153 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_PAGE_FLIP, drm_mode_page_flip_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), |
153 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_DIRTYFB, drm_mode_dirtyfb_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED) | 154 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_DIRTYFB, drm_mode_dirtyfb_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), |
155 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), | ||
156 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_MAP_DUMB, drm_mode_mmap_dumb_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), | ||
157 | DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED) | ||
154 | }; | 158 | }; |
155 | 159 | ||
156 | #define DRM_CORE_IOCTL_COUNT ARRAY_SIZE( drm_ioctls ) | 160 | #define DRM_CORE_IOCTL_COUNT ARRAY_SIZE( drm_ioctls ) |
@@ -180,10 +184,6 @@ int drm_lastclose(struct drm_device * dev) | |||
180 | 184 | ||
181 | mutex_lock(&dev->struct_mutex); | 185 | mutex_lock(&dev->struct_mutex); |
182 | 186 | ||
183 | /* Free drawable information memory */ | ||
184 | drm_drawable_free_all(dev); | ||
185 | del_timer(&dev->timer); | ||
186 | |||
187 | /* Clear AGP information */ | 187 | /* Clear AGP information */ |
188 | if (drm_core_has_AGP(dev) && dev->agp && | 188 | if (drm_core_has_AGP(dev) && dev->agp && |
189 | !drm_core_check_feature(dev, DRIVER_MODESET)) { | 189 | !drm_core_check_feature(dev, DRIVER_MODESET)) { |
@@ -238,53 +238,11 @@ int drm_lastclose(struct drm_device * dev) | |||
238 | return 0; | 238 | return 0; |
239 | } | 239 | } |
240 | 240 | ||
241 | /** | ||
242 | * Module initialization. Called via init_module at module load time, or via | ||
243 | * linux/init/main.c (this is not currently supported). | ||
244 | * | ||
245 | * \return zero on success or a negative number on failure. | ||
246 | * | ||
247 | * Initializes an array of drm_device structures, and attempts to | ||
248 | * initialize all available devices, using consecutive minors, registering the | ||
249 | * stubs and initializing the device. | ||
250 | * | ||
251 | * Expands the \c DRIVER_PREINIT and \c DRIVER_POST_INIT macros before and | ||
252 | * after the initialization for driver customization. | ||
253 | */ | ||
254 | int drm_init(struct drm_driver *driver) | ||
255 | { | ||
256 | DRM_DEBUG("\n"); | ||
257 | INIT_LIST_HEAD(&driver->device_list); | ||
258 | |||
259 | if (driver->driver_features & DRIVER_USE_PLATFORM_DEVICE) | ||
260 | return drm_platform_init(driver); | ||
261 | else | ||
262 | return drm_pci_init(driver); | ||
263 | } | ||
264 | |||
265 | EXPORT_SYMBOL(drm_init); | ||
266 | |||
267 | void drm_exit(struct drm_driver *driver) | ||
268 | { | ||
269 | struct drm_device *dev, *tmp; | ||
270 | DRM_DEBUG("\n"); | ||
271 | |||
272 | if (driver->driver_features & DRIVER_MODESET) { | ||
273 | pci_unregister_driver(&driver->pci_driver); | ||
274 | } else { | ||
275 | list_for_each_entry_safe(dev, tmp, &driver->device_list, driver_item) | ||
276 | drm_put_dev(dev); | ||
277 | } | ||
278 | |||
279 | DRM_INFO("Module unloaded\n"); | ||
280 | } | ||
281 | |||
282 | EXPORT_SYMBOL(drm_exit); | ||
283 | |||
284 | /** File operations structure */ | 241 | /** File operations structure */ |
285 | static const struct file_operations drm_stub_fops = { | 242 | static const struct file_operations drm_stub_fops = { |
286 | .owner = THIS_MODULE, | 243 | .owner = THIS_MODULE, |
287 | .open = drm_stub_open | 244 | .open = drm_stub_open, |
245 | .llseek = noop_llseek, | ||
288 | }; | 246 | }; |
289 | 247 | ||
290 | static int __init drm_core_init(void) | 248 | static int __init drm_core_init(void) |