Lines Matching refs:dev

58 int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)  in drm_getmagic()  argument
63 mutex_lock(&dev->master_mutex); in drm_getmagic()
71 mutex_unlock(&dev->master_mutex); in drm_getmagic()
78 int drm_authmagic(struct drm_device *dev, void *data, in drm_authmagic() argument
86 mutex_lock(&dev->master_mutex); in drm_authmagic()
92 mutex_unlock(&dev->master_mutex); in drm_authmagic()
97 struct drm_master *drm_master_create(struct drm_device *dev) in drm_master_create() argument
109 master->dev = dev; in drm_master_create()
122 static int drm_set_master(struct drm_device *dev, struct drm_file *fpriv, in drm_set_master() argument
127 dev->master = drm_master_get(fpriv->master); in drm_set_master()
128 if (dev->driver->master_set) { in drm_set_master()
129 ret = dev->driver->master_set(dev, fpriv, new_master); in drm_set_master()
131 drm_master_put(&dev->master); in drm_set_master()
138 static int drm_new_set_master(struct drm_device *dev, struct drm_file *fpriv) in drm_new_set_master() argument
144 lockdep_assert_held_once(&dev->master_mutex); in drm_new_set_master()
148 fpriv->master = drm_master_create(dev); in drm_new_set_master()
154 if (dev->driver->master_create) { in drm_new_set_master()
155 ret = dev->driver->master_create(dev, fpriv->master); in drm_new_set_master()
162 ret = drm_set_master(dev, fpriv, true); in drm_new_set_master()
179 int drm_setmaster_ioctl(struct drm_device *dev, void *data, in drm_setmaster_ioctl() argument
184 mutex_lock(&dev->master_mutex); in drm_setmaster_ioctl()
195 if (dev->master) { in drm_setmaster_ioctl()
209 ret = drm_new_set_master(dev, file_priv); in drm_setmaster_ioctl()
219 ret = drm_set_master(dev, file_priv, false); in drm_setmaster_ioctl()
222 mutex_unlock(&dev->master_mutex); in drm_setmaster_ioctl()
226 static void drm_drop_master(struct drm_device *dev, in drm_drop_master() argument
229 if (dev->driver->master_drop) in drm_drop_master()
230 dev->driver->master_drop(dev, fpriv); in drm_drop_master()
231 drm_master_put(&dev->master); in drm_drop_master()
234 int drm_dropmaster_ioctl(struct drm_device *dev, void *data, in drm_dropmaster_ioctl() argument
240 mutex_lock(&dev->master_mutex); in drm_dropmaster_ioctl()
244 if (!dev->master) in drm_dropmaster_ioctl()
254 drm_drop_master(dev, file_priv); in drm_dropmaster_ioctl()
256 mutex_unlock(&dev->master_mutex); in drm_dropmaster_ioctl()
262 struct drm_device *dev = file_priv->minor->dev; in drm_master_open() local
267 mutex_lock(&dev->master_mutex); in drm_master_open()
268 if (!dev->master) in drm_master_open()
269 ret = drm_new_set_master(dev, file_priv); in drm_master_open()
271 file_priv->master = drm_master_get(dev->master); in drm_master_open()
272 mutex_unlock(&dev->master_mutex); in drm_master_open()
279 struct drm_device *dev = file_priv->minor->dev; in drm_master_release() local
282 mutex_lock(&dev->master_mutex); in drm_master_release()
289 if (drm_core_check_feature(dev, DRIVER_LEGACY)) { in drm_master_release()
294 mutex_lock(&dev->struct_mutex); in drm_master_release()
296 if (dev->sigdata.lock == master->lock.hw_lock) in drm_master_release()
297 dev->sigdata.lock = NULL; in drm_master_release()
302 mutex_unlock(&dev->struct_mutex); in drm_master_release()
305 if (dev->master == file_priv->master) in drm_master_release()
306 drm_drop_master(dev, file_priv); in drm_master_release()
308 if (drm_core_check_feature(dev, DRIVER_MODESET) && file_priv->is_master) { in drm_master_release()
318 mutex_unlock(&dev->master_mutex); in drm_master_release()
353 struct drm_device *dev = master->dev; in drm_master_destroy() local
355 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_master_destroy()
358 if (dev->driver->master_destroy) in drm_master_destroy()
359 dev->driver->master_destroy(dev, master); in drm_master_destroy()
361 drm_legacy_master_rmmaps(dev, master); in drm_master_destroy()