[PATCH] ahci: add a boot option to enable promise ahci

From: Tony Hung - PTT ???
Date: Mon Sep 24 2012 - 00:11:03 EST


linux-3.2.0/drivers/ata/ahci.c: In function 'hptiop_host_request_callback':

Use min_t(size_t, ...) to fix.

Signed-off-by: Tony Hung <tony.hung@xxxxxxxxxxxxxx>
---

diff --git a/linux-3.2.0/drivers/ata/ahci.c b/linux-3.2.0/drivers/ata/ahci.c
--- a/linux-3.2.0/drivers/ata/ahci.c 2012-08-29 13:40:26.046851693 +0800
+++ b/linux-3.2.0/drivers/ata/ahci.c 2012-08-30 17:23:10.207838960 +0800
@@ -430,6 +430,9 @@ static int marvell_enable = 1;
module_param(marvell_enable, int, 0644);
MODULE_PARM_DESC(marvell_enable, "Marvell SATA via AHCI (1 = enabled)");

+static int promise_enable;
+module_param(promise_enable, int, 0644);
+MODULE_PARM_DESC(promise_enable, "Promise SATA via AHCI (1 = enabled)");

static void ahci_pci_save_initial_config(struct pci_dev *pdev,
struct ahci_host_priv *hpriv)
@@ -1049,6 +1052,16 @@ static int ahci_init_one(struct pci_dev
if (pdev->vendor == PCI_VENDOR_ID_MARVELL && !marvell_enable)
return -ENODEV;

+ /*
+ * In RAID mode, Promise software RAID need to replace
+ * original AHCI module, but if AHCI driver build-in kernel,
+ * Promise AHCI module need a boot option to disable it
+ */
+ if (promise_enable &&
+ ((pdev->class >> 8) == PCI_CLASS_STORAGE_RAID) &&
+ (pdev->vendor == PCI_VENDOR_ID_ATI ||
+ pdev->vendor == PCI_VENDOR_ID_AMD))
+ return -ENODEV;
+
/*
* For some reason, MCP89 on MacBook 7,1 doesn't work with
* ahci, use ata_generic instead.

To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html

????????+-???w??????dz????w*jg??????/???????????????????:+v????>W??i?xPj??? -?+?d?