Message ID | 1470251470-30830-2-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi On Wed, Aug 3, 2016 at 9:11 PM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > Except for nouveau, only legacy drivers need this really. And nouveau > is already marked up with DRIVER_KMS_LEGACY_CONTEXT as the special > case. > > I've tried to be careful to leave everything related to modeset still > using the DRIVER_MODESET flag. Otherwise it's a direct replacement of > !DRIVER_MODESET with DRIVER_LEGACY checks. Also helps readability > since fewer negative checks overall. > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > drivers/gpu/drm/drm_agpsupport.c | 6 ++---- > drivers/gpu/drm/drm_auth.c | 2 +- > drivers/gpu/drm/drm_bufs.c | 22 +++++++++++----------- > drivers/gpu/drm/drm_context.c | 24 ++++++++++++------------ > drivers/gpu/drm/drm_dma.c | 6 ++---- > drivers/gpu/drm/drm_fops.c | 6 +++--- > drivers/gpu/drm/drm_ioctl.c | 4 ++-- > drivers/gpu/drm/drm_irq.c | 10 +++++----- > drivers/gpu/drm/drm_lock.c | 4 ++-- > drivers/gpu/drm/drm_pci.c | 8 ++++---- > drivers/gpu/drm/drm_scatter.c | 6 +++--- > 11 files changed, 47 insertions(+), 51 deletions(-) > > diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c > index 605bd243fb36..d621c8a4cf00 100644 > --- a/drivers/gpu/drm/drm_agpsupport.c > +++ b/drivers/gpu/drm/drm_agpsupport.c > @@ -430,9 +430,7 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) > * intact so it can still be used. It is safe to call this if AGP is disabled or > * was already removed. > * > - * If DRIVER_MODESET is active, nothing is done to protect the modesetting > - * resources from getting destroyed. Drivers are responsible of cleaning them up > - * during device shutdown. > + * Cleanup is only done for drivers who have DRIVER_LEGACY set. > */ > void drm_legacy_agp_clear(struct drm_device *dev) > { > @@ -440,7 +438,7 @@ void drm_legacy_agp_clear(struct drm_device *dev) > > if (!dev->agp) > return; > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { > diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c > index 4153e8a193af..6b143514a566 100644 > --- a/drivers/gpu/drm/drm_auth.c > +++ b/drivers/gpu/drm/drm_auth.c > @@ -251,7 +251,7 @@ void drm_master_release(struct drm_file *file_priv) > if (!drm_is_current_master(file_priv)) > goto out; > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) { > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) { > /* > * Since the master is disappearing, so is the > * possibility to lock. > diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c > index c3a12cd8bd0d..32191513e82d 100644 > --- a/drivers/gpu/drm/drm_bufs.c > +++ b/drivers/gpu/drm/drm_bufs.c > @@ -397,7 +397,7 @@ int drm_legacy_addmap_ioctl(struct drm_device *dev, void *data, > return -EPERM; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > err = drm_addmap_core(dev, map->offset, map->size, map->type, > @@ -443,7 +443,7 @@ int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, > int i; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > idx = map->offset; > @@ -545,7 +545,7 @@ EXPORT_SYMBOL(drm_legacy_rmmap_locked); > void drm_legacy_rmmap(struct drm_device *dev, struct drm_local_map *map) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -558,7 +558,7 @@ void drm_legacy_master_rmmaps(struct drm_device *dev, struct drm_master *master) > { > struct drm_map_list *r_list, *list_temp; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -595,7 +595,7 @@ int drm_legacy_rmmap_ioctl(struct drm_device *dev, void *data, > int ret; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > @@ -1220,7 +1220,7 @@ int drm_legacy_addbufs(struct drm_device *dev, void *data, > struct drm_buf_desc *request = data; > int ret; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1266,7 +1266,7 @@ int drm_legacy_infobufs(struct drm_device *dev, void *data, > int i; > int count; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1347,7 +1347,7 @@ int drm_legacy_markbufs(struct drm_device *dev, void *data, > int order; > struct drm_buf_entry *entry; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1395,7 +1395,7 @@ int drm_legacy_freebufs(struct drm_device *dev, void *data, > int idx; > struct drm_buf *buf; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1450,7 +1450,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > struct drm_buf_map *request = data; > int i; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1530,7 +1530,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > int drm_legacy_dma_ioctl(struct drm_device *dev, void *data, > struct drm_file *file_priv) > { > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (dev->driver->dma_ioctl) > diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c > index 192a5f9eeb74..3c4000facb36 100644 > --- a/drivers/gpu/drm/drm_context.c > +++ b/drivers/gpu/drm/drm_context.c > @@ -54,7 +54,7 @@ struct drm_ctx_list { > void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -92,7 +92,7 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev) > void drm_legacy_ctxbitmap_init(struct drm_device * dev) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > idr_init(&dev->ctx_idr); > @@ -109,7 +109,7 @@ void drm_legacy_ctxbitmap_init(struct drm_device * dev) > void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -131,7 +131,7 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) > struct drm_ctx_list *pos, *tmp; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->ctxlist_mutex); > @@ -177,7 +177,7 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data, > struct drm_map_list *_entry; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > @@ -225,7 +225,7 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data, > struct drm_map_list *r_list = NULL; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > @@ -329,7 +329,7 @@ int drm_legacy_resctx(struct drm_device *dev, void *data, > int i; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (res->count >= DRM_RESERVED_CONTEXTS) { > @@ -363,7 +363,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > ctx->handle = drm_legacy_ctxbitmap_next(dev); > @@ -410,7 +410,7 @@ int drm_legacy_getctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > /* This is 0, because we don't handle any context flags */ > @@ -436,7 +436,7 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > @@ -460,7 +460,7 @@ int drm_legacy_newctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > @@ -486,7 +486,7 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > diff --git a/drivers/gpu/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c > index ea481800ef56..3f83e2ca80ad 100644 > --- a/drivers/gpu/drm/drm_dma.c > +++ b/drivers/gpu/drm/drm_dma.c > @@ -50,9 +50,8 @@ int drm_legacy_dma_setup(struct drm_device *dev) > int i; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > - drm_core_check_feature(dev, DRIVER_MODESET)) { > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return 0; > - } > > dev->buf_use = 0; > atomic_set(&dev->buf_alloc, 0); > @@ -81,9 +80,8 @@ void drm_legacy_dma_takedown(struct drm_device *dev) > int i, j; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > - drm_core_check_feature(dev, DRIVER_MODESET)) { > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > - } Both these DRIVER_HAVE_DMA checks are sufficient without the DRIVER_MODESET/LEGACY checks. I mean, the entire HAVE_DMA flag is legacy-only. But that's for a future cleanup to rename HAVE_DMA to LEGACY_DMA. This patch is: Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Thanks David > > if (!dma) > return; > diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c > index 323c238fcac7..036cd275c53e 100644 > --- a/drivers/gpu/drm/drm_fops.c > +++ b/drivers/gpu/drm/drm_fops.c > @@ -92,7 +92,7 @@ static int drm_setup(struct drm_device * dev) > int ret; > > if (dev->driver->firstopen && > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > ret = dev->driver->firstopen(dev); > if (ret != 0) > return ret; > @@ -346,7 +346,7 @@ void drm_lastclose(struct drm_device * dev) > dev->driver->lastclose(dev); > DRM_DEBUG("driver lastclose completed\n"); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > drm_legacy_dev_reinit(dev); > } > > @@ -389,7 +389,7 @@ int drm_release(struct inode *inode, struct file *filp) > (long)old_encode_dev(file_priv->minor->kdev->devt), > dev->open_count); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > drm_legacy_lock_release(dev, filp); > > if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > index 5085fd90f74d..0663a92922a8 100644 > --- a/drivers/gpu/drm/drm_ioctl.c > +++ b/drivers/gpu/drm/drm_ioctl.c > @@ -714,9 +714,9 @@ long drm_ioctl(struct file *filp, > if (ksize > in_size) > memset(kdata + in_size, 0, ksize - in_size); > > - /* Enforce sane locking for kms driver ioctls. Core ioctls are > + /* Enforce sane locking for modern driver ioctls. Core ioctls are > * too messy still. */ > - if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || > + if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) || > (ioctl->flags & DRM_UNLOCKED)) > retcode = func(dev, kdata, file_priv); > else { > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > index a33465d8e133..d6d022b7c29b 100644 > --- a/drivers/gpu/drm/drm_irq.c > +++ b/drivers/gpu/drm/drm_irq.c > @@ -482,7 +482,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > return ret; > } > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL); > > /* After installing handler */ > @@ -491,7 +491,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > > if (ret < 0) { > dev->irq_enabled = false; > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > vga_client_register(dev->pdev, NULL, NULL, NULL); > free_irq(irq, dev); > } else { > @@ -557,7 +557,7 @@ int drm_irq_uninstall(struct drm_device *dev) > > DRM_DEBUG("irq=%d\n", dev->irq); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > vga_client_register(dev->pdev, NULL, NULL, NULL); > > if (dev->driver->irq_uninstall) > @@ -592,7 +592,7 @@ int drm_control(struct drm_device *dev, void *data, > > if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) > return 0; > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return 0; > /* UMS was only ever supported on pci devices. */ > if (WARN_ON(!dev->pdev)) > @@ -1488,7 +1488,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, > return 0; > > /* KMS drivers handle this internally */ > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return 0; > > pipe = modeset->crtc; > diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c > index 48ac0ebbd663..c901f3c5b269 100644 > --- a/drivers/gpu/drm/drm_lock.c > +++ b/drivers/gpu/drm/drm_lock.c > @@ -163,7 +163,7 @@ int drm_legacy_lock(struct drm_device *dev, void *data, > struct drm_master *master = file_priv->master; > int ret = 0; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > ++file_priv->lock_count; > @@ -252,7 +252,7 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_ > struct drm_lock *lock = data; > struct drm_master *master = file_priv->master; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (lock->context == DRM_KERNEL_CONTEXT) { > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index b2f8f1062d5f..d86362fc8ac6 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -175,7 +175,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data, > { > struct drm_irq_busid *p = data; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > /* UMS was only ever support on PCI devices. */ > @@ -263,7 +263,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > > /* No locking needed since shadow-attach is single-threaded since it may > * only be called from the per-driver module init hook. */ > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list); > > return 0; > @@ -299,7 +299,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) > > DRM_DEBUG("\n"); > > - if (driver->driver_features & DRIVER_MODESET) > + if (!(driver->driver_features & DRIVER_LEGACY)) > return pci_register_driver(pdriver); > > /* If not using KMS, fall back to stealth mode manual scanning. */ > @@ -421,7 +421,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) > struct drm_device *dev, *tmp; > DRM_DEBUG("\n"); > > - if (driver->driver_features & DRIVER_MODESET) { > + if (!(driver->driver_features & DRIVER_LEGACY)) { > pci_unregister_driver(pdriver); > } else { > list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, > diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c > index bf70431073f6..275bca44f38c 100644 > --- a/drivers/gpu/drm/drm_scatter.c > +++ b/drivers/gpu/drm/drm_scatter.c > @@ -68,7 +68,7 @@ static void drm_sg_cleanup(struct drm_sg_mem * entry) > void drm_legacy_sg_cleanup(struct drm_device *dev) > { > if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > drm_sg_cleanup(dev->sg); > dev->sg = NULL; > } > @@ -88,7 +88,7 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data, > > DRM_DEBUG("\n"); > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_SG)) > @@ -201,7 +201,7 @@ int drm_legacy_sg_free(struct drm_device *dev, void *data, > struct drm_scatter_gather *request = data; > struct drm_sg_mem *entry; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_SG)) > -- > 2.8.1 >
On 03/08/16 20:11, Daniel Vetter wrote: > Except for nouveau, only legacy drivers need this really. And nouveau > is already marked up with DRIVER_KMS_LEGACY_CONTEXT as the special > case. > > I've tried to be careful to leave everything related to modeset still > using the DRIVER_MODESET flag. Otherwise it's a direct replacement of > !DRIVER_MODESET with DRIVER_LEGACY checks. Also helps readability > since fewer negative checks overall. > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> I don't think this goes far enough. For example, the documentation for the 'firstopen' callback says that it's called for legacy UMS drivers but it does a check based on DRIVER_MODESET. There are also some places in drm_pci.c that should be changed as well. Anyway, this is progress so: Reviewed-by: Frank Binns <frank.binns@imgtec.com> > --- > drivers/gpu/drm/drm_agpsupport.c | 6 ++---- > drivers/gpu/drm/drm_auth.c | 2 +- > drivers/gpu/drm/drm_bufs.c | 22 +++++++++++----------- > drivers/gpu/drm/drm_context.c | 24 ++++++++++++------------ > drivers/gpu/drm/drm_dma.c | 6 ++---- > drivers/gpu/drm/drm_fops.c | 6 +++--- > drivers/gpu/drm/drm_ioctl.c | 4 ++-- > drivers/gpu/drm/drm_irq.c | 10 +++++----- > drivers/gpu/drm/drm_lock.c | 4 ++-- > drivers/gpu/drm/drm_pci.c | 8 ++++---- > drivers/gpu/drm/drm_scatter.c | 6 +++--- > 11 files changed, 47 insertions(+), 51 deletions(-) > > diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c > index 605bd243fb36..d621c8a4cf00 100644 > --- a/drivers/gpu/drm/drm_agpsupport.c > +++ b/drivers/gpu/drm/drm_agpsupport.c > @@ -430,9 +430,7 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) > * intact so it can still be used. It is safe to call this if AGP is disabled or > * was already removed. > * > - * If DRIVER_MODESET is active, nothing is done to protect the modesetting > - * resources from getting destroyed. Drivers are responsible of cleaning them up > - * during device shutdown. > + * Cleanup is only done for drivers who have DRIVER_LEGACY set. > */ > void drm_legacy_agp_clear(struct drm_device *dev) > { > @@ -440,7 +438,7 @@ void drm_legacy_agp_clear(struct drm_device *dev) > > if (!dev->agp) > return; > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { > diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c > index 4153e8a193af..6b143514a566 100644 > --- a/drivers/gpu/drm/drm_auth.c > +++ b/drivers/gpu/drm/drm_auth.c > @@ -251,7 +251,7 @@ void drm_master_release(struct drm_file *file_priv) > if (!drm_is_current_master(file_priv)) > goto out; > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) { > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) { > /* > * Since the master is disappearing, so is the > * possibility to lock. > diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c > index c3a12cd8bd0d..32191513e82d 100644 > --- a/drivers/gpu/drm/drm_bufs.c > +++ b/drivers/gpu/drm/drm_bufs.c > @@ -397,7 +397,7 @@ int drm_legacy_addmap_ioctl(struct drm_device *dev, void *data, > return -EPERM; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > err = drm_addmap_core(dev, map->offset, map->size, map->type, > @@ -443,7 +443,7 @@ int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, > int i; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > idx = map->offset; > @@ -545,7 +545,7 @@ EXPORT_SYMBOL(drm_legacy_rmmap_locked); > void drm_legacy_rmmap(struct drm_device *dev, struct drm_local_map *map) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -558,7 +558,7 @@ void drm_legacy_master_rmmaps(struct drm_device *dev, struct drm_master *master) > { > struct drm_map_list *r_list, *list_temp; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -595,7 +595,7 @@ int drm_legacy_rmmap_ioctl(struct drm_device *dev, void *data, > int ret; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > @@ -1220,7 +1220,7 @@ int drm_legacy_addbufs(struct drm_device *dev, void *data, > struct drm_buf_desc *request = data; > int ret; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1266,7 +1266,7 @@ int drm_legacy_infobufs(struct drm_device *dev, void *data, > int i; > int count; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1347,7 +1347,7 @@ int drm_legacy_markbufs(struct drm_device *dev, void *data, > int order; > struct drm_buf_entry *entry; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1395,7 +1395,7 @@ int drm_legacy_freebufs(struct drm_device *dev, void *data, > int idx; > struct drm_buf *buf; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1450,7 +1450,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > struct drm_buf_map *request = data; > int i; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > @@ -1530,7 +1530,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > int drm_legacy_dma_ioctl(struct drm_device *dev, void *data, > struct drm_file *file_priv) > { > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (dev->driver->dma_ioctl) > diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c > index 192a5f9eeb74..3c4000facb36 100644 > --- a/drivers/gpu/drm/drm_context.c > +++ b/drivers/gpu/drm/drm_context.c > @@ -54,7 +54,7 @@ struct drm_ctx_list { > void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -92,7 +92,7 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev) > void drm_legacy_ctxbitmap_init(struct drm_device * dev) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > idr_init(&dev->ctx_idr); > @@ -109,7 +109,7 @@ void drm_legacy_ctxbitmap_init(struct drm_device * dev) > void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev) > { > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->struct_mutex); > @@ -131,7 +131,7 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) > struct drm_ctx_list *pos, *tmp; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > > mutex_lock(&dev->ctxlist_mutex); > @@ -177,7 +177,7 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data, > struct drm_map_list *_entry; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > @@ -225,7 +225,7 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data, > struct drm_map_list *r_list = NULL; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > @@ -329,7 +329,7 @@ int drm_legacy_resctx(struct drm_device *dev, void *data, > int i; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (res->count >= DRM_RESERVED_CONTEXTS) { > @@ -363,7 +363,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > ctx->handle = drm_legacy_ctxbitmap_next(dev); > @@ -410,7 +410,7 @@ int drm_legacy_getctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > /* This is 0, because we don't handle any context flags */ > @@ -436,7 +436,7 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > @@ -460,7 +460,7 @@ int drm_legacy_newctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > @@ -486,7 +486,7 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data, > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > - drm_core_check_feature(dev, DRIVER_MODESET)) > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > diff --git a/drivers/gpu/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c > index ea481800ef56..3f83e2ca80ad 100644 > --- a/drivers/gpu/drm/drm_dma.c > +++ b/drivers/gpu/drm/drm_dma.c > @@ -50,9 +50,8 @@ int drm_legacy_dma_setup(struct drm_device *dev) > int i; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > - drm_core_check_feature(dev, DRIVER_MODESET)) { > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return 0; > - } > > dev->buf_use = 0; > atomic_set(&dev->buf_alloc, 0); > @@ -81,9 +80,8 @@ void drm_legacy_dma_takedown(struct drm_device *dev) > int i, j; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > - drm_core_check_feature(dev, DRIVER_MODESET)) { > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > return; > - } > > if (!dma) > return; > diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c > index 323c238fcac7..036cd275c53e 100644 > --- a/drivers/gpu/drm/drm_fops.c > +++ b/drivers/gpu/drm/drm_fops.c > @@ -92,7 +92,7 @@ static int drm_setup(struct drm_device * dev) > int ret; > > if (dev->driver->firstopen && > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > ret = dev->driver->firstopen(dev); > if (ret != 0) > return ret; > @@ -346,7 +346,7 @@ void drm_lastclose(struct drm_device * dev) > dev->driver->lastclose(dev); > DRM_DEBUG("driver lastclose completed\n"); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > drm_legacy_dev_reinit(dev); > } > > @@ -389,7 +389,7 @@ int drm_release(struct inode *inode, struct file *filp) > (long)old_encode_dev(file_priv->minor->kdev->devt), > dev->open_count); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > drm_legacy_lock_release(dev, filp); > > if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > index 5085fd90f74d..0663a92922a8 100644 > --- a/drivers/gpu/drm/drm_ioctl.c > +++ b/drivers/gpu/drm/drm_ioctl.c > @@ -714,9 +714,9 @@ long drm_ioctl(struct file *filp, > if (ksize > in_size) > memset(kdata + in_size, 0, ksize - in_size); > > - /* Enforce sane locking for kms driver ioctls. Core ioctls are > + /* Enforce sane locking for modern driver ioctls. Core ioctls are > * too messy still. */ > - if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || > + if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) || > (ioctl->flags & DRM_UNLOCKED)) > retcode = func(dev, kdata, file_priv); > else { > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > index a33465d8e133..d6d022b7c29b 100644 > --- a/drivers/gpu/drm/drm_irq.c > +++ b/drivers/gpu/drm/drm_irq.c > @@ -482,7 +482,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > return ret; > } > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL); > > /* After installing handler */ > @@ -491,7 +491,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > > if (ret < 0) { > dev->irq_enabled = false; > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > vga_client_register(dev->pdev, NULL, NULL, NULL); > free_irq(irq, dev); > } else { > @@ -557,7 +557,7 @@ int drm_irq_uninstall(struct drm_device *dev) > > DRM_DEBUG("irq=%d\n", dev->irq); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > vga_client_register(dev->pdev, NULL, NULL, NULL); > > if (dev->driver->irq_uninstall) > @@ -592,7 +592,7 @@ int drm_control(struct drm_device *dev, void *data, > > if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) > return 0; > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return 0; > /* UMS was only ever supported on pci devices. */ > if (WARN_ON(!dev->pdev)) > @@ -1488,7 +1488,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, > return 0; > > /* KMS drivers handle this internally */ > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return 0; > > pipe = modeset->crtc; > diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c > index 48ac0ebbd663..c901f3c5b269 100644 > --- a/drivers/gpu/drm/drm_lock.c > +++ b/drivers/gpu/drm/drm_lock.c > @@ -163,7 +163,7 @@ int drm_legacy_lock(struct drm_device *dev, void *data, > struct drm_master *master = file_priv->master; > int ret = 0; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > ++file_priv->lock_count; > @@ -252,7 +252,7 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_ > struct drm_lock *lock = data; > struct drm_master *master = file_priv->master; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (lock->context == DRM_KERNEL_CONTEXT) { > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index b2f8f1062d5f..d86362fc8ac6 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -175,7 +175,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data, > { > struct drm_irq_busid *p = data; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > /* UMS was only ever support on PCI devices. */ > @@ -263,7 +263,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > > /* No locking needed since shadow-attach is single-threaded since it may > * only be called from the per-driver module init hook. */ > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list); > > return 0; > @@ -299,7 +299,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) > > DRM_DEBUG("\n"); > > - if (driver->driver_features & DRIVER_MODESET) > + if (!(driver->driver_features & DRIVER_LEGACY)) > return pci_register_driver(pdriver); > > /* If not using KMS, fall back to stealth mode manual scanning. */ > @@ -421,7 +421,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) > struct drm_device *dev, *tmp; > DRM_DEBUG("\n"); > > - if (driver->driver_features & DRIVER_MODESET) { > + if (!(driver->driver_features & DRIVER_LEGACY)) { > pci_unregister_driver(pdriver); > } else { > list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, > diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c > index bf70431073f6..275bca44f38c 100644 > --- a/drivers/gpu/drm/drm_scatter.c > +++ b/drivers/gpu/drm/drm_scatter.c > @@ -68,7 +68,7 @@ static void drm_sg_cleanup(struct drm_sg_mem * entry) > void drm_legacy_sg_cleanup(struct drm_device *dev) > { > if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > drm_sg_cleanup(dev->sg); > dev->sg = NULL; > } > @@ -88,7 +88,7 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data, > > DRM_DEBUG("\n"); > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_SG)) > @@ -201,7 +201,7 @@ int drm_legacy_sg_free(struct drm_device *dev, void *data, > struct drm_scatter_gather *request = data; > struct drm_sg_mem *entry; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_SG))
On Thu, Aug 04, 2016 at 08:37:49AM +0100, Frank Binns wrote: > On 03/08/16 20:11, Daniel Vetter wrote: > > Except for nouveau, only legacy drivers need this really. And nouveau > > is already marked up with DRIVER_KMS_LEGACY_CONTEXT as the special > > case. > > > > I've tried to be careful to leave everything related to modeset still > > using the DRIVER_MODESET flag. Otherwise it's a direct replacement of > > !DRIVER_MODESET with DRIVER_LEGACY checks. Also helps readability > > since fewer negative checks overall. > > > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > > I don't think this goes far enough. For example, the documentation > for the 'firstopen' callback says that it's called for legacy UMS drivers > but it does a check based on DRIVER_MODESET. There are also some > places in drm_pci.c that should be changed as well. I switched the check for firstopen from DRIVER_MODESET to DRIVER_LEGACY. And which hook in drm_pci.c should be converted in your opinion? -Daniel > > Anyway, this is progress so: > Reviewed-by: Frank Binns <frank.binns@imgtec.com> > > > --- > > drivers/gpu/drm/drm_agpsupport.c | 6 ++---- > > drivers/gpu/drm/drm_auth.c | 2 +- > > drivers/gpu/drm/drm_bufs.c | 22 +++++++++++----------- > > drivers/gpu/drm/drm_context.c | 24 ++++++++++++------------ > > drivers/gpu/drm/drm_dma.c | 6 ++---- > > drivers/gpu/drm/drm_fops.c | 6 +++--- > > drivers/gpu/drm/drm_ioctl.c | 4 ++-- > > drivers/gpu/drm/drm_irq.c | 10 +++++----- > > drivers/gpu/drm/drm_lock.c | 4 ++-- > > drivers/gpu/drm/drm_pci.c | 8 ++++---- > > drivers/gpu/drm/drm_scatter.c | 6 +++--- > > 11 files changed, 47 insertions(+), 51 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c > > index 605bd243fb36..d621c8a4cf00 100644 > > --- a/drivers/gpu/drm/drm_agpsupport.c > > +++ b/drivers/gpu/drm/drm_agpsupport.c > > @@ -430,9 +430,7 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) > > * intact so it can still be used. It is safe to call this if AGP is disabled or > > * was already removed. > > * > > - * If DRIVER_MODESET is active, nothing is done to protect the modesetting > > - * resources from getting destroyed. Drivers are responsible of cleaning them up > > - * during device shutdown. > > + * Cleanup is only done for drivers who have DRIVER_LEGACY set. > > */ > > void drm_legacy_agp_clear(struct drm_device *dev) > > { > > @@ -440,7 +438,7 @@ void drm_legacy_agp_clear(struct drm_device *dev) > > if (!dev->agp) > > return; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { > > diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c > > index 4153e8a193af..6b143514a566 100644 > > --- a/drivers/gpu/drm/drm_auth.c > > +++ b/drivers/gpu/drm/drm_auth.c > > @@ -251,7 +251,7 @@ void drm_master_release(struct drm_file *file_priv) > > if (!drm_is_current_master(file_priv)) > > goto out; > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) { > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) { > > /* > > * Since the master is disappearing, so is the > > * possibility to lock. > > diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c > > index c3a12cd8bd0d..32191513e82d 100644 > > --- a/drivers/gpu/drm/drm_bufs.c > > +++ b/drivers/gpu/drm/drm_bufs.c > > @@ -397,7 +397,7 @@ int drm_legacy_addmap_ioctl(struct drm_device *dev, void *data, > > return -EPERM; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > err = drm_addmap_core(dev, map->offset, map->size, map->type, > > @@ -443,7 +443,7 @@ int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, > > int i; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > idx = map->offset; > > @@ -545,7 +545,7 @@ EXPORT_SYMBOL(drm_legacy_rmmap_locked); > > void drm_legacy_rmmap(struct drm_device *dev, struct drm_local_map *map) > > { > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > mutex_lock(&dev->struct_mutex); > > @@ -558,7 +558,7 @@ void drm_legacy_master_rmmaps(struct drm_device *dev, struct drm_master *master) > > { > > struct drm_map_list *r_list, *list_temp; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > mutex_lock(&dev->struct_mutex); > > @@ -595,7 +595,7 @@ int drm_legacy_rmmap_ioctl(struct drm_device *dev, void *data, > > int ret; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > > @@ -1220,7 +1220,7 @@ int drm_legacy_addbufs(struct drm_device *dev, void *data, > > struct drm_buf_desc *request = data; > > int ret; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > @@ -1266,7 +1266,7 @@ int drm_legacy_infobufs(struct drm_device *dev, void *data, > > int i; > > int count; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > @@ -1347,7 +1347,7 @@ int drm_legacy_markbufs(struct drm_device *dev, void *data, > > int order; > > struct drm_buf_entry *entry; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > @@ -1395,7 +1395,7 @@ int drm_legacy_freebufs(struct drm_device *dev, void *data, > > int idx; > > struct drm_buf *buf; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > @@ -1450,7 +1450,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > > struct drm_buf_map *request = data; > > int i; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > @@ -1530,7 +1530,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > > int drm_legacy_dma_ioctl(struct drm_device *dev, void *data, > > struct drm_file *file_priv) > > { > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (dev->driver->dma_ioctl) > > diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c > > index 192a5f9eeb74..3c4000facb36 100644 > > --- a/drivers/gpu/drm/drm_context.c > > +++ b/drivers/gpu/drm/drm_context.c > > @@ -54,7 +54,7 @@ struct drm_ctx_list { > > void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle) > > { > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > mutex_lock(&dev->struct_mutex); > > @@ -92,7 +92,7 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev) > > void drm_legacy_ctxbitmap_init(struct drm_device * dev) > > { > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > idr_init(&dev->ctx_idr); > > @@ -109,7 +109,7 @@ void drm_legacy_ctxbitmap_init(struct drm_device * dev) > > void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev) > > { > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > mutex_lock(&dev->struct_mutex); > > @@ -131,7 +131,7 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) > > struct drm_ctx_list *pos, *tmp; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > mutex_lock(&dev->ctxlist_mutex); > > @@ -177,7 +177,7 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data, > > struct drm_map_list *_entry; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > > @@ -225,7 +225,7 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data, > > struct drm_map_list *r_list = NULL; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > mutex_lock(&dev->struct_mutex); > > @@ -329,7 +329,7 @@ int drm_legacy_resctx(struct drm_device *dev, void *data, > > int i; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (res->count >= DRM_RESERVED_CONTEXTS) { > > @@ -363,7 +363,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data, > > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > ctx->handle = drm_legacy_ctxbitmap_next(dev); > > @@ -410,7 +410,7 @@ int drm_legacy_getctx(struct drm_device *dev, void *data, > > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > /* This is 0, because we don't handle any context flags */ > > @@ -436,7 +436,7 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data, > > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > > @@ -460,7 +460,7 @@ int drm_legacy_newctx(struct drm_device *dev, void *data, > > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > > @@ -486,7 +486,7 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data, > > struct drm_ctx *ctx = data; > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > DRM_DEBUG("%d\n", ctx->handle); > > diff --git a/drivers/gpu/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c > > index ea481800ef56..3f83e2ca80ad 100644 > > --- a/drivers/gpu/drm/drm_dma.c > > +++ b/drivers/gpu/drm/drm_dma.c > > @@ -50,9 +50,8 @@ int drm_legacy_dma_setup(struct drm_device *dev) > > int i; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > > - drm_core_check_feature(dev, DRIVER_MODESET)) { > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return 0; > > - } > > dev->buf_use = 0; > > atomic_set(&dev->buf_alloc, 0); > > @@ -81,9 +80,8 @@ void drm_legacy_dma_takedown(struct drm_device *dev) > > int i, j; > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > > - drm_core_check_feature(dev, DRIVER_MODESET)) { > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > return; > > - } > > if (!dma) > > return; > > diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c > > index 323c238fcac7..036cd275c53e 100644 > > --- a/drivers/gpu/drm/drm_fops.c > > +++ b/drivers/gpu/drm/drm_fops.c > > @@ -92,7 +92,7 @@ static int drm_setup(struct drm_device * dev) > > int ret; > > if (dev->driver->firstopen && > > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > > ret = dev->driver->firstopen(dev); > > if (ret != 0) > > return ret; > > @@ -346,7 +346,7 @@ void drm_lastclose(struct drm_device * dev) > > dev->driver->lastclose(dev); > > DRM_DEBUG("driver lastclose completed\n"); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > drm_legacy_dev_reinit(dev); > > } > > @@ -389,7 +389,7 @@ int drm_release(struct inode *inode, struct file *filp) > > (long)old_encode_dev(file_priv->minor->kdev->devt), > > dev->open_count); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > drm_legacy_lock_release(dev, filp); > > if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > > index 5085fd90f74d..0663a92922a8 100644 > > --- a/drivers/gpu/drm/drm_ioctl.c > > +++ b/drivers/gpu/drm/drm_ioctl.c > > @@ -714,9 +714,9 @@ long drm_ioctl(struct file *filp, > > if (ksize > in_size) > > memset(kdata + in_size, 0, ksize - in_size); > > - /* Enforce sane locking for kms driver ioctls. Core ioctls are > > + /* Enforce sane locking for modern driver ioctls. Core ioctls are > > * too messy still. */ > > - if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || > > + if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) || > > (ioctl->flags & DRM_UNLOCKED)) > > retcode = func(dev, kdata, file_priv); > > else { > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > > index a33465d8e133..d6d022b7c29b 100644 > > --- a/drivers/gpu/drm/drm_irq.c > > +++ b/drivers/gpu/drm/drm_irq.c > > @@ -482,7 +482,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > > return ret; > > } > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL); > > /* After installing handler */ > > @@ -491,7 +491,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > > if (ret < 0) { > > dev->irq_enabled = false; > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > vga_client_register(dev->pdev, NULL, NULL, NULL); > > free_irq(irq, dev); > > } else { > > @@ -557,7 +557,7 @@ int drm_irq_uninstall(struct drm_device *dev) > > DRM_DEBUG("irq=%d\n", dev->irq); > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > vga_client_register(dev->pdev, NULL, NULL, NULL); > > if (dev->driver->irq_uninstall) > > @@ -592,7 +592,7 @@ int drm_control(struct drm_device *dev, void *data, > > if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) > > return 0; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return 0; > > /* UMS was only ever supported on pci devices. */ > > if (WARN_ON(!dev->pdev)) > > @@ -1488,7 +1488,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, > > return 0; > > /* KMS drivers handle this internally */ > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return 0; > > pipe = modeset->crtc; > > diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c > > index 48ac0ebbd663..c901f3c5b269 100644 > > --- a/drivers/gpu/drm/drm_lock.c > > +++ b/drivers/gpu/drm/drm_lock.c > > @@ -163,7 +163,7 @@ int drm_legacy_lock(struct drm_device *dev, void *data, > > struct drm_master *master = file_priv->master; > > int ret = 0; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > ++file_priv->lock_count; > > @@ -252,7 +252,7 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_ > > struct drm_lock *lock = data; > > struct drm_master *master = file_priv->master; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (lock->context == DRM_KERNEL_CONTEXT) { > > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > > index b2f8f1062d5f..d86362fc8ac6 100644 > > --- a/drivers/gpu/drm/drm_pci.c > > +++ b/drivers/gpu/drm/drm_pci.c > > @@ -175,7 +175,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data, > > { > > struct drm_irq_busid *p = data; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > /* UMS was only ever support on PCI devices. */ > > @@ -263,7 +263,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > > /* No locking needed since shadow-attach is single-threaded since it may > > * only be called from the per-driver module init hook. */ > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list); > > return 0; > > @@ -299,7 +299,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) > > DRM_DEBUG("\n"); > > - if (driver->driver_features & DRIVER_MODESET) > > + if (!(driver->driver_features & DRIVER_LEGACY)) > > return pci_register_driver(pdriver); > > /* If not using KMS, fall back to stealth mode manual scanning. */ > > @@ -421,7 +421,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) > > struct drm_device *dev, *tmp; > > DRM_DEBUG("\n"); > > - if (driver->driver_features & DRIVER_MODESET) { > > + if (!(driver->driver_features & DRIVER_LEGACY)) { > > pci_unregister_driver(pdriver); > > } else { > > list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, > > diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c > > index bf70431073f6..275bca44f38c 100644 > > --- a/drivers/gpu/drm/drm_scatter.c > > +++ b/drivers/gpu/drm/drm_scatter.c > > @@ -68,7 +68,7 @@ static void drm_sg_cleanup(struct drm_sg_mem * entry) > > void drm_legacy_sg_cleanup(struct drm_device *dev) > > { > > if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && > > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > > drm_sg_cleanup(dev->sg); > > dev->sg = NULL; > > } > > @@ -88,7 +88,7 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data, > > DRM_DEBUG("\n"); > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_SG)) > > @@ -201,7 +201,7 @@ int drm_legacy_sg_free(struct drm_device *dev, void *data, > > struct drm_scatter_gather *request = data; > > struct drm_sg_mem *entry; > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > return -EINVAL; > > if (!drm_core_check_feature(dev, DRIVER_SG)) >
On 04/08/16 09:20, Daniel Vetter wrote: > On Thu, Aug 04, 2016 at 08:37:49AM +0100, Frank Binns wrote: >> On 03/08/16 20:11, Daniel Vetter wrote: >>> Except for nouveau, only legacy drivers need this really. And nouveau >>> is already marked up with DRIVER_KMS_LEGACY_CONTEXT as the special >>> case. >>> >>> I've tried to be careful to leave everything related to modeset still >>> using the DRIVER_MODESET flag. Otherwise it's a direct replacement of >>> !DRIVER_MODESET with DRIVER_LEGACY checks. Also helps readability >>> since fewer negative checks overall. >>> >>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> >> I don't think this goes far enough. For example, the documentation >> for the 'firstopen' callback says that it's called for legacy UMS drivers >> but it does a check based on DRIVER_MODESET. There are also some >> places in drm_pci.c that should be changed as well. > I switched the check for firstopen from DRIVER_MODESET to DRIVER_LEGACY. > And which hook in drm_pci.c should be converted in your opinion? > -Daniel Whoops, I read the patch without having had my morning coffee (at least that's my excuse). Sorry for the noise. >> Anyway, this is progress so: >> Reviewed-by: Frank Binns <frank.binns@imgtec.com> >> >>> --- >>> drivers/gpu/drm/drm_agpsupport.c | 6 ++---- >>> drivers/gpu/drm/drm_auth.c | 2 +- >>> drivers/gpu/drm/drm_bufs.c | 22 +++++++++++----------- >>> drivers/gpu/drm/drm_context.c | 24 ++++++++++++------------ >>> drivers/gpu/drm/drm_dma.c | 6 ++---- >>> drivers/gpu/drm/drm_fops.c | 6 +++--- >>> drivers/gpu/drm/drm_ioctl.c | 4 ++-- >>> drivers/gpu/drm/drm_irq.c | 10 +++++----- >>> drivers/gpu/drm/drm_lock.c | 4 ++-- >>> drivers/gpu/drm/drm_pci.c | 8 ++++---- >>> drivers/gpu/drm/drm_scatter.c | 6 +++--- >>> 11 files changed, 47 insertions(+), 51 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c >>> index 605bd243fb36..d621c8a4cf00 100644 >>> --- a/drivers/gpu/drm/drm_agpsupport.c >>> +++ b/drivers/gpu/drm/drm_agpsupport.c >>> @@ -430,9 +430,7 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) >>> * intact so it can still be used. It is safe to call this if AGP is disabled or >>> * was already removed. >>> * >>> - * If DRIVER_MODESET is active, nothing is done to protect the modesetting >>> - * resources from getting destroyed. Drivers are responsible of cleaning them up >>> - * during device shutdown. >>> + * Cleanup is only done for drivers who have DRIVER_LEGACY set. >>> */ >>> void drm_legacy_agp_clear(struct drm_device *dev) >>> { >>> @@ -440,7 +438,7 @@ void drm_legacy_agp_clear(struct drm_device *dev) >>> if (!dev->agp) >>> return; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { >>> diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c >>> index 4153e8a193af..6b143514a566 100644 >>> --- a/drivers/gpu/drm/drm_auth.c >>> +++ b/drivers/gpu/drm/drm_auth.c >>> @@ -251,7 +251,7 @@ void drm_master_release(struct drm_file *file_priv) >>> if (!drm_is_current_master(file_priv)) >>> goto out; >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) { >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) { >>> /* >>> * Since the master is disappearing, so is the >>> * possibility to lock. >>> diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c >>> index c3a12cd8bd0d..32191513e82d 100644 >>> --- a/drivers/gpu/drm/drm_bufs.c >>> +++ b/drivers/gpu/drm/drm_bufs.c >>> @@ -397,7 +397,7 @@ int drm_legacy_addmap_ioctl(struct drm_device *dev, void *data, >>> return -EPERM; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> err = drm_addmap_core(dev, map->offset, map->size, map->type, >>> @@ -443,7 +443,7 @@ int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, >>> int i; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> idx = map->offset; >>> @@ -545,7 +545,7 @@ EXPORT_SYMBOL(drm_legacy_rmmap_locked); >>> void drm_legacy_rmmap(struct drm_device *dev, struct drm_local_map *map) >>> { >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> mutex_lock(&dev->struct_mutex); >>> @@ -558,7 +558,7 @@ void drm_legacy_master_rmmaps(struct drm_device *dev, struct drm_master *master) >>> { >>> struct drm_map_list *r_list, *list_temp; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> mutex_lock(&dev->struct_mutex); >>> @@ -595,7 +595,7 @@ int drm_legacy_rmmap_ioctl(struct drm_device *dev, void *data, >>> int ret; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> mutex_lock(&dev->struct_mutex); >>> @@ -1220,7 +1220,7 @@ int drm_legacy_addbufs(struct drm_device *dev, void *data, >>> struct drm_buf_desc *request = data; >>> int ret; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) >>> @@ -1266,7 +1266,7 @@ int drm_legacy_infobufs(struct drm_device *dev, void *data, >>> int i; >>> int count; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) >>> @@ -1347,7 +1347,7 @@ int drm_legacy_markbufs(struct drm_device *dev, void *data, >>> int order; >>> struct drm_buf_entry *entry; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) >>> @@ -1395,7 +1395,7 @@ int drm_legacy_freebufs(struct drm_device *dev, void *data, >>> int idx; >>> struct drm_buf *buf; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) >>> @@ -1450,7 +1450,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, >>> struct drm_buf_map *request = data; >>> int i; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) >>> @@ -1530,7 +1530,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, >>> int drm_legacy_dma_ioctl(struct drm_device *dev, void *data, >>> struct drm_file *file_priv) >>> { >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (dev->driver->dma_ioctl) >>> diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c >>> index 192a5f9eeb74..3c4000facb36 100644 >>> --- a/drivers/gpu/drm/drm_context.c >>> +++ b/drivers/gpu/drm/drm_context.c >>> @@ -54,7 +54,7 @@ struct drm_ctx_list { >>> void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle) >>> { >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> mutex_lock(&dev->struct_mutex); >>> @@ -92,7 +92,7 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev) >>> void drm_legacy_ctxbitmap_init(struct drm_device * dev) >>> { >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> idr_init(&dev->ctx_idr); >>> @@ -109,7 +109,7 @@ void drm_legacy_ctxbitmap_init(struct drm_device * dev) >>> void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev) >>> { >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> mutex_lock(&dev->struct_mutex); >>> @@ -131,7 +131,7 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) >>> struct drm_ctx_list *pos, *tmp; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> mutex_lock(&dev->ctxlist_mutex); >>> @@ -177,7 +177,7 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data, >>> struct drm_map_list *_entry; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> mutex_lock(&dev->struct_mutex); >>> @@ -225,7 +225,7 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data, >>> struct drm_map_list *r_list = NULL; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> mutex_lock(&dev->struct_mutex); >>> @@ -329,7 +329,7 @@ int drm_legacy_resctx(struct drm_device *dev, void *data, >>> int i; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (res->count >= DRM_RESERVED_CONTEXTS) { >>> @@ -363,7 +363,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data, >>> struct drm_ctx *ctx = data; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> ctx->handle = drm_legacy_ctxbitmap_next(dev); >>> @@ -410,7 +410,7 @@ int drm_legacy_getctx(struct drm_device *dev, void *data, >>> struct drm_ctx *ctx = data; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> /* This is 0, because we don't handle any context flags */ >>> @@ -436,7 +436,7 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data, >>> struct drm_ctx *ctx = data; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> DRM_DEBUG("%d\n", ctx->handle); >>> @@ -460,7 +460,7 @@ int drm_legacy_newctx(struct drm_device *dev, void *data, >>> struct drm_ctx *ctx = data; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> DRM_DEBUG("%d\n", ctx->handle); >>> @@ -486,7 +486,7 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data, >>> struct drm_ctx *ctx = data; >>> if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && >>> - drm_core_check_feature(dev, DRIVER_MODESET)) >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> DRM_DEBUG("%d\n", ctx->handle); >>> diff --git a/drivers/gpu/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c >>> index ea481800ef56..3f83e2ca80ad 100644 >>> --- a/drivers/gpu/drm/drm_dma.c >>> +++ b/drivers/gpu/drm/drm_dma.c >>> @@ -50,9 +50,8 @@ int drm_legacy_dma_setup(struct drm_device *dev) >>> int i; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || >>> - drm_core_check_feature(dev, DRIVER_MODESET)) { >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return 0; >>> - } >>> dev->buf_use = 0; >>> atomic_set(&dev->buf_alloc, 0); >>> @@ -81,9 +80,8 @@ void drm_legacy_dma_takedown(struct drm_device *dev) >>> int i, j; >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || >>> - drm_core_check_feature(dev, DRIVER_MODESET)) { >>> + !drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return; >>> - } >>> if (!dma) >>> return; >>> diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c >>> index 323c238fcac7..036cd275c53e 100644 >>> --- a/drivers/gpu/drm/drm_fops.c >>> +++ b/drivers/gpu/drm/drm_fops.c >>> @@ -92,7 +92,7 @@ static int drm_setup(struct drm_device * dev) >>> int ret; >>> if (dev->driver->firstopen && >>> - !drm_core_check_feature(dev, DRIVER_MODESET)) { >>> + drm_core_check_feature(dev, DRIVER_LEGACY)) { >>> ret = dev->driver->firstopen(dev); >>> if (ret != 0) >>> return ret; >>> @@ -346,7 +346,7 @@ void drm_lastclose(struct drm_device * dev) >>> dev->driver->lastclose(dev); >>> DRM_DEBUG("driver lastclose completed\n"); >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) >>> drm_legacy_dev_reinit(dev); >>> } >>> @@ -389,7 +389,7 @@ int drm_release(struct inode *inode, struct file *filp) >>> (long)old_encode_dev(file_priv->minor->kdev->devt), >>> dev->open_count); >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) >>> drm_legacy_lock_release(dev, filp); >>> if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) >>> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c >>> index 5085fd90f74d..0663a92922a8 100644 >>> --- a/drivers/gpu/drm/drm_ioctl.c >>> +++ b/drivers/gpu/drm/drm_ioctl.c >>> @@ -714,9 +714,9 @@ long drm_ioctl(struct file *filp, >>> if (ksize > in_size) >>> memset(kdata + in_size, 0, ksize - in_size); >>> - /* Enforce sane locking for kms driver ioctls. Core ioctls are >>> + /* Enforce sane locking for modern driver ioctls. Core ioctls are >>> * too messy still. */ >>> - if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || >>> + if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) || >>> (ioctl->flags & DRM_UNLOCKED)) >>> retcode = func(dev, kdata, file_priv); >>> else { >>> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c >>> index a33465d8e133..d6d022b7c29b 100644 >>> --- a/drivers/gpu/drm/drm_irq.c >>> +++ b/drivers/gpu/drm/drm_irq.c >>> @@ -482,7 +482,7 @@ int drm_irq_install(struct drm_device *dev, int irq) >>> return ret; >>> } >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) >>> vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL); >>> /* After installing handler */ >>> @@ -491,7 +491,7 @@ int drm_irq_install(struct drm_device *dev, int irq) >>> if (ret < 0) { >>> dev->irq_enabled = false; >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) >>> vga_client_register(dev->pdev, NULL, NULL, NULL); >>> free_irq(irq, dev); >>> } else { >>> @@ -557,7 +557,7 @@ int drm_irq_uninstall(struct drm_device *dev) >>> DRM_DEBUG("irq=%d\n", dev->irq); >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) >>> vga_client_register(dev->pdev, NULL, NULL, NULL); >>> if (dev->driver->irq_uninstall) >>> @@ -592,7 +592,7 @@ int drm_control(struct drm_device *dev, void *data, >>> if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) >>> return 0; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return 0; >>> /* UMS was only ever supported on pci devices. */ >>> if (WARN_ON(!dev->pdev)) >>> @@ -1488,7 +1488,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, >>> return 0; >>> /* KMS drivers handle this internally */ >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return 0; >>> pipe = modeset->crtc; >>> diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c >>> index 48ac0ebbd663..c901f3c5b269 100644 >>> --- a/drivers/gpu/drm/drm_lock.c >>> +++ b/drivers/gpu/drm/drm_lock.c >>> @@ -163,7 +163,7 @@ int drm_legacy_lock(struct drm_device *dev, void *data, >>> struct drm_master *master = file_priv->master; >>> int ret = 0; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> ++file_priv->lock_count; >>> @@ -252,7 +252,7 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_ >>> struct drm_lock *lock = data; >>> struct drm_master *master = file_priv->master; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (lock->context == DRM_KERNEL_CONTEXT) { >>> diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c >>> index b2f8f1062d5f..d86362fc8ac6 100644 >>> --- a/drivers/gpu/drm/drm_pci.c >>> +++ b/drivers/gpu/drm/drm_pci.c >>> @@ -175,7 +175,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data, >>> { >>> struct drm_irq_busid *p = data; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> /* UMS was only ever support on PCI devices. */ >>> @@ -263,7 +263,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, >>> /* No locking needed since shadow-attach is single-threaded since it may >>> * only be called from the per-driver module init hook. */ >>> - if (!drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (drm_core_check_feature(dev, DRIVER_LEGACY)) >>> list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list); >>> return 0; >>> @@ -299,7 +299,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) >>> DRM_DEBUG("\n"); >>> - if (driver->driver_features & DRIVER_MODESET) >>> + if (!(driver->driver_features & DRIVER_LEGACY)) >>> return pci_register_driver(pdriver); >>> /* If not using KMS, fall back to stealth mode manual scanning. */ >>> @@ -421,7 +421,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) >>> struct drm_device *dev, *tmp; >>> DRM_DEBUG("\n"); >>> - if (driver->driver_features & DRIVER_MODESET) { >>> + if (!(driver->driver_features & DRIVER_LEGACY)) { >>> pci_unregister_driver(pdriver); >>> } else { >>> list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, >>> diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c >>> index bf70431073f6..275bca44f38c 100644 >>> --- a/drivers/gpu/drm/drm_scatter.c >>> +++ b/drivers/gpu/drm/drm_scatter.c >>> @@ -68,7 +68,7 @@ static void drm_sg_cleanup(struct drm_sg_mem * entry) >>> void drm_legacy_sg_cleanup(struct drm_device *dev) >>> { >>> if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && >>> - !drm_core_check_feature(dev, DRIVER_MODESET)) { >>> + drm_core_check_feature(dev, DRIVER_LEGACY)) { >>> drm_sg_cleanup(dev->sg); >>> dev->sg = NULL; >>> } >>> @@ -88,7 +88,7 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data, >>> DRM_DEBUG("\n"); >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_SG)) >>> @@ -201,7 +201,7 @@ int drm_legacy_sg_free(struct drm_device *dev, void *data, >>> struct drm_scatter_gather *request = data; >>> struct drm_sg_mem *entry; >>> - if (drm_core_check_feature(dev, DRIVER_MODESET)) >>> + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) >>> return -EINVAL; >>> if (!drm_core_check_feature(dev, DRIVER_SG))
On Thu, Aug 04, 2016 at 09:36:36AM +0100, Frank Binns wrote: > On 04/08/16 09:20, Daniel Vetter wrote: > > On Thu, Aug 04, 2016 at 08:37:49AM +0100, Frank Binns wrote: > > > On 03/08/16 20:11, Daniel Vetter wrote: > > > > Except for nouveau, only legacy drivers need this really. And nouveau > > > > is already marked up with DRIVER_KMS_LEGACY_CONTEXT as the special > > > > case. > > > > > > > > I've tried to be careful to leave everything related to modeset still > > > > using the DRIVER_MODESET flag. Otherwise it's a direct replacement of > > > > !DRIVER_MODESET with DRIVER_LEGACY checks. Also helps readability > > > > since fewer negative checks overall. > > > > > > > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > > > I don't think this goes far enough. For example, the documentation > > > for the 'firstopen' callback says that it's called for legacy UMS drivers > > > but it does a check based on DRIVER_MODESET. There are also some > > > places in drm_pci.c that should be changed as well. > > I switched the check for firstopen from DRIVER_MODESET to DRIVER_LEGACY. > > And which hook in drm_pci.c should be converted in your opinion? > > -Daniel > > Whoops, I read the patch without having had my morning coffee > (at least that's my excuse). > > Sorry for the noise. No worries, and thx for the review, both in my -misc queue now. -Daniel > > > > Anyway, this is progress so: > > > Reviewed-by: Frank Binns <frank.binns@imgtec.com> > > > > > > > --- > > > > drivers/gpu/drm/drm_agpsupport.c | 6 ++---- > > > > drivers/gpu/drm/drm_auth.c | 2 +- > > > > drivers/gpu/drm/drm_bufs.c | 22 +++++++++++----------- > > > > drivers/gpu/drm/drm_context.c | 24 ++++++++++++------------ > > > > drivers/gpu/drm/drm_dma.c | 6 ++---- > > > > drivers/gpu/drm/drm_fops.c | 6 +++--- > > > > drivers/gpu/drm/drm_ioctl.c | 4 ++-- > > > > drivers/gpu/drm/drm_irq.c | 10 +++++----- > > > > drivers/gpu/drm/drm_lock.c | 4 ++-- > > > > drivers/gpu/drm/drm_pci.c | 8 ++++---- > > > > drivers/gpu/drm/drm_scatter.c | 6 +++--- > > > > 11 files changed, 47 insertions(+), 51 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c > > > > index 605bd243fb36..d621c8a4cf00 100644 > > > > --- a/drivers/gpu/drm/drm_agpsupport.c > > > > +++ b/drivers/gpu/drm/drm_agpsupport.c > > > > @@ -430,9 +430,7 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) > > > > * intact so it can still be used. It is safe to call this if AGP is disabled or > > > > * was already removed. > > > > * > > > > - * If DRIVER_MODESET is active, nothing is done to protect the modesetting > > > > - * resources from getting destroyed. Drivers are responsible of cleaning them up > > > > - * during device shutdown. > > > > + * Cleanup is only done for drivers who have DRIVER_LEGACY set. > > > > */ > > > > void drm_legacy_agp_clear(struct drm_device *dev) > > > > { > > > > @@ -440,7 +438,7 @@ void drm_legacy_agp_clear(struct drm_device *dev) > > > > if (!dev->agp) > > > > return; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { > > > > diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c > > > > index 4153e8a193af..6b143514a566 100644 > > > > --- a/drivers/gpu/drm/drm_auth.c > > > > +++ b/drivers/gpu/drm/drm_auth.c > > > > @@ -251,7 +251,7 @@ void drm_master_release(struct drm_file *file_priv) > > > > if (!drm_is_current_master(file_priv)) > > > > goto out; > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) { > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) { > > > > /* > > > > * Since the master is disappearing, so is the > > > > * possibility to lock. > > > > diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c > > > > index c3a12cd8bd0d..32191513e82d 100644 > > > > --- a/drivers/gpu/drm/drm_bufs.c > > > > +++ b/drivers/gpu/drm/drm_bufs.c > > > > @@ -397,7 +397,7 @@ int drm_legacy_addmap_ioctl(struct drm_device *dev, void *data, > > > > return -EPERM; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > err = drm_addmap_core(dev, map->offset, map->size, map->type, > > > > @@ -443,7 +443,7 @@ int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, > > > > int i; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > idx = map->offset; > > > > @@ -545,7 +545,7 @@ EXPORT_SYMBOL(drm_legacy_rmmap_locked); > > > > void drm_legacy_rmmap(struct drm_device *dev, struct drm_local_map *map) > > > > { > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -558,7 +558,7 @@ void drm_legacy_master_rmmaps(struct drm_device *dev, struct drm_master *master) > > > > { > > > > struct drm_map_list *r_list, *list_temp; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -595,7 +595,7 @@ int drm_legacy_rmmap_ioctl(struct drm_device *dev, void *data, > > > > int ret; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -1220,7 +1220,7 @@ int drm_legacy_addbufs(struct drm_device *dev, void *data, > > > > struct drm_buf_desc *request = data; > > > > int ret; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > > > @@ -1266,7 +1266,7 @@ int drm_legacy_infobufs(struct drm_device *dev, void *data, > > > > int i; > > > > int count; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > > > @@ -1347,7 +1347,7 @@ int drm_legacy_markbufs(struct drm_device *dev, void *data, > > > > int order; > > > > struct drm_buf_entry *entry; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > > > @@ -1395,7 +1395,7 @@ int drm_legacy_freebufs(struct drm_device *dev, void *data, > > > > int idx; > > > > struct drm_buf *buf; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > > > @@ -1450,7 +1450,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > > > > struct drm_buf_map *request = data; > > > > int i; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > > > @@ -1530,7 +1530,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, > > > > int drm_legacy_dma_ioctl(struct drm_device *dev, void *data, > > > > struct drm_file *file_priv) > > > > { > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (dev->driver->dma_ioctl) > > > > diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c > > > > index 192a5f9eeb74..3c4000facb36 100644 > > > > --- a/drivers/gpu/drm/drm_context.c > > > > +++ b/drivers/gpu/drm/drm_context.c > > > > @@ -54,7 +54,7 @@ struct drm_ctx_list { > > > > void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle) > > > > { > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -92,7 +92,7 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev) > > > > void drm_legacy_ctxbitmap_init(struct drm_device * dev) > > > > { > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > idr_init(&dev->ctx_idr); > > > > @@ -109,7 +109,7 @@ void drm_legacy_ctxbitmap_init(struct drm_device * dev) > > > > void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev) > > > > { > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -131,7 +131,7 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) > > > > struct drm_ctx_list *pos, *tmp; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > mutex_lock(&dev->ctxlist_mutex); > > > > @@ -177,7 +177,7 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data, > > > > struct drm_map_list *_entry; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -225,7 +225,7 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data, > > > > struct drm_map_list *r_list = NULL; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > mutex_lock(&dev->struct_mutex); > > > > @@ -329,7 +329,7 @@ int drm_legacy_resctx(struct drm_device *dev, void *data, > > > > int i; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (res->count >= DRM_RESERVED_CONTEXTS) { > > > > @@ -363,7 +363,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data, > > > > struct drm_ctx *ctx = data; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > ctx->handle = drm_legacy_ctxbitmap_next(dev); > > > > @@ -410,7 +410,7 @@ int drm_legacy_getctx(struct drm_device *dev, void *data, > > > > struct drm_ctx *ctx = data; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > /* This is 0, because we don't handle any context flags */ > > > > @@ -436,7 +436,7 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data, > > > > struct drm_ctx *ctx = data; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > DRM_DEBUG("%d\n", ctx->handle); > > > > @@ -460,7 +460,7 @@ int drm_legacy_newctx(struct drm_device *dev, void *data, > > > > struct drm_ctx *ctx = data; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > DRM_DEBUG("%d\n", ctx->handle); > > > > @@ -486,7 +486,7 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data, > > > > struct drm_ctx *ctx = data; > > > > if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > DRM_DEBUG("%d\n", ctx->handle); > > > > diff --git a/drivers/gpu/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c > > > > index ea481800ef56..3f83e2ca80ad 100644 > > > > --- a/drivers/gpu/drm/drm_dma.c > > > > +++ b/drivers/gpu/drm/drm_dma.c > > > > @@ -50,9 +50,8 @@ int drm_legacy_dma_setup(struct drm_device *dev) > > > > int i; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) { > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return 0; > > > > - } > > > > dev->buf_use = 0; > > > > atomic_set(&dev->buf_alloc, 0); > > > > @@ -81,9 +80,8 @@ void drm_legacy_dma_takedown(struct drm_device *dev) > > > > int i, j; > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || > > > > - drm_core_check_feature(dev, DRIVER_MODESET)) { > > > > + !drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return; > > > > - } > > > > if (!dma) > > > > return; > > > > diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c > > > > index 323c238fcac7..036cd275c53e 100644 > > > > --- a/drivers/gpu/drm/drm_fops.c > > > > +++ b/drivers/gpu/drm/drm_fops.c > > > > @@ -92,7 +92,7 @@ static int drm_setup(struct drm_device * dev) > > > > int ret; > > > > if (dev->driver->firstopen && > > > > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > > > > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > > > > ret = dev->driver->firstopen(dev); > > > > if (ret != 0) > > > > return ret; > > > > @@ -346,7 +346,7 @@ void drm_lastclose(struct drm_device * dev) > > > > dev->driver->lastclose(dev); > > > > DRM_DEBUG("driver lastclose completed\n"); > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > drm_legacy_dev_reinit(dev); > > > > } > > > > @@ -389,7 +389,7 @@ int drm_release(struct inode *inode, struct file *filp) > > > > (long)old_encode_dev(file_priv->minor->kdev->devt), > > > > dev->open_count); > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > drm_legacy_lock_release(dev, filp); > > > > if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) > > > > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > > > > index 5085fd90f74d..0663a92922a8 100644 > > > > --- a/drivers/gpu/drm/drm_ioctl.c > > > > +++ b/drivers/gpu/drm/drm_ioctl.c > > > > @@ -714,9 +714,9 @@ long drm_ioctl(struct file *filp, > > > > if (ksize > in_size) > > > > memset(kdata + in_size, 0, ksize - in_size); > > > > - /* Enforce sane locking for kms driver ioctls. Core ioctls are > > > > + /* Enforce sane locking for modern driver ioctls. Core ioctls are > > > > * too messy still. */ > > > > - if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || > > > > + if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) || > > > > (ioctl->flags & DRM_UNLOCKED)) > > > > retcode = func(dev, kdata, file_priv); > > > > else { > > > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > > > > index a33465d8e133..d6d022b7c29b 100644 > > > > --- a/drivers/gpu/drm/drm_irq.c > > > > +++ b/drivers/gpu/drm/drm_irq.c > > > > @@ -482,7 +482,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > > > > return ret; > > > > } > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL); > > > > /* After installing handler */ > > > > @@ -491,7 +491,7 @@ int drm_irq_install(struct drm_device *dev, int irq) > > > > if (ret < 0) { > > > > dev->irq_enabled = false; > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > vga_client_register(dev->pdev, NULL, NULL, NULL); > > > > free_irq(irq, dev); > > > > } else { > > > > @@ -557,7 +557,7 @@ int drm_irq_uninstall(struct drm_device *dev) > > > > DRM_DEBUG("irq=%d\n", dev->irq); > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > vga_client_register(dev->pdev, NULL, NULL, NULL); > > > > if (dev->driver->irq_uninstall) > > > > @@ -592,7 +592,7 @@ int drm_control(struct drm_device *dev, void *data, > > > > if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) > > > > return 0; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return 0; > > > > /* UMS was only ever supported on pci devices. */ > > > > if (WARN_ON(!dev->pdev)) > > > > @@ -1488,7 +1488,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, > > > > return 0; > > > > /* KMS drivers handle this internally */ > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return 0; > > > > pipe = modeset->crtc; > > > > diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c > > > > index 48ac0ebbd663..c901f3c5b269 100644 > > > > --- a/drivers/gpu/drm/drm_lock.c > > > > +++ b/drivers/gpu/drm/drm_lock.c > > > > @@ -163,7 +163,7 @@ int drm_legacy_lock(struct drm_device *dev, void *data, > > > > struct drm_master *master = file_priv->master; > > > > int ret = 0; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > ++file_priv->lock_count; > > > > @@ -252,7 +252,7 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_ > > > > struct drm_lock *lock = data; > > > > struct drm_master *master = file_priv->master; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (lock->context == DRM_KERNEL_CONTEXT) { > > > > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > > > > index b2f8f1062d5f..d86362fc8ac6 100644 > > > > --- a/drivers/gpu/drm/drm_pci.c > > > > +++ b/drivers/gpu/drm/drm_pci.c > > > > @@ -175,7 +175,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data, > > > > { > > > > struct drm_irq_busid *p = data; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > /* UMS was only ever support on PCI devices. */ > > > > @@ -263,7 +263,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > > > > /* No locking needed since shadow-attach is single-threaded since it may > > > > * only be called from the per-driver module init hook. */ > > > > - if (!drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list); > > > > return 0; > > > > @@ -299,7 +299,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) > > > > DRM_DEBUG("\n"); > > > > - if (driver->driver_features & DRIVER_MODESET) > > > > + if (!(driver->driver_features & DRIVER_LEGACY)) > > > > return pci_register_driver(pdriver); > > > > /* If not using KMS, fall back to stealth mode manual scanning. */ > > > > @@ -421,7 +421,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) > > > > struct drm_device *dev, *tmp; > > > > DRM_DEBUG("\n"); > > > > - if (driver->driver_features & DRIVER_MODESET) { > > > > + if (!(driver->driver_features & DRIVER_LEGACY)) { > > > > pci_unregister_driver(pdriver); > > > > } else { > > > > list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, > > > > diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c > > > > index bf70431073f6..275bca44f38c 100644 > > > > --- a/drivers/gpu/drm/drm_scatter.c > > > > +++ b/drivers/gpu/drm/drm_scatter.c > > > > @@ -68,7 +68,7 @@ static void drm_sg_cleanup(struct drm_sg_mem * entry) > > > > void drm_legacy_sg_cleanup(struct drm_device *dev) > > > > { > > > > if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && > > > > - !drm_core_check_feature(dev, DRIVER_MODESET)) { > > > > + drm_core_check_feature(dev, DRIVER_LEGACY)) { > > > > drm_sg_cleanup(dev->sg); > > > > dev->sg = NULL; > > > > } > > > > @@ -88,7 +88,7 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data, > > > > DRM_DEBUG("\n"); > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_SG)) > > > > @@ -201,7 +201,7 @@ int drm_legacy_sg_free(struct drm_device *dev, void *data, > > > > struct drm_scatter_gather *request = data; > > > > struct drm_sg_mem *entry; > > > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > > > > + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) > > > > return -EINVAL; > > > > if (!drm_core_check_feature(dev, DRIVER_SG)) >
diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c index 605bd243fb36..d621c8a4cf00 100644 --- a/drivers/gpu/drm/drm_agpsupport.c +++ b/drivers/gpu/drm/drm_agpsupport.c @@ -430,9 +430,7 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) * intact so it can still be used. It is safe to call this if AGP is disabled or * was already removed. * - * If DRIVER_MODESET is active, nothing is done to protect the modesetting - * resources from getting destroyed. Drivers are responsible of cleaning them up - * during device shutdown. + * Cleanup is only done for drivers who have DRIVER_LEGACY set. */ void drm_legacy_agp_clear(struct drm_device *dev) { @@ -440,7 +438,7 @@ void drm_legacy_agp_clear(struct drm_device *dev) if (!dev->agp) return; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return; list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c index 4153e8a193af..6b143514a566 100644 --- a/drivers/gpu/drm/drm_auth.c +++ b/drivers/gpu/drm/drm_auth.c @@ -251,7 +251,7 @@ void drm_master_release(struct drm_file *file_priv) if (!drm_is_current_master(file_priv)) goto out; - if (!drm_core_check_feature(dev, DRIVER_MODESET)) { + if (drm_core_check_feature(dev, DRIVER_LEGACY)) { /* * Since the master is disappearing, so is the * possibility to lock. diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c index c3a12cd8bd0d..32191513e82d 100644 --- a/drivers/gpu/drm/drm_bufs.c +++ b/drivers/gpu/drm/drm_bufs.c @@ -397,7 +397,7 @@ int drm_legacy_addmap_ioctl(struct drm_device *dev, void *data, return -EPERM; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; err = drm_addmap_core(dev, map->offset, map->size, map->type, @@ -443,7 +443,7 @@ int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, int i; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; idx = map->offset; @@ -545,7 +545,7 @@ EXPORT_SYMBOL(drm_legacy_rmmap_locked); void drm_legacy_rmmap(struct drm_device *dev, struct drm_local_map *map) { if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return; mutex_lock(&dev->struct_mutex); @@ -558,7 +558,7 @@ void drm_legacy_master_rmmaps(struct drm_device *dev, struct drm_master *master) { struct drm_map_list *r_list, *list_temp; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return; mutex_lock(&dev->struct_mutex); @@ -595,7 +595,7 @@ int drm_legacy_rmmap_ioctl(struct drm_device *dev, void *data, int ret; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; mutex_lock(&dev->struct_mutex); @@ -1220,7 +1220,7 @@ int drm_legacy_addbufs(struct drm_device *dev, void *data, struct drm_buf_desc *request = data; int ret; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) @@ -1266,7 +1266,7 @@ int drm_legacy_infobufs(struct drm_device *dev, void *data, int i; int count; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) @@ -1347,7 +1347,7 @@ int drm_legacy_markbufs(struct drm_device *dev, void *data, int order; struct drm_buf_entry *entry; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) @@ -1395,7 +1395,7 @@ int drm_legacy_freebufs(struct drm_device *dev, void *data, int idx; struct drm_buf *buf; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) @@ -1450,7 +1450,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, struct drm_buf_map *request = data; int i; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) @@ -1530,7 +1530,7 @@ int drm_legacy_mapbufs(struct drm_device *dev, void *data, int drm_legacy_dma_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (dev->driver->dma_ioctl) diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c index 192a5f9eeb74..3c4000facb36 100644 --- a/drivers/gpu/drm/drm_context.c +++ b/drivers/gpu/drm/drm_context.c @@ -54,7 +54,7 @@ struct drm_ctx_list { void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle) { if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return; mutex_lock(&dev->struct_mutex); @@ -92,7 +92,7 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev) void drm_legacy_ctxbitmap_init(struct drm_device * dev) { if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return; idr_init(&dev->ctx_idr); @@ -109,7 +109,7 @@ void drm_legacy_ctxbitmap_init(struct drm_device * dev) void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev) { if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return; mutex_lock(&dev->struct_mutex); @@ -131,7 +131,7 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) struct drm_ctx_list *pos, *tmp; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return; mutex_lock(&dev->ctxlist_mutex); @@ -177,7 +177,7 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data, struct drm_map_list *_entry; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; mutex_lock(&dev->struct_mutex); @@ -225,7 +225,7 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data, struct drm_map_list *r_list = NULL; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; mutex_lock(&dev->struct_mutex); @@ -329,7 +329,7 @@ int drm_legacy_resctx(struct drm_device *dev, void *data, int i; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (res->count >= DRM_RESERVED_CONTEXTS) { @@ -363,7 +363,7 @@ int drm_legacy_addctx(struct drm_device *dev, void *data, struct drm_ctx *ctx = data; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; ctx->handle = drm_legacy_ctxbitmap_next(dev); @@ -410,7 +410,7 @@ int drm_legacy_getctx(struct drm_device *dev, void *data, struct drm_ctx *ctx = data; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; /* This is 0, because we don't handle any context flags */ @@ -436,7 +436,7 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data, struct drm_ctx *ctx = data; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; DRM_DEBUG("%d\n", ctx->handle); @@ -460,7 +460,7 @@ int drm_legacy_newctx(struct drm_device *dev, void *data, struct drm_ctx *ctx = data; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; DRM_DEBUG("%d\n", ctx->handle); @@ -486,7 +486,7 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data, struct drm_ctx *ctx = data; if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT) && - drm_core_check_feature(dev, DRIVER_MODESET)) + !drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; DRM_DEBUG("%d\n", ctx->handle); diff --git a/drivers/gpu/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c index ea481800ef56..3f83e2ca80ad 100644 --- a/drivers/gpu/drm/drm_dma.c +++ b/drivers/gpu/drm/drm_dma.c @@ -50,9 +50,8 @@ int drm_legacy_dma_setup(struct drm_device *dev) int i; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || - drm_core_check_feature(dev, DRIVER_MODESET)) { + !drm_core_check_feature(dev, DRIVER_LEGACY)) return 0; - } dev->buf_use = 0; atomic_set(&dev->buf_alloc, 0); @@ -81,9 +80,8 @@ void drm_legacy_dma_takedown(struct drm_device *dev) int i, j; if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || - drm_core_check_feature(dev, DRIVER_MODESET)) { + !drm_core_check_feature(dev, DRIVER_LEGACY)) return; - } if (!dma) return; diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index 323c238fcac7..036cd275c53e 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c @@ -92,7 +92,7 @@ static int drm_setup(struct drm_device * dev) int ret; if (dev->driver->firstopen && - !drm_core_check_feature(dev, DRIVER_MODESET)) { + drm_core_check_feature(dev, DRIVER_LEGACY)) { ret = dev->driver->firstopen(dev); if (ret != 0) return ret; @@ -346,7 +346,7 @@ void drm_lastclose(struct drm_device * dev) dev->driver->lastclose(dev); DRM_DEBUG("driver lastclose completed\n"); - if (!drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_LEGACY)) drm_legacy_dev_reinit(dev); } @@ -389,7 +389,7 @@ int drm_release(struct inode *inode, struct file *filp) (long)old_encode_dev(file_priv->minor->kdev->devt), dev->open_count); - if (!drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_LEGACY)) drm_legacy_lock_release(dev, filp); if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 5085fd90f74d..0663a92922a8 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -714,9 +714,9 @@ long drm_ioctl(struct file *filp, if (ksize > in_size) memset(kdata + in_size, 0, ksize - in_size); - /* Enforce sane locking for kms driver ioctls. Core ioctls are + /* Enforce sane locking for modern driver ioctls. Core ioctls are * too messy still. */ - if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || + if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) || (ioctl->flags & DRM_UNLOCKED)) retcode = func(dev, kdata, file_priv); else { diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index a33465d8e133..d6d022b7c29b 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -482,7 +482,7 @@ int drm_irq_install(struct drm_device *dev, int irq) return ret; } - if (!drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_LEGACY)) vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL); /* After installing handler */ @@ -491,7 +491,7 @@ int drm_irq_install(struct drm_device *dev, int irq) if (ret < 0) { dev->irq_enabled = false; - if (!drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_LEGACY)) vga_client_register(dev->pdev, NULL, NULL, NULL); free_irq(irq, dev); } else { @@ -557,7 +557,7 @@ int drm_irq_uninstall(struct drm_device *dev) DRM_DEBUG("irq=%d\n", dev->irq); - if (!drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_LEGACY)) vga_client_register(dev->pdev, NULL, NULL, NULL); if (dev->driver->irq_uninstall) @@ -592,7 +592,7 @@ int drm_control(struct drm_device *dev, void *data, if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) return 0; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return 0; /* UMS was only ever supported on pci devices. */ if (WARN_ON(!dev->pdev)) @@ -1488,7 +1488,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, return 0; /* KMS drivers handle this internally */ - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return 0; pipe = modeset->crtc; diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index 48ac0ebbd663..c901f3c5b269 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -163,7 +163,7 @@ int drm_legacy_lock(struct drm_device *dev, void *data, struct drm_master *master = file_priv->master; int ret = 0; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; ++file_priv->lock_count; @@ -252,7 +252,7 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_ struct drm_lock *lock = data; struct drm_master *master = file_priv->master; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (lock->context == DRM_KERNEL_CONTEXT) { diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c index b2f8f1062d5f..d86362fc8ac6 100644 --- a/drivers/gpu/drm/drm_pci.c +++ b/drivers/gpu/drm/drm_pci.c @@ -175,7 +175,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data, { struct drm_irq_busid *p = data; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; /* UMS was only ever support on PCI devices. */ @@ -263,7 +263,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, /* No locking needed since shadow-attach is single-threaded since it may * only be called from the per-driver module init hook. */ - if (!drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_LEGACY)) list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list); return 0; @@ -299,7 +299,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) DRM_DEBUG("\n"); - if (driver->driver_features & DRIVER_MODESET) + if (!(driver->driver_features & DRIVER_LEGACY)) return pci_register_driver(pdriver); /* If not using KMS, fall back to stealth mode manual scanning. */ @@ -421,7 +421,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) struct drm_device *dev, *tmp; DRM_DEBUG("\n"); - if (driver->driver_features & DRIVER_MODESET) { + if (!(driver->driver_features & DRIVER_LEGACY)) { pci_unregister_driver(pdriver); } else { list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c index bf70431073f6..275bca44f38c 100644 --- a/drivers/gpu/drm/drm_scatter.c +++ b/drivers/gpu/drm/drm_scatter.c @@ -68,7 +68,7 @@ static void drm_sg_cleanup(struct drm_sg_mem * entry) void drm_legacy_sg_cleanup(struct drm_device *dev) { if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && - !drm_core_check_feature(dev, DRIVER_MODESET)) { + drm_core_check_feature(dev, DRIVER_LEGACY)) { drm_sg_cleanup(dev->sg); dev->sg = NULL; } @@ -88,7 +88,7 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data, DRM_DEBUG("\n"); - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_SG)) @@ -201,7 +201,7 @@ int drm_legacy_sg_free(struct drm_device *dev, void *data, struct drm_scatter_gather *request = data; struct drm_sg_mem *entry; - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (!drm_core_check_feature(dev, DRIVER_LEGACY)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_SG))
Except for nouveau, only legacy drivers need this really. And nouveau is already marked up with DRIVER_KMS_LEGACY_CONTEXT as the special case. I've tried to be careful to leave everything related to modeset still using the DRIVER_MODESET flag. Otherwise it's a direct replacement of !DRIVER_MODESET with DRIVER_LEGACY checks. Also helps readability since fewer negative checks overall. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/drm_agpsupport.c | 6 ++---- drivers/gpu/drm/drm_auth.c | 2 +- drivers/gpu/drm/drm_bufs.c | 22 +++++++++++----------- drivers/gpu/drm/drm_context.c | 24 ++++++++++++------------ drivers/gpu/drm/drm_dma.c | 6 ++---- drivers/gpu/drm/drm_fops.c | 6 +++--- drivers/gpu/drm/drm_ioctl.c | 4 ++-- drivers/gpu/drm/drm_irq.c | 10 +++++----- drivers/gpu/drm/drm_lock.c | 4 ++-- drivers/gpu/drm/drm_pci.c | 8 ++++---- drivers/gpu/drm/drm_scatter.c | 6 +++--- 11 files changed, 47 insertions(+), 51 deletions(-)