Mailing List Archive

[linux-2.6.18-xen] Support I2C bus, and SATA IDE/AHCI modes for new Intel PCH chipset.
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1227612124 0
# Node ID f236d7def9944909bf40015ff4a08817b0803ed9
# Parent bf8b1ee634e20283bb6f874942c40cb83959f2a6
Support I2C bus,and SATA IDE/AHCI modes for new Intel PCH chipset.

Signed-off-by: Scott Parker <james.s.parker@intel.com>
---
arch/i386/pci/irq.c | 9 +++++++++
drivers/i2c/busses/Kconfig | 1 +
drivers/i2c/busses/i2c-i801.c | 2 ++
drivers/scsi/ahci.c | 25 +++++++++++++++++++++++++
drivers/scsi/ata_piix.c | 12 ++++++++++++
include/linux/pci_ids.h | 3 +++
sound/pci/hda/hda_intel.c | 2 ++
7 files changed, 54 insertions(+)

diff -r bf8b1ee634e2 -r f236d7def994 arch/i386/pci/irq.c
--- a/arch/i386/pci/irq.c Tue Nov 25 11:19:41 2008 +0000
+++ b/arch/i386/pci/irq.c Tue Nov 25 11:22:04 2008 +0000
@@ -558,6 +558,15 @@ static __init int intel_router_probe(str
r->set = pirq_piix_set;
return 1;
}
+
+ if ((device >= PCI_DEVICE_ID_INTEL_PCH_LPC_MIN) &&
+ (device <= PCI_DEVICE_ID_INTEL_PCH_LPC_MAX)) {
+ r->name = "PIIX/ICH";
+ r->get = pirq_piix_get;
+ r->set = pirq_piix_set;
+ return 1;
+ }
+
return 0;
}

diff -r bf8b1ee634e2 -r f236d7def994 drivers/i2c/busses/Kconfig
--- a/drivers/i2c/busses/Kconfig Tue Nov 25 11:19:41 2008 +0000
+++ b/drivers/i2c/busses/Kconfig Tue Nov 25 11:22:04 2008 +0000
@@ -127,6 +127,7 @@ config I2C_I801
ICH8
ICH9
ICH10
+ PCH

This driver can also be built as a module. If so, the module
will be called i2c-i801.
diff -r bf8b1ee634e2 -r f236d7def994 drivers/i2c/busses/i2c-i801.c
--- a/drivers/i2c/busses/i2c-i801.c Tue Nov 25 11:19:41 2008 +0000
+++ b/drivers/i2c/busses/i2c-i801.c Tue Nov 25 11:22:04 2008 +0000
@@ -36,6 +36,7 @@
ICH9 2930
ICH10 3A30
ICH10 3A60
+ PCH 3B30
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.
@@ -463,6 +464,7 @@ static struct pci_device_id i801_ids[] =
{ 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) },
+ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PCH_SMBUS) },
{ 0, }
};

diff -r bf8b1ee634e2 -r f236d7def994 drivers/scsi/ahci.c
--- a/drivers/scsi/ahci.c Tue Nov 25 11:19:41 2008 +0000
+++ b/drivers/scsi/ahci.c Tue Nov 25 11:22:04 2008 +0000
@@ -370,6 +370,31 @@ static const struct pci_device_id ahci_p
board_ahci }, /* ICH10 */
{ PCI_VENDOR_ID_INTEL, 0x3a25, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
board_ahci }, /* ICH10 */
+ /* SATA Controller AHCI (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b22, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller AHCI (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b23, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller RAID (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b24, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller RAID (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b25, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller Mobile AHCI (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b29, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller Mobile AHCI (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b2f, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller Mobile RAID (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b2b, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+ /* SATA Controller Mobile RAID (PCH) */
+ { PCI_VENDOR_ID_INTEL, 0x3b2c, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_ahci },
+

/* JMicron */
{ 0x197b, 0x2360, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
diff -r bf8b1ee634e2 -r f236d7def994 drivers/scsi/ata_piix.c
--- a/drivers/scsi/ata_piix.c Tue Nov 25 11:19:41 2008 +0000
+++ b/drivers/scsi/ata_piix.c Tue Nov 25 11:22:04 2008 +0000
@@ -220,6 +220,18 @@ static const struct pci_device_id piix_p
{ 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 },
+ /* SATA Controller IDE (PCH) */
+ { 0x8086, 0x3b20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+ /* SATA Controller IDE (PCH) */
+ { 0x8086, 0x3b21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+ /* SATA Controller IDE (PCH) */
+ { 0x8086, 0x3b26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+ /* SATA Controller IDE (PCH) */
+ { 0x8086, 0x3b28, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+ /* SATA Controller IDE (PCH) */
+ { 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+ /* SATA Controller IDE (PCH) */
+ { 0x8086, 0x3b2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },

{ } /* terminate list */
};
diff -r bf8b1ee634e2 -r f236d7def994 include/linux/pci_ids.h
--- a/include/linux/pci_ids.h Tue Nov 25 11:19:41 2008 +0000
+++ b/include/linux/pci_ids.h Tue Nov 25 11:22:04 2008 +0000
@@ -2219,6 +2219,9 @@
#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_PCH_LPC_MIN 0x3b00
+#define PCI_DEVICE_ID_INTEL_PCH_LPC_MAX 0x3b1f
+#define PCI_DEVICE_ID_INTEL_PCH_SMBUS 0x3b30
#define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000
#define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010
#define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020
diff -r bf8b1ee634e2 -r f236d7def994 sound/pci/hda/hda_intel.c
--- a/sound/pci/hda/hda_intel.c Tue Nov 25 11:19:41 2008 +0000
+++ b/sound/pci/hda/hda_intel.c Tue Nov 25 11:22:04 2008 +0000
@@ -82,6 +82,7 @@ MODULE_SUPPORTED_DEVICE("{{Intel, ICH6},
"{Intel, ICH8},"
"{Intel, ICH9},"
"{Intel, ICH10},"
+ "{Intel, PCH},"
"{ATI, SB450},"
"{ATI, SB600},"
"{ATI, RS600},"
@@ -1640,6 +1641,7 @@ static struct pci_device_id azx_ids[] =
{ 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 */
+ { 0x8086, 0x3b56, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* PCH */
{ 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 */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog