|
@@ -53,6 +53,32 @@ static const char *yesno(int v)
|
|
|
return v ? "yes" : "no";
|
|
|
}
|
|
|
|
|
|
+/* As the drm_debugfs_init() routines are called before dev->dev_private is
|
|
|
+ * allocated we need to hook into the minor for release. */
|
|
|
+static int
|
|
|
+drm_add_fake_info_node(struct drm_minor *minor,
|
|
|
+ struct dentry *ent,
|
|
|
+ const void *key)
|
|
|
+{
|
|
|
+ struct drm_info_node *node;
|
|
|
+
|
|
|
+ node = kmalloc(sizeof(*node), GFP_KERNEL);
|
|
|
+ if (node == NULL) {
|
|
|
+ debugfs_remove(ent);
|
|
|
+ return -ENOMEM;
|
|
|
+ }
|
|
|
+
|
|
|
+ node->minor = minor;
|
|
|
+ node->dent = ent;
|
|
|
+ node->info_ent = (void *) key;
|
|
|
+
|
|
|
+ mutex_lock(&minor->debugfs_lock);
|
|
|
+ list_add(&node->list, &minor->debugfs_list);
|
|
|
+ mutex_unlock(&minor->debugfs_lock);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static int i915_capabilities(struct seq_file *m, void *data)
|
|
|
{
|
|
|
struct drm_info_node *node = (struct drm_info_node *) m->private;
|
|
@@ -2425,32 +2451,6 @@ DEFINE_SIMPLE_ATTRIBUTE(i915_cache_sharing_fops,
|
|
|
i915_cache_sharing_get, i915_cache_sharing_set,
|
|
|
"%llu\n");
|
|
|
|
|
|
-/* As the drm_debugfs_init() routines are called before dev->dev_private is
|
|
|
- * allocated we need to hook into the minor for release. */
|
|
|
-static int
|
|
|
-drm_add_fake_info_node(struct drm_minor *minor,
|
|
|
- struct dentry *ent,
|
|
|
- const void *key)
|
|
|
-{
|
|
|
- struct drm_info_node *node;
|
|
|
-
|
|
|
- node = kmalloc(sizeof(*node), GFP_KERNEL);
|
|
|
- if (node == NULL) {
|
|
|
- debugfs_remove(ent);
|
|
|
- return -ENOMEM;
|
|
|
- }
|
|
|
-
|
|
|
- node->minor = minor;
|
|
|
- node->dent = ent;
|
|
|
- node->info_ent = (void *) key;
|
|
|
-
|
|
|
- mutex_lock(&minor->debugfs_lock);
|
|
|
- list_add(&node->list, &minor->debugfs_list);
|
|
|
- mutex_unlock(&minor->debugfs_lock);
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static int i915_forcewake_open(struct inode *inode, struct file *file)
|
|
|
{
|
|
|
struct drm_device *dev = inode->i_private;
|