Change-Id: Ifbd0f403ca2302e9329a16d7b69db5ee056cadf7
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drm_dev_unref(minor->dev);
}
+struct drm_device *drm_device_get_by_name(const char *name)
+{
+ int i;
+
+ for (i = 0; i < 64; i++) {
+ struct drm_minor *minor;
+
+ minor = drm_minor_acquire(i + DRM_MINOR_CONTROL);
+ if (IS_ERR(minor))
+ continue;
+ if (!minor->dev || !minor->dev->driver ||
+ !minor->dev->driver->name)
+ continue;
+ if (!name)
+ return minor->dev;
+ if (!strcmp(name, minor->dev->driver->name))
+ return minor->dev;
+ }
+
+ return NULL;
+}
+
/**
* DOC: driver instance overview
*
struct drm_minor *drm_minor_acquire(unsigned int minor_id);
void drm_minor_release(struct drm_minor *minor);
+#ifdef CONFIG_DRM
+struct drm_device *drm_device_get_by_name(const char *name);
+#else
+static inline struct drm_device *drm_device_get_by_name(const char *name)
+{
+ return NULL;
+}
+#endif
/*@}*/