diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2006-06-26 03:27:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 12:58:32 -0400 |
commit | a06630f3e7fb29f2524e1d7b009eb8b5a278ba23 (patch) | |
tree | da80382cdbdda004fff12484281a3ddbad0069b3 /drivers/video/nvidia/nvidia.c | |
parent | 1c8ce271fe707d26b7bca4e490067fe65694b363 (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.c | 7 |
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); |
1339 | err_out_arch: | 1339 | err_out_arch: |
1340 | iounmap(par->REGS); | 1340 | iounmap(par->REGS); |
1341 | err_out_free_base0: | 1341 | err_out_free_base0: |
1342 | pci_release_regions(pd); | 1342 | pci_release_regions(pd); |
1343 | err_out_request: | ||
1344 | pci_disable_device(pd); | ||
1345 | err_out_enable: | 1343 | err_out_enable: |
1346 | kfree(info->pixmap.addr); | 1344 | kfree(info->pixmap.addr); |
1347 | err_out_kfree: | 1345 | err_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); |