From 86243ae6dbfc5d02ee714d7de5c2d8120bb8e52d Mon Sep 17 00:00:00 2001
From: Andy Whitcroft <apw@canonical.com>
Date: Thu, 17 May 2012 18:55:28 +0100
Subject: [PATCH Quantal] UBUNTU: SAUCE: ata_piix: add a disable_driver option

We need to be able to fully disable the ata_piix driver from the kernel
command line.  Add a generic disable_driver to the module init to
completely short circuit the initialisation.

BugLink: http://bugs.launchpad.net/bugs/994870
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Acked-by: Luis Henriques <luis.henriques@canonical.com>
Acked-by: Herton Krzesinski <herton.krzesinski@canonical.com>
Acked-by: Brad Figg <brad.figg@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
---
 drivers/ata/ata_piix.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 3c809bf..424084d 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1719,10 +1719,16 @@ static void piix_remove_one(struct pci_dev *pdev)
 	ata_pci_remove_one(pdev);
 }
 
+static bool disable_driver = 0;
 static int __init piix_init(void)
 {
 	int rc;
 
+	if (disable_driver) {
+		printk(KERN_WARNING "ata_piix: driver disabled completely\n");
+		return 0;
+	}
+
 	DPRINTK("pci_register_driver\n");
 	rc = pci_register_driver(&piix_pci_driver);
 	if (rc)
@@ -1739,5 +1745,6 @@ static void __exit piix_exit(void)
 	pci_unregister_driver(&piix_pci_driver);
 }
 
+module_param(disable_driver, bool, 0);
 module_init(piix_init);
 module_exit(piix_exit);
-- 
1.7.9.5

