aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_state.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_state.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
index 58b46807de23..a9e9cf35429c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_state.c
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
@@ -340,7 +340,7 @@ nouveau_card_init_channel(struct drm_device *dev)
340 340
341 gpuobj = NULL; 341 gpuobj = NULL;
342 ret = nouveau_gpuobj_dma_new(dev_priv->channel, NV_CLASS_DMA_IN_MEMORY, 342 ret = nouveau_gpuobj_dma_new(dev_priv->channel, NV_CLASS_DMA_IN_MEMORY,
343 0, nouveau_mem_fb_amount(dev), 343 0, dev_priv->vram_size,
344 NV_DMA_ACCESS_RW, NV_DMA_TARGET_VIDMEM, 344 NV_DMA_ACCESS_RW, NV_DMA_TARGET_VIDMEM,
345 &gpuobj); 345 &gpuobj);
346 if (ret) 346 if (ret)
@@ -426,6 +426,10 @@ nouveau_card_init(struct drm_device *dev)
426 goto out; 426 goto out;
427 } 427 }
428 428
429 ret = nouveau_mem_detect(dev);
430 if (ret)
431 goto out_bios;
432
429 ret = nouveau_gpuobj_early_init(dev); 433 ret = nouveau_gpuobj_early_init(dev);
430 if (ret) 434 if (ret)
431 goto out_bios; 435 goto out_bios;
@@ -501,7 +505,7 @@ nouveau_card_init(struct drm_device *dev)
501 else 505 else
502 ret = nv04_display_create(dev); 506 ret = nv04_display_create(dev);
503 if (ret) 507 if (ret)
504 goto out_irq; 508 goto out_channel;
505 } 509 }
506 510
507 ret = nouveau_backlight_init(dev); 511 ret = nouveau_backlight_init(dev);
@@ -515,6 +519,11 @@ nouveau_card_init(struct drm_device *dev)
515 519
516 return 0; 520 return 0;
517 521
522out_channel:
523 if (dev_priv->channel) {
524 nouveau_channel_free(dev_priv->channel);
525 dev_priv->channel = NULL;
526 }
518out_irq: 527out_irq:
519 drm_irq_uninstall(dev); 528 drm_irq_uninstall(dev);
520out_fifo: 529out_fifo:
@@ -532,6 +541,7 @@ out_mc:
532out_gpuobj: 541out_gpuobj:
533 nouveau_gpuobj_takedown(dev); 542 nouveau_gpuobj_takedown(dev);
534out_mem: 543out_mem:
544 nouveau_sgdma_takedown(dev);
535 nouveau_mem_close(dev); 545 nouveau_mem_close(dev);
536out_instmem: 546out_instmem:
537 engine->instmem.takedown(dev); 547 engine->instmem.takedown(dev);