support next generation of HP Smart Array SAS/SATA controllers
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Fri, 7 May 2010 18:21:15 +0000 (18:21 +0000)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Fri, 7 May 2010 18:21:15 +0000 (18:21 +0000)
kernel-2.6.spec
linux-2.6-151-cciss-SAS.patch [new file with mode: 0644]

index f2465be..2b77512 100644 (file)
@@ -168,6 +168,7 @@ Patch050: linux-2.6-050-getline.patch
 Patch100: linux-2.6-100-build-nonintconfig.patch
 
 Patch150: linux-2.6-150-cciss-allow-kexec-to-work.patch
+Patch151: linux-2.6-151-cciss-SAS.patch
 
 # Linux-VServer
 Patch200: patch-%{rpmversion}-vs%{vsversion}.diff
@@ -414,6 +415,7 @@ KERNEL_PREVIOUS=vanilla
 %ApplyPatch 100
 
 %ApplyPatch 150
+%ApplyPatch 151
 
 %ApplyPatch 200
 %ApplyPatch 210
diff --git a/linux-2.6-151-cciss-SAS.patch b/linux-2.6-151-cciss-SAS.patch
new file mode 100644 (file)
index 0000000..2d7cff2
--- /dev/null
@@ -0,0 +1,53 @@
+diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
+index fecf524..dc447bd 100644
+--- a/drivers/block/cciss.c
++++ b/drivers/block/cciss.c
+@@ -56,9 +56,10 @@
+ /* Embedded module documentation macros - see modules.h */
+ MODULE_AUTHOR("Hewlett-Packard Company");
+-MODULE_DESCRIPTION("Driver for HP Controller SA5xxx SA6xxx version 3.6.14");
++MODULE_DESCRIPTION("Driver for HP Smart Array Controllers");
+ MODULE_SUPPORTED_DEVICE("HP SA5i SA5i+ SA532 SA5300 SA5312 SA641 SA642 SA6400"
+-                      " SA6i P600 P800 P400 P400i E200 E200i E500");
++                      " SA6i P600 P800 P400 P400i E200 E200i E500"
++                        " Smart Array G2 Series SAS/SATA Controllers");
+ MODULE_VERSION("3.6.14");
+ MODULE_LICENSE("GPL");
+@@ -87,6 +88,11 @@ static const struct pci_device_id cciss_pci_device_id[] = {
+       {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSD,     0x103C, 0x3214},
+       {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSD,     0x103C, 0x3215},
+       {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSC,     0x103C, 0x3237},
++      {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSE,     0x103C, 0x3241},
++      {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSE,     0x103C, 0x3243},
++      {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSE,     0x103C, 0x3245},
++      {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSE,     0x103C, 0x3247},
++      {PCI_VENDOR_ID_HP,     PCI_DEVICE_ID_HP_CISSE,     0x103C, 0x3249},
+       {PCI_VENDOR_ID_HP,     PCI_ANY_ID,      PCI_ANY_ID, PCI_ANY_ID,
+               PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
+       {0,}
+@@ -119,6 +125,11 @@ static struct board_type products[] = {
+       {0x3214103C, "Smart Array E200i", &SA5_access, 120},
+       {0x3215103C, "Smart Array E200i", &SA5_access, 120},
+       {0x3237103C, "Smart Array E500", &SA5_access, 512},
++      {0x3241103C, "Smart Array P212", &SA5_access, 384},
++      {0x3243103C, "Smart Array P410", &SA5_access, 384},
++      {0x3245103C, "Smart Array P410i", &SA5_access, 384},
++      {0x3247103C, "Smart Array P411", &SA5_access, 384},
++      {0x3249103C, "Smart Array P812", &SA5_access, 384},
+       {0xFFFF103C, "Unknown Smart Array", &SA5_access, 120},
+ };
+diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
+index 5505b33..ea81d4a 100644
+--- a/include/linux/pci_ids.h
++++ b/include/linux/pci_ids.h
+@@ -712,6 +712,7 @@
+ #define PCI_DEVICE_ID_HP_CISSA                0x3220
+ #define PCI_DEVICE_ID_HP_CISSC                0x3230
+ #define PCI_DEVICE_ID_HP_CISSD                0x3238
++#define PCI_DEVICE_ID_HP_CISSE                0x323a
+ #define PCI_DEVICE_ID_HP_ZX2_IOC      0x4031
+ #define PCI_VENDOR_ID_PCTECH          0x1042