Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a06630f3 authored by Antonino A. Daplas's avatar Antonino A. Daplas Committed by Linus Torvalds
Browse files

[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: default avatarAntonino Daplas <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 1c8ce271
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -2379,7 +2379,6 @@ err_release_pci0:
err_release_fb:
        framebuffer_release(info);
err_disable:
	pci_disable_device(pdev);
err_out:
	return ret;
}
@@ -2436,7 +2435,6 @@ static void __devexit radeonfb_pci_unregister (struct pci_dev *pdev)
#endif        
	fb_dealloc_cmap(&info->cmap);
        framebuffer_release(info);
	pci_disable_device(pdev);
}


+0 −2
Original line number Diff line number Diff line
@@ -2227,7 +2227,6 @@ static void cirrusfb_pci_unmap (struct cirrusfb_info *cinfo)
		release_region(0x3C0, 32);
	pci_release_regions(pdev);
	framebuffer_release(cinfo->info);
	pci_disable_device(pdev);
}
#endif /* CONFIG_PCI */

@@ -2458,7 +2457,6 @@ err_release_regions:
err_release_fb:
	framebuffer_release(info);
err_disable:
	pci_disable_device(pdev);
err_out:
	return ret;
}
+0 −3
Original line number Diff line number Diff line
@@ -376,8 +376,6 @@ static int __init gx1fb_probe(struct pci_dev *pdev, const struct pci_device_id *
		release_mem_region(gx1_gx_base() + 0x8300, 0x100);
	}

	pci_disable_device(pdev);

	if (info)
		framebuffer_release(info);
	return ret;
@@ -399,7 +397,6 @@ static void gx1fb_remove(struct pci_dev *pdev)
	iounmap(par->dc_regs);
	release_mem_region(gx1_gx_base() + 0x8300, 0x100);

	pci_disable_device(pdev);
	pci_set_drvdata(pdev, NULL);

	framebuffer_release(info);
+0 −3
Original line number Diff line number Diff line
@@ -354,8 +354,6 @@ static int __init gxfb_probe(struct pci_dev *pdev, const struct pci_device_id *i
		pci_release_region(pdev, 2);
	}

	pci_disable_device(pdev);

	if (info)
		framebuffer_release(info);
	return ret;
@@ -377,7 +375,6 @@ static void gxfb_remove(struct pci_dev *pdev)
	iounmap(par->dc_regs);
	pci_release_region(pdev, 2);

	pci_disable_device(pdev);
	pci_set_drvdata(pdev, NULL);

	framebuffer_release(info);
+0 −3
Original line number Diff line number Diff line
@@ -2110,9 +2110,6 @@ static void i810fb_release_resource(struct fb_info *info,
	if (par->res_flags & MMIO_REQ)
		release_mem_region(par->mmio_start_phys, MMIO_SIZE);

	if (par->res_flags & PCI_DEVICE_ENABLED)
		pci_disable_device(par->dev);

	framebuffer_release(info);

}
Loading