aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/nvidia/nvidia.c
diff options
context:
space:
mode:
authorAntonino A. Daplas <adaplas@gmail.com>2006-06-26 03:27:04 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 12:58:32 -0400
commita06630f3e7fb29f2524e1d7b009eb8b5a278ba23 (patch)
treeda80382cdbdda004fff12484281a3ddbad0069b3 /drivers/video/nvidia/nvidia.c
parent1c8ce271fe707d26b7bca4e490067fe65694b363 (diff)
[PATCH] Detaching fbcon: remove calls to pci_disable_device()
Detaching fbcon allows individual drivers to be unloaded. However several drivers call pci_disable_device() upon exit. This function will disable the BAR's which will kill VGA text mode and/or affect X/DRM. To prevent this, remove calls to pci_disable_device() from several drivers. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/nvidia/nvidia.c')
-rw-r--r--drivers/video/nvidia/nvidia.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c
index 65733e834704..7b5cffb27851 100644
--- a/drivers/video/nvidia/nvidia.c
+++ b/drivers/video/nvidia/nvidia.c
@@ -1219,7 +1219,7 @@ static int __devinit nvidiafb_probe(struct pci_dev *pd,
1219 1219
1220 if (pci_request_regions(pd, "nvidiafb")) { 1220 if (pci_request_regions(pd, "nvidiafb")) {
1221 printk(KERN_ERR PFX "cannot request PCI regions\n"); 1221 printk(KERN_ERR PFX "cannot request PCI regions\n");
1222 goto err_out_request; 1222 goto err_out_enable;
1223 } 1223 }
1224 1224
1225 par->FlatPanel = flatpanel; 1225 par->FlatPanel = flatpanel;
@@ -1338,10 +1338,8 @@ err_out_free_base1:
1338 nvidia_delete_i2c_busses(par); 1338 nvidia_delete_i2c_busses(par);
1339err_out_arch: 1339err_out_arch:
1340 iounmap(par->REGS); 1340 iounmap(par->REGS);
1341err_out_free_base0: 1341 err_out_free_base0:
1342 pci_release_regions(pd); 1342 pci_release_regions(pd);
1343err_out_request:
1344 pci_disable_device(pd);
1345err_out_enable: 1343err_out_enable:
1346 kfree(info->pixmap.addr); 1344 kfree(info->pixmap.addr);
1347err_out_kfree: 1345err_out_kfree:
@@ -1371,7 +1369,6 @@ static void __exit nvidiafb_remove(struct pci_dev *pd)
1371 nvidia_delete_i2c_busses(par); 1369 nvidia_delete_i2c_busses(par);
1372 iounmap(par->REGS); 1370 iounmap(par->REGS);
1373 pci_release_regions(pd); 1371 pci_release_regions(pd);
1374 pci_disable_device(pd);
1375 kfree(info->pixmap.addr); 1372 kfree(info->pixmap.addr);
1376 framebuffer_release(info); 1373 framebuffer_release(info);
1377 pci_set_drvdata(pd, NULL); 1374 pci_set_drvdata(pd, NULL);