aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2014-01-03 08:24:19 -0500
committerDavid Herrmann <dh.herrmann@gmail.com>2014-03-16 07:23:33 -0400
commit6796cb16c088905bf3af40548fda68c09e6f6ee5 (patch)
treed40162f17dad7b54ac63feaf62b7c84493556f5a /include
parent31bbe16f6d88622d6731fa2cb4ab38d57d844ac1 (diff)
drm: use anon-inode instead of relying on cdevs
DRM drivers share a common address_space across all character-devices of a single DRM device. This allows simple buffer eviction and mapping-control. However, DRM core currently waits for the first ->open() on any char-dev to mark the underlying inode as backing inode of the device. This delayed initialization causes ugly conditions all over the place: if (dev->dev_mapping) do_sth(); To avoid delayed initialization and to stop reusing the inode of the char-dev, we allocate an anonymous inode for each DRM device and reset filp->f_mapping to it on ->open(). Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/drm/drmP.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 04a7f31301f8..3227b716ffdf 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1183,7 +1183,7 @@ struct drm_device {
1183 struct drm_sg_mem *sg; /**< Scatter gather memory */ 1183 struct drm_sg_mem *sg; /**< Scatter gather memory */
1184 unsigned int num_crtcs; /**< Number of CRTCs on this device */ 1184 unsigned int num_crtcs; /**< Number of CRTCs on this device */
1185 void *dev_private; /**< device private data */ 1185 void *dev_private; /**< device private data */
1186 struct address_space *dev_mapping; 1186 struct inode *anon_inode;
1187 struct drm_sigdata sigdata; /**< For block_all_signals */ 1187 struct drm_sigdata sigdata; /**< For block_all_signals */
1188 sigset_t sigmask; 1188 sigset_t sigmask;
1189 1189