drm/nouveau: remove left-over !DRIVER_MODESET paths
authorBen Skeggs <bskeggs@redhat.com>
Tue, 1 Jun 2010 05:56:22 +0000 (15:56 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 13 Jul 2010 00:12:58 +0000 (10:12 +1000)
It's far preferable to have the driver do nothing at all for "nomodeset".

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_dma.c
drivers/gpu/drm/nouveau/nouveau_drv.c
drivers/gpu/drm/nouveau/nouveau_mem.c
drivers/gpu/drm/nouveau/nouveau_state.c

index 65c441a1999facfeeb3b9ca191198fad732583d8..2e3c6caa97eeefb70eda2b06f633aae520c19ceb 100644 (file)
@@ -92,11 +92,9 @@ nouveau_dma_init(struct nouveau_channel *chan)
                return ret;
 
        /* Map M2MF notifier object - fbcon. */
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               ret = nouveau_bo_map(chan->notifier_bo);
-               if (ret)
-                       return ret;
-       }
+       ret = nouveau_bo_map(chan->notifier_bo);
+       if (ret)
+               return ret;
 
        /* Insert NOPS for NOUVEAU_DMA_SKIPS */
        ret = RING_SPACE(chan, NOUVEAU_DMA_SKIPS);
index 2dd7d19eb99bae37544b41906e7f45d36e812b02..6edfc23e628576c8eda59985b30b3e8227724fc2 100644 (file)
@@ -155,9 +155,6 @@ nouveau_pci_suspend(struct pci_dev *pdev, pm_message_t pm_state)
        struct drm_crtc *crtc;
        int ret, i;
 
-       if (!drm_core_check_feature(dev, DRIVER_MODESET))
-               return -ENODEV;
-
        if (pm_state.event == PM_EVENT_PRETHAW)
                return 0;
 
@@ -257,9 +254,6 @@ nouveau_pci_resume(struct pci_dev *pdev)
        struct drm_crtc *crtc;
        int ret, i;
 
-       if (!drm_core_check_feature(dev, DRIVER_MODESET))
-               return -ENODEV;
-
        nouveau_fbcon_save_disable_accel(dev);
 
        NV_INFO(dev, "We're back, enabling device...\n");
@@ -371,7 +365,8 @@ nouveau_pci_resume(struct pci_dev *pdev)
 static struct drm_driver driver = {
        .driver_features =
                DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_SG |
-               DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM,
+               DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+               DRIVER_MODESET,
        .load = nouveau_load,
        .firstopen = nouveau_firstopen,
        .lastclose = nouveau_lastclose,
@@ -438,16 +433,18 @@ static int __init nouveau_init(void)
                        nouveau_modeset = 1;
        }
 
-       if (nouveau_modeset == 1) {
-               driver.driver_features |= DRIVER_MODESET;
-               nouveau_register_dsm_handler();
-       }
+       if (!nouveau_modeset)
+               return 0;
 
+       nouveau_register_dsm_handler();
        return drm_init(&driver);
 }
 
 static void __exit nouveau_exit(void)
 {
+       if (!nouveau_modeset)
+               return;
+
        drm_exit(&driver);
        nouveau_unregister_dsm_handler();
 }
index 4274281f45ce7111075694ce0f9e56fc14607198..bcf7ed32cd1caa2f8cdec1c08eeb403e2070ed60 100644 (file)
@@ -277,8 +277,7 @@ nouveau_mem_close(struct drm_device *dev)
 
        nouveau_ttm_global_release(dev_priv);
 
-       if (drm_core_has_AGP(dev) && dev->agp &&
-           drm_core_check_feature(dev, DRIVER_MODESET)) {
+       if (drm_core_has_AGP(dev) && dev->agp) {
                struct drm_agp_mem *entry, *tempe;
 
                /* Remove AGP resources, but leave dev->agp
index b02a231d6937489fe972bfc813dc72d5d421aa70..3e241e4a64850c03fa247f926a62a64a80e9ab46 100644 (file)
@@ -425,11 +425,9 @@ nouveau_card_init(struct drm_device *dev)
        spin_lock_init(&dev_priv->context_switch_lock);
 
        /* Parse BIOS tables / Run init tables if card not POSTed */
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               ret = nouveau_bios_init(dev);
-               if (ret)
-                       goto out;
-       }
+       ret = nouveau_bios_init(dev);
+       if (ret)
+               goto out;
 
        ret = nouveau_mem_detect(dev);
        if (ret)
@@ -504,14 +502,12 @@ nouveau_card_init(struct drm_device *dev)
                        goto out_irq;
        }
 
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               if (dev_priv->card_type >= NV_50)
-                       ret = nv50_display_create(dev);
-               else
-                       ret = nv04_display_create(dev);
-               if (ret)
-                       goto out_channel;
-       }
+       if (dev_priv->card_type >= NV_50)
+               ret = nv50_display_create(dev);
+       else
+               ret = nv04_display_create(dev);
+       if (ret)
+               goto out_channel;
 
        ret = nouveau_backlight_init(dev);
        if (ret)
@@ -519,11 +515,8 @@ nouveau_card_init(struct drm_device *dev)
 
        dev_priv->init_state = NOUVEAU_CARD_INIT_DONE;
 
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               nouveau_fbcon_init(dev);
-               drm_kms_helper_poll_init(dev);
-       }
-
+       nouveau_fbcon_init(dev);
+       drm_kms_helper_poll_init(dev);
        return 0;
 
 out_channel:
@@ -595,8 +588,7 @@ static void nouveau_card_takedown(struct drm_device *dev)
                nouveau_mem_close(dev);
                engine->instmem.takedown(dev);
 
-               if (drm_core_check_feature(dev, DRIVER_MODESET))
-                       drm_irq_uninstall(dev);
+               drm_irq_uninstall(dev);
 
                nouveau_gpuobj_late_takedown(dev);
                nouveau_bios_takedown(dev);
@@ -691,6 +683,7 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
        struct drm_nouveau_private *dev_priv;
        uint32_t reg0;
        resource_size_t mmio_start_offs;
+       int ret;
 
        dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
        if (!dev_priv)
@@ -773,11 +766,9 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
        NV_INFO(dev, "Detected an NV%2x generation card (0x%08x)\n",
                dev_priv->card_type, reg0);
 
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               int ret = nouveau_remove_conflicting_drivers(dev);
-               if (ret)
-                       return ret;
-       }
+       ret = nouveau_remove_conflicting_drivers(dev);
+       if (ret)
+               return ret;
 
        /* Map PRAMIN BAR, or on older cards, the aperture withing BAR0 */
        if (dev_priv->card_type >= NV_40) {
@@ -812,46 +803,28 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
                dev_priv->flags |= NV_NFORCE2;
 
        /* For kernel modesetting, init card now and bring up fbcon */
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               int ret = nouveau_card_init(dev);
-               if (ret)
-                       return ret;
-       }
+       ret = nouveau_card_init(dev);
+       if (ret)
+               return ret;
 
        return 0;
 }
 
-static void nouveau_close(struct drm_device *dev)
-{
-       struct drm_nouveau_private *dev_priv = dev->dev_private;
-
-       /* In the case of an error dev_priv may not be allocated yet */
-       if (dev_priv)
-               nouveau_card_takedown(dev);
-}
-
-/* KMS: we need mmio at load time, not when the first drm client opens. */
 void nouveau_lastclose(struct drm_device *dev)
 {
-       if (drm_core_check_feature(dev, DRIVER_MODESET))
-               return;
-
-       nouveau_close(dev);
 }
 
 int nouveau_unload(struct drm_device *dev)
 {
        struct drm_nouveau_private *dev_priv = dev->dev_private;
 
-       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               drm_kms_helper_poll_fini(dev);
-               nouveau_fbcon_fini(dev);
-               if (dev_priv->card_type >= NV_50)
-                       nv50_display_destroy(dev);
-               else
-                       nv04_display_destroy(dev);
-               nouveau_close(dev);
-       }
+       drm_kms_helper_poll_fini(dev);
+       nouveau_fbcon_fini(dev);
+       if (dev_priv->card_type >= NV_50)
+               nv50_display_destroy(dev);
+       else
+               nv04_display_destroy(dev);
+       nouveau_card_takedown(dev);
 
        iounmap(dev_priv->mmio);
        iounmap(dev_priv->ramin);