Lines Matching refs:dev
69 int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv) in drm_getmagic() argument
75 mutex_lock(&dev->master_mutex); in drm_getmagic()
83 mutex_unlock(&dev->master_mutex); in drm_getmagic()
91 int drm_authmagic(struct drm_device *dev, void *data, in drm_authmagic() argument
99 mutex_lock(&dev->master_mutex); in drm_authmagic()
105 mutex_unlock(&dev->master_mutex); in drm_authmagic()
110 struct drm_master *drm_master_create(struct drm_device *dev) in drm_master_create() argument
121 master->dev = dev; in drm_master_create()
132 static int drm_set_master(struct drm_device *dev, struct drm_file *fpriv, in drm_set_master() argument
137 dev->master = drm_master_get(fpriv->master); in drm_set_master()
138 if (dev->driver->master_set) { in drm_set_master()
139 ret = dev->driver->master_set(dev, fpriv, new_master); in drm_set_master()
141 drm_master_put(&dev->master); in drm_set_master()
148 static int drm_new_set_master(struct drm_device *dev, struct drm_file *fpriv) in drm_new_set_master() argument
153 lockdep_assert_held_once(&dev->master_mutex); in drm_new_set_master()
157 fpriv->master = drm_master_create(dev); in drm_new_set_master()
163 if (dev->driver->master_create) { in drm_new_set_master()
164 ret = dev->driver->master_create(dev, fpriv->master); in drm_new_set_master()
171 ret = drm_set_master(dev, fpriv, true); in drm_new_set_master()
189 int drm_setmaster_ioctl(struct drm_device *dev, void *data, in drm_setmaster_ioctl() argument
194 mutex_lock(&dev->master_mutex); in drm_setmaster_ioctl()
198 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()
221 mutex_unlock(&dev->master_mutex); in drm_setmaster_ioctl()
225 static void drm_drop_master(struct drm_device *dev, in drm_drop_master() argument
228 if (dev->driver->master_drop) in drm_drop_master()
229 dev->driver->master_drop(dev, fpriv); in drm_drop_master()
230 drm_master_put(&dev->master); in drm_drop_master()
233 int drm_dropmaster_ioctl(struct drm_device *dev, void *data, in drm_dropmaster_ioctl() argument
238 mutex_lock(&dev->master_mutex); in drm_dropmaster_ioctl()
242 if (!dev->master) in drm_dropmaster_ioctl()
252 drm_drop_master(dev, file_priv); in drm_dropmaster_ioctl()
254 mutex_unlock(&dev->master_mutex); in drm_dropmaster_ioctl()
260 struct drm_device *dev = file_priv->minor->dev; in drm_master_open() local
265 mutex_lock(&dev->master_mutex); in drm_master_open()
266 if (!dev->master) in drm_master_open()
267 ret = drm_new_set_master(dev, file_priv); in drm_master_open()
269 file_priv->master = drm_master_get(dev->master); in drm_master_open()
270 mutex_unlock(&dev->master_mutex); in drm_master_open()
277 struct drm_device *dev = file_priv->minor->dev; in drm_master_release() local
280 mutex_lock(&dev->master_mutex); in drm_master_release()
287 drm_legacy_lock_master_cleanup(dev, master); in drm_master_release()
289 if (dev->master == file_priv->master) in drm_master_release()
290 drm_drop_master(dev, file_priv); in drm_master_release()
292 if (drm_core_check_feature(dev, DRIVER_MODESET) && file_priv->is_master) { in drm_master_release()
302 mutex_unlock(&dev->master_mutex); in drm_master_release()
317 return fpriv->is_master && drm_lease_owner(fpriv->master) == fpriv->minor->dev->master; in drm_is_current_master()
337 struct drm_device *dev = master->dev; in drm_master_destroy() local
339 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_master_destroy()
342 if (dev->driver->master_destroy) in drm_master_destroy()
343 dev->driver->master_destroy(dev, master); in drm_master_destroy()
345 drm_legacy_master_rmmaps(dev, master); in drm_master_destroy()
375 bool drm_master_internal_acquire(struct drm_device *dev) in drm_master_internal_acquire() argument
377 mutex_lock(&dev->master_mutex); in drm_master_internal_acquire()
378 if (dev->master) { in drm_master_internal_acquire()
379 mutex_unlock(&dev->master_mutex); in drm_master_internal_acquire()
388 void drm_master_internal_release(struct drm_device *dev) in drm_master_internal_release() argument
390 mutex_unlock(&dev->master_mutex); in drm_master_internal_release()