]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
Support for ICH10 chipset PCI IDs.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 26 Mar 2008 08:52:36 +0000 (08:52 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 26 Mar 2008 08:52:36 +0000 (08:52 +0000)
Signed-off-by: Don Dugger <donald.d.dugger@intel.com>
Documentation/i2c/busses/i2c-i801
arch/i386/pci/irq-xen.c
arch/i386/pci/irq.c
drivers/i2c/busses/Kconfig
drivers/i2c/busses/i2c-i801.c
drivers/scsi/ahci.c
drivers/scsi/ata_piix.c
include/linux/pci_ids.h
sound/pci/hda/hda_intel.c

index e46c2345824243b66d50f7efbc101699561300ea..5e6ce1a876a451b4b33ff5c57394fd896365f7a5 100644 (file)
@@ -10,6 +10,11 @@ Supported adapters:
   * Intel 6300ESB
   * Intel 82801FB/FR/FW/FRW (ICH6)
   * Intel ICH7
+  * Intel 82801G (ICH7)
+  * Intel 82801H (ICH9)
+  * Intel 82801I (ICH9)
+  * Intel Tolapai
+  * Intel ICH10
     Datasheets: Publicly available at the Intel website
 
 Authors: 
index 0d235937ec47ab6096ef5813aa9b5c7c5bb0d1aa..94fdd4c8bf639dd16a0fa0a148e25b976142484b 100644 (file)
@@ -553,6 +553,10 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
                case PCI_DEVICE_ID_INTEL_ICH9_3:
                case PCI_DEVICE_ID_INTEL_ICH9_4:
                case PCI_DEVICE_ID_INTEL_ICH9_5:
+               case PCI_DEVICE_ID_INTEL_ICH10_0:
+               case PCI_DEVICE_ID_INTEL_ICH10_1:
+               case PCI_DEVICE_ID_INTEL_ICH10_2:
+               case PCI_DEVICE_ID_INTEL_ICH10_3:
                        r->name = "PIIX/ICH";
                        r->get = pirq_piix_get;
                        r->set = pirq_piix_set;
index 49413a780e9dab4268a1eafa6008018dc3c83383..e2a27dabb184d56cea425248b3ae2c0795b45dc3 100644 (file)
@@ -549,6 +549,10 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
                case PCI_DEVICE_ID_INTEL_ICH9_3:
                case PCI_DEVICE_ID_INTEL_ICH9_4:
                case PCI_DEVICE_ID_INTEL_ICH9_5:
+               case PCI_DEVICE_ID_INTEL_ICH10_0:
+               case PCI_DEVICE_ID_INTEL_ICH10_1:
+               case PCI_DEVICE_ID_INTEL_ICH10_2:
+               case PCI_DEVICE_ID_INTEL_ICH10_3:
                        r->name = "PIIX/ICH";
                        r->get = pirq_piix_get;
                        r->set = pirq_piix_set;
index 14886b4df284c803fe0f9ee9d2ec5e5cd004c5f1..690a16f606466dad931c6970ccc18d60dc65e484 100644 (file)
@@ -126,6 +126,7 @@ config I2C_I801
            ESB2
            ICH8
            ICH9
+           ICH10
 
          This driver can also be built as a module.  If so, the module
          will be called i2c-i801.
index ca1ccf8b94a216b10b4064327f8b2f730e7c00cc..346f680c5055acd2598537d479922054e8a9cabd 100644 (file)
@@ -34,6 +34,8 @@
     ESB2               269B
     ICH8               283E
     ICH9               2930
+    ICH10              3A30
+    ICH10              3A60
     This driver supports several versions of Intel's I/O Controller Hubs (ICH).
     For SMBus support, they are similar to the PIIX4 and are part
     of Intel's '810' and other chipsets.
@@ -459,6 +461,8 @@ static struct pci_device_id i801_ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_17) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_5) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH9_6) },
+       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_4) },
+       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_5) },
        { 0, }
 };
 
index ec76a9a38f715a988309788e9c09c92c26fe4142..7bc81cc1268761fac63f6d287c359340d7a1ffc2 100644 (file)
@@ -339,6 +339,12 @@ static const struct pci_device_id ahci_pci_tbl[] = {
          board_ahci }, /* ICH9 */
        { PCI_VENDOR_ID_INTEL, 0x294e, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
          board_ahci }, /* ICH9M */
+       { PCI_VENDOR_ID_INTEL, 0x3a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ICH10 */
+       { PCI_VENDOR_ID_INTEL, 0x3a05, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ICH10 */
+       { PCI_VENDOR_ID_INTEL, 0x3a25, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ICH10 */
 
        /* JMicron */
        { 0x197b, 0x2360, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
index a745e8670558191ffa1e2cbe4bd8fb2618108a2f..7ead4217ef49fe6faf9c9449d90ea96b802c858d 100644 (file)
@@ -126,6 +126,7 @@ enum {
        ich7m_sata_ahci         = 7,
        ich8_sata_ahci          = 8,
        ich9_sata_ahci          = 9,
+       ich8_2port_sata         = 10,
 
        /* constants for mapping table */
        P0                      = 0,  /* port 0 */
@@ -193,10 +194,10 @@ static const struct pci_device_id piix_pci_tbl[] = {
        { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7m_sata_ahci },
        /* Enterprise Southbridge 2 (where's the datasheet?) */
        { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
-       /* SATA Controller 1 IDE (ICH8, no datasheet yet) */
+       /* SATA Controller 1 IDE (ICH8) */
        { 0x8086, 0x2820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
-       /* SATA Controller 2 IDE (ICH8, ditto) */
-       { 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+       /* SATA Controller 2 IDE (ICH8) */
+       { 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
        /* Mobile SATA Controller IDE (ICH8M, ditto) */
        { 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
        /* SATA Controller 1 IDE (ICH9) */
@@ -211,6 +212,14 @@ static const struct pci_device_id piix_pci_tbl[] = {
        { 0x8086, 0x292d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich9_sata_ahci },
        /* Mobile SATA Controller 2 IDE (ICH9M) */
        { 0x8086, 0x292e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich9_sata_ahci },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a06, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
 
        { }     /* terminate list */
 };
@@ -394,6 +403,18 @@ static const struct piix_map_db ich9_map_db = {
        },
 };
 
+static const struct piix_map_db ich8_2port_map_db = {
+       .mask = 0x3,
+       .port_enable = 0x3,
+       .map = {
+               /* PM   PS   SM   SS       MAP */
+               {  P0,  NA,  P1,  NA }, /* 00b */
+               {  RV,  RV,  RV,  RV }, /* 01b */
+               {  RV,  RV,  RV,  RV }, /* 10b */
+               {  RV,  RV,  RV,  RV },
+       },
+};
+
 static const struct piix_map_db *piix_map_db_table[] = {
        [ich5_sata]             = &ich5_map_db,
        [esb_sata]              = &ich5_map_db,
@@ -403,6 +424,7 @@ static const struct piix_map_db *piix_map_db_table[] = {
        [ich7m_sata_ahci]       = &ich7m_map_db,
        [ich8_sata_ahci]        = &ich8_map_db,
        [ich9_sata_ahci]        = &ich9_map_db,
+       [ich8_2port_sata]       = &ich8_2port_map_db,
 };
 
 static struct ata_port_info piix_port_info[] = {
@@ -526,6 +548,18 @@ static struct ata_port_info piix_port_info[] = {
                .udma_mask      = 0x7f, /* udma0-6 */
                .port_ops       = &piix_sata_ops,
        },
+       
+       /* ich8_2port_sata: 11: */
+       {
+               .sht            = &piix_sht,
+               .host_flags     = ATA_FLAG_SATA |
+                                 PIIX_FLAG_CHECKINTR | PIIX_FLAG_SCR |
+                                 PIIX_FLAG_AHCI,
+               .pio_mask       = 0x1f, /* pio0-4 */
+               .mwdma_mask     = 0x07, /* mwdma0-2 */
+               .udma_mask      = ATA_UDMA6,
+               .port_ops       = &piix_pata_ops,
+       },
 };
 
 static struct pci_bits piix_enable_bits[] = {
index 652dbbaa2a6c1853998b51ba455bf9ed5b2e2fdb..cad81b2eaf3e99cc6eeac52eca074d40869133d4 100644 (file)
 #define PCI_DEVICE_ID_INTEL_MCH_PC     0x3599
 #define PCI_DEVICE_ID_INTEL_MCH_PC1    0x359a
 #define PCI_DEVICE_ID_INTEL_E7525_MCH  0x359e
+#define PCI_DEVICE_ID_INTEL_ICH10_0    0x3a14
+#define PCI_DEVICE_ID_INTEL_ICH10_1    0x3a16
+#define PCI_DEVICE_ID_INTEL_ICH10_2    0x3a18
+#define PCI_DEVICE_ID_INTEL_ICH10_3    0x3a1a
+#define PCI_DEVICE_ID_INTEL_ICH10_4    0x3a30
+#define PCI_DEVICE_ID_INTEL_ICH10_5    0x3a60
 #define PCI_DEVICE_ID_INTEL_82371SB_0  0x7000
 #define PCI_DEVICE_ID_INTEL_82371SB_1  0x7010
 #define PCI_DEVICE_ID_INTEL_82371SB_2  0x7020
index 4d7af2ae183c4e330bb1c044c72fd598055cebd6..d1d5a1a20317a18863ec0ab1b8778c4f5c3f78ae 100644 (file)
@@ -81,6 +81,7 @@ MODULE_SUPPORTED_DEVICE("{{Intel, ICH6},"
                         "{Intel, ESB2},"
                         "{Intel, ICH8},"
                         "{Intel, ICH9},"
+                        "{Intel, ICH10},"
                         "{ATI, SB450},"
                         "{ATI, SB600},"
                         "{ATI, RS600},"
@@ -1637,6 +1638,8 @@ static struct pci_device_id azx_ids[] = {
        { 0x8086, 0x284b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH8 */
        { 0x8086, 0x293e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH9 */
        { 0x8086, 0x293f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH9 */
+       { 0x8086, 0x3a3e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH10 */
+       { 0x8086, 0x3a6e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH10 */
        { 0x1002, 0x437b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* ATI SB450 */
        { 0x1002, 0x4383, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* ATI SB600 */
        { 0x1002, 0x793b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATIHDMI }, /* ATI RS600 HDMI */