drm/nouveau: remove dev_priv->init_state and friends
authorBen Skeggs <bskeggs@redhat.com>
Mon, 7 Jun 2010 05:38:27 +0000 (15:38 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 13 Jul 2010 00:13:37 +0000 (10:13 +1000)
Nouveau will no longer load at all if card initialisation fails, so all
these checks are unnecessary.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_bo.c
drivers/gpu/drm/nouveau/nouveau_channel.c
drivers/gpu/drm/nouveau/nouveau_drv.h
drivers/gpu/drm/nouveau/nouveau_gem.c
drivers/gpu/drm/nouveau/nouveau_notifier.c
drivers/gpu/drm/nouveau/nouveau_object.c
drivers/gpu/drm/nouveau/nouveau_state.c

index 1371c77295f2bd2c255d9e357b3db4bfc181e4b5..3ca8343c15df9608c444140d9853603a94fd49a6 100644 (file)
@@ -711,8 +711,7 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr,
                return ret;
 
        /* Software copy if the card isn't up and running yet. */
-       if (dev_priv->init_state != NOUVEAU_CARD_INIT_DONE ||
-           !dev_priv->channel) {
+       if (!dev_priv->channel) {
                ret = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, no_wait_gpu, new_mem);
                goto out;
        }
index 06555c7cde509104e8ce87c3b1b51bc54f17711c..53daeba4581e74b27c43c125fbff5809e36a9157 100644 (file)
@@ -369,8 +369,6 @@ nouveau_ioctl_fifo_alloc(struct drm_device *dev, void *data,
        struct nouveau_channel *chan;
        int ret;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        if (dev_priv->engine.graph.accel_blocked)
                return -ENODEV;
 
@@ -419,7 +417,6 @@ nouveau_ioctl_fifo_free(struct drm_device *dev, void *data,
        struct drm_nouveau_channel_free *cfree = data;
        struct nouveau_channel *chan;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
        NOUVEAU_GET_USER_CHANNEL_WITH_RETURN(cfree->channel, file_priv, chan);
 
        nouveau_channel_free(chan);
index 4de342f54fd2dec3616ccef61755170926d45754..afebd32af2032a196a56b51ac3edea1c8361ee23 100644 (file)
@@ -492,11 +492,6 @@ enum nouveau_card_type {
 
 struct drm_nouveau_private {
        struct drm_device *dev;
-       enum {
-               NOUVEAU_CARD_INIT_DOWN,
-               NOUVEAU_CARD_INIT_DONE,
-               NOUVEAU_CARD_INIT_FAILED
-       } init_state;
 
        /* the card type, takes NV_* as values */
        enum nouveau_card_type card_type;
@@ -649,14 +644,6 @@ nouveau_bo_ref(struct nouveau_bo *ref, struct nouveau_bo **pnvbo)
        return 0;
 }
 
-#define NOUVEAU_CHECK_INITIALISED_WITH_RETURN do {            \
-       struct drm_nouveau_private *nv = dev->dev_private;    \
-       if (nv->init_state != NOUVEAU_CARD_INIT_DONE) {       \
-               NV_ERROR(dev, "called without init\n");       \
-               return -EINVAL;                               \
-       }                                                     \
-} while (0)
-
 #define NOUVEAU_GET_USER_CHANNEL_WITH_RETURN(id, cl, ch) do {    \
        struct drm_nouveau_private *nv = dev->dev_private;       \
        if (!nouveau_channel_owner(dev, (cl), (id))) {           \
index 791531bdb2c4e35c3bb934939c7c1d5dbf473937..547f2c24c1e76ac38eaab50db207e5eaa5c59395 100644 (file)
@@ -137,8 +137,6 @@ nouveau_gem_ioctl_new(struct drm_device *dev, void *data,
        uint32_t flags = 0;
        int ret = 0;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        if (unlikely(dev_priv->ttm.bdev.dev_mapping == NULL))
                dev_priv->ttm.bdev.dev_mapping = dev_priv->dev->dev_mapping;
 
@@ -580,7 +578,6 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
        struct nouveau_fence *fence = NULL;
        int i, j, ret = 0, do_reloc = 0;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
        NOUVEAU_GET_USER_CHANNEL_WITH_RETURN(req->channel, file_priv, chan);
 
        req->vram_available = dev_priv->fb_aper_free;
@@ -760,8 +757,6 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data,
        bool no_wait = !!(req->flags & NOUVEAU_GEM_CPU_PREP_NOWAIT);
        int ret = -EINVAL;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        gem = drm_gem_object_lookup(dev, file_priv, req->handle);
        if (!gem)
                return ret;
@@ -800,8 +795,6 @@ nouveau_gem_ioctl_cpu_fini(struct drm_device *dev, void *data,
        struct nouveau_bo *nvbo;
        int ret = -EINVAL;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        gem = drm_gem_object_lookup(dev, file_priv, req->handle);
        if (!gem)
                return ret;
@@ -827,8 +820,6 @@ nouveau_gem_ioctl_info(struct drm_device *dev, void *data,
        struct drm_gem_object *gem;
        int ret;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        gem = drm_gem_object_lookup(dev, file_priv, req->handle);
        if (!gem)
                return -EINVAL;
index 32f7fbd7484de9c5fe01a06b00e32582cce80354..3ec181ff50cea7a45b22a28a6ed43857b2a841cb 100644 (file)
@@ -184,7 +184,6 @@ nouveau_ioctl_notifier_alloc(struct drm_device *dev, void *data,
        struct nouveau_channel *chan;
        int ret;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
        NOUVEAU_GET_USER_CHANNEL_WITH_RETURN(na->channel, file_priv, chan);
 
        ret = nouveau_notifier_alloc(chan, na->handle, na->size, &na->offset);
index d436c3c7f4f5990bcbb9bad629b1f111673d18bb..5624f37e4c75bc1fcfd0b6eb543535b675605847 100644 (file)
@@ -1232,7 +1232,6 @@ int nouveau_ioctl_grobj_alloc(struct drm_device *dev, void *data,
        struct nouveau_channel *chan;
        int ret;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
        NOUVEAU_GET_USER_CHANNEL_WITH_RETURN(init->channel, file_priv, chan);
 
        if (init->handle == ~0)
@@ -1283,7 +1282,6 @@ int nouveau_ioctl_gpuobj_free(struct drm_device *dev, void *data,
        struct nouveau_channel *chan;
        int ret;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
        NOUVEAU_GET_USER_CHANNEL_WITH_RETURN(objfree->channel, file_priv, chan);
 
        ret = nouveau_gpuobj_ref_find(chan, objfree->handle, &ref);
index 3e241e4a64850c03fa247f926a62a64a80e9ab46..6fd99f10eed647ea63251508f4d3553875c17b17 100644 (file)
@@ -407,11 +407,6 @@ nouveau_card_init(struct drm_device *dev)
        struct nouveau_engine *engine;
        int ret;
 
-       NV_DEBUG(dev, "prev state = %d\n", dev_priv->init_state);
-
-       if (dev_priv->init_state == NOUVEAU_CARD_INIT_DONE)
-               return 0;
-
        vga_client_register(dev->pdev, dev, NULL, nouveau_vga_set_decode);
        vga_switcheroo_register_client(dev->pdev, nouveau_switcheroo_set_state,
                                       nouveau_switcheroo_can_switch);
@@ -421,7 +416,6 @@ nouveau_card_init(struct drm_device *dev)
        if (ret)
                goto out;
        engine = &dev_priv->engine;
-       dev_priv->init_state = NOUVEAU_CARD_INIT_FAILED;
        spin_lock_init(&dev_priv->context_switch_lock);
 
        /* Parse BIOS tables / Run init tables if card not POSTed */
@@ -513,8 +507,6 @@ nouveau_card_init(struct drm_device *dev)
        if (ret)
                NV_ERROR(dev, "Error %d registering backlight\n", ret);
 
-       dev_priv->init_state = NOUVEAU_CARD_INIT_DONE;
-
        nouveau_fbcon_init(dev);
        drm_kms_helper_poll_init(dev);
        return 0;
@@ -559,44 +551,37 @@ static void nouveau_card_takedown(struct drm_device *dev)
        struct drm_nouveau_private *dev_priv = dev->dev_private;
        struct nouveau_engine *engine = &dev_priv->engine;
 
-       NV_DEBUG(dev, "prev state = %d\n", dev_priv->init_state);
-
-       if (dev_priv->init_state != NOUVEAU_CARD_INIT_DOWN) {
+       nouveau_backlight_exit(dev);
 
-               nouveau_backlight_exit(dev);
-
-               if (dev_priv->channel) {
-                       nouveau_channel_free(dev_priv->channel);
-                       dev_priv->channel = NULL;
-               }
-
-               if (!nouveau_noaccel) {
-                       engine->fifo.takedown(dev);
-                       engine->graph.takedown(dev);
-               }
-               engine->fb.takedown(dev);
-               engine->timer.takedown(dev);
-               engine->mc.takedown(dev);
+       if (dev_priv->channel) {
+               nouveau_channel_free(dev_priv->channel);
+               dev_priv->channel = NULL;
+       }
 
-               mutex_lock(&dev->struct_mutex);
-               ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_VRAM);
-               ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_TT);
-               mutex_unlock(&dev->struct_mutex);
-               nouveau_sgdma_takedown(dev);
+       if (!nouveau_noaccel) {
+               engine->fifo.takedown(dev);
+               engine->graph.takedown(dev);
+       }
+       engine->fb.takedown(dev);
+       engine->timer.takedown(dev);
+       engine->mc.takedown(dev);
 
-               nouveau_gpuobj_takedown(dev);
-               nouveau_mem_close(dev);
-               engine->instmem.takedown(dev);
+       mutex_lock(&dev->struct_mutex);
+       ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_VRAM);
+       ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_TT);
+       mutex_unlock(&dev->struct_mutex);
+       nouveau_sgdma_takedown(dev);
 
-               drm_irq_uninstall(dev);
+       nouveau_gpuobj_takedown(dev);
+       nouveau_mem_close(dev);
+       engine->instmem.takedown(dev);
 
-               nouveau_gpuobj_late_takedown(dev);
-               nouveau_bios_takedown(dev);
+       drm_irq_uninstall(dev);
 
-               vga_client_register(dev->pdev, NULL, NULL, NULL);
+       nouveau_gpuobj_late_takedown(dev);
+       nouveau_bios_takedown(dev);
 
-               dev_priv->init_state = NOUVEAU_CARD_INIT_DOWN;
-       }
+       vga_client_register(dev->pdev, NULL, NULL, NULL);
 }
 
 /* here a client dies, release the stuff that was allocated for its
@@ -692,7 +677,6 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
        dev_priv->dev = dev;
 
        dev_priv->flags = flags & NOUVEAU_FLAGS;
-       dev_priv->init_state = NOUVEAU_CARD_INIT_DOWN;
 
        NV_DEBUG(dev, "vendor: 0x%X device: 0x%X class: 0x%X\n",
                 dev->pci_vendor, dev->pci_device, dev->pdev->class);
@@ -840,8 +824,6 @@ int nouveau_ioctl_getparam(struct drm_device *dev, void *data,
        struct drm_nouveau_private *dev_priv = dev->dev_private;
        struct drm_nouveau_getparam *getparam = data;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        switch (getparam->param) {
        case NOUVEAU_GETPARAM_CHIPSET_ID:
                getparam->value = dev_priv->chipset;
@@ -910,8 +892,6 @@ nouveau_ioctl_setparam(struct drm_device *dev, void *data,
 {
        struct drm_nouveau_setparam *setparam = data;
 
-       NOUVEAU_CHECK_INITIALISED_WITH_RETURN;
-
        switch (setparam->param) {
        default:
                NV_ERROR(dev, "unknown parameter %lld\n", setparam->param);