lockdep_assert_held_once(&dev->master_mutex);
/* create a new master */
- fpriv->minor->master = drm_master_create(fpriv->minor->dev);
- if (!fpriv->minor->master)
+ dev->master = drm_master_create(dev);
+ if (!dev->master)
return -ENOMEM;
/* take another reference for the copy in the local file priv */
old_master = fpriv->master;
- fpriv->master = drm_master_get(fpriv->minor->master);
+ fpriv->master = drm_master_get(dev->master);
if (dev->driver->master_create) {
ret = dev->driver->master_create(dev, fpriv->master);
out_err:
/* drop both references and restore old master on failure */
- drm_master_put(&fpriv->minor->master);
+ drm_master_put(&dev->master);
drm_master_put(&fpriv->master);
fpriv->master = old_master;
if (file_priv->is_master)
goto out_unlock;
- if (file_priv->minor->master) {
+ if (dev->master) {
ret = -EINVAL;
goto out_unlock;
}
goto out_unlock;
}
- file_priv->minor->master = drm_master_get(file_priv->master);
+ dev->master = drm_master_get(file_priv->master);
file_priv->is_master = 1;
if (dev->driver->master_set) {
ret = dev->driver->master_set(dev, file_priv, false);
if (unlikely(ret != 0)) {
file_priv->is_master = 0;
- drm_master_put(&file_priv->minor->master);
+ drm_master_put(&dev->master);
}
}
if (!file_priv->is_master)
goto out_unlock;
- if (!file_priv->minor->master)
+ if (!dev->master)
goto out_unlock;
ret = 0;
if (dev->driver->master_drop)
dev->driver->master_drop(dev, file_priv, false);
- drm_master_put(&file_priv->minor->master);
+ drm_master_put(&dev->master);
file_priv->is_master = 0;
out_unlock:
/* if there is no current master make this fd it, but do not create
* any master object for render clients */
mutex_lock(&dev->master_mutex);
- if (!file_priv->minor->master)
+ if (!dev->master)
ret = drm_new_set_master(dev, file_priv);
else
- file_priv->master = drm_master_get(file_priv->minor->master);
+ file_priv->master = drm_master_get(dev->master);
mutex_unlock(&dev->master_mutex);
return ret;
mutex_unlock(&dev->struct_mutex);
}
- if (file_priv->minor->master == file_priv->master) {
+ if (dev->master == file_priv->master) {
/* drop the reference held my the minor */
if (dev->driver->master_drop)
dev->driver->master_drop(dev, file_priv, true);
- drm_master_put(&file_priv->minor->master);
+ drm_master_put(&dev->master);
}
out:
/* drop the master reference held by the file priv */