]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/scsi/ipr.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[mv-sheeva.git] / drivers / scsi / ipr.c
index 10b162d607ac0b10704366248aa44d2f85de7923..520461b9bc09036449f1ff2ccd58a09f538ed84f 100644 (file)
@@ -59,6 +59,7 @@
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
+#include <linux/slab.h>
 #include <linux/ioport.h>
 #include <linux/delay.h>
 #include <linux/pci.h>
@@ -178,7 +179,9 @@ static const struct ipr_chip_t ipr_chip[] = {
        { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN, IPR_USE_LSI, IPR_SIS32, &ipr_chip_cfg[0] },
        { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN_E, IPR_USE_MSI, IPR_SIS32, &ipr_chip_cfg[0] },
        { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_SNIPE, IPR_USE_LSI, IPR_SIS32, &ipr_chip_cfg[1] },
-       { PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP, IPR_USE_LSI, IPR_SIS32, &ipr_chip_cfg[1] }
+       { PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP, IPR_USE_LSI, IPR_SIS32, &ipr_chip_cfg[1] },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_FPGA_E2, IPR_USE_MSI, IPR_SIS64, &ipr_chip_cfg[2] },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_ASIC_E2, IPR_USE_MSI, IPR_SIS64, &ipr_chip_cfg[2] }
 };
 
 static int ipr_max_bus_speeds [] = {
@@ -222,6 +225,20 @@ struct ipr_error_table_t ipr_error_table[] = {
        "FFFE: Soft device bus error recovered by the IOA"},
        {0x01088100, 0, IPR_DEFAULT_LOG_LEVEL,
        "4101: Soft device bus fabric error"},
+       {0x01100100, 0, IPR_DEFAULT_LOG_LEVEL,
+       "FFFC: Logical block guard error recovered by the device"},
+       {0x01100300, 0, IPR_DEFAULT_LOG_LEVEL,
+       "FFFC: Logical block reference tag error recovered by the device"},
+       {0x01108300, 0, IPR_DEFAULT_LOG_LEVEL,
+       "4171: Recovered scatter list tag / sequence number error"},
+       {0x01109000, 0, IPR_DEFAULT_LOG_LEVEL,
+       "FF3D: Recovered logical block CRC error on IOA to Host transfer"},
+       {0x01109200, 0, IPR_DEFAULT_LOG_LEVEL,
+       "4171: Recovered logical block sequence number error on IOA to Host transfer"},
+       {0x0110A000, 0, IPR_DEFAULT_LOG_LEVEL,
+       "FFFD: Recovered logical block reference tag error detected by the IOA"},
+       {0x0110A100, 0, IPR_DEFAULT_LOG_LEVEL,
+       "FFFD: Logical block guard error recovered by the IOA"},
        {0x01170600, 0, IPR_DEFAULT_LOG_LEVEL,
        "FFF9: Device sector reassign successful"},
        {0x01170900, 0, IPR_DEFAULT_LOG_LEVEL,
@@ -278,12 +295,28 @@ struct ipr_error_table_t ipr_error_table[] = {
        "3120: SCSI bus is not operational"},
        {0x04088100, 0, IPR_DEFAULT_LOG_LEVEL,
        "4100: Hard device bus fabric error"},
+       {0x04100100, 0, IPR_DEFAULT_LOG_LEVEL,
+       "310C: Logical block guard error detected by the device"},
+       {0x04100300, 0, IPR_DEFAULT_LOG_LEVEL,
+       "310C: Logical block reference tag error detected by the device"},
+       {0x04108300, 1, IPR_DEFAULT_LOG_LEVEL,
+       "4170: Scatter list tag / sequence number error"},
+       {0x04109000, 1, IPR_DEFAULT_LOG_LEVEL,
+       "8150: Logical block CRC error on IOA to Host transfer"},
+       {0x04109200, 1, IPR_DEFAULT_LOG_LEVEL,
+       "4170: Logical block sequence number error on IOA to Host transfer"},
+       {0x0410A000, 0, IPR_DEFAULT_LOG_LEVEL,
+       "310D: Logical block reference tag error detected by the IOA"},
+       {0x0410A100, 0, IPR_DEFAULT_LOG_LEVEL,
+       "310D: Logical block guard error detected by the IOA"},
        {0x04118000, 0, IPR_DEFAULT_LOG_LEVEL,
        "9000: IOA reserved area data check"},
        {0x04118100, 0, IPR_DEFAULT_LOG_LEVEL,
        "9001: IOA reserved area invalid data pattern"},
        {0x04118200, 0, IPR_DEFAULT_LOG_LEVEL,
        "9002: IOA reserved area LRC error"},
+       {0x04118300, 1, IPR_DEFAULT_LOG_LEVEL,
+       "Hardware Error, IOA metadata access error"},
        {0x04320000, 0, IPR_DEFAULT_LOG_LEVEL,
        "102E: Out of alternate sectors for disk storage"},
        {0x04330000, 1, IPR_DEFAULT_LOG_LEVEL,
@@ -348,6 +381,8 @@ struct ipr_error_table_t ipr_error_table[] = {
        "Illegal request, commands not allowed to this device"},
        {0x05258100, 0, 0,
        "Illegal request, command not allowed to a secondary adapter"},
+       {0x05258200, 0, 0,
+       "Illegal request, command not allowed to a non-optimized resource"},
        {0x05260000, 0, 0,
        "Illegal request, invalid field in parameter list"},
        {0x05260100, 0, 0,
@@ -8792,9 +8827,6 @@ static struct pci_device_id ipr_pci_table[] __devinitdata = {
        { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN_E,
              PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_574E, 0, 0,
              IPR_USE_LONG_TRANSOP_TIMEOUT },
-       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN_E,
-             PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575D, 0, 0,
-             IPR_USE_LONG_TRANSOP_TIMEOUT },
        { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN_E,
              PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B3, 0, 0, 0 },
        { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN_E,
@@ -8810,9 +8842,22 @@ static struct pci_device_id ipr_pci_table[] __devinitdata = {
        { PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP,
                PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572F, 0, 0,
                IPR_USE_LONG_TRANSOP_TIMEOUT },
-       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_SCAMP_E,
-               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_574D, 0, 0,
-               IPR_USE_LONG_TRANSOP_TIMEOUT },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_FPGA_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B5, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_FPGA_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_574D, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_FPGA_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B2, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_ASIC_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B4, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_ASIC_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B1, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_ASIC_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57C6, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_ASIC_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575D, 0, 0, 0 },
+       { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROC_ASIC_E2,
+               PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57CE, 0, 0, 0 },
        { }
 };
 MODULE_DEVICE_TABLE(pci, ipr_pci_table);