lkml.org 
[lkml]   [2001]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Date
Subject[PATCH] SMSC SLC90E66: IRQ router support and PCI quirk
From
Hi all,

SMSC SLC90E66 is southbridge chip, designed to be almost exact clone of
Intel PIIX4. So it needs same handling as an original chip.

Attached two patches against 2.4.5-ac17,
first adds IRQ router support (using functions for Intel PIIX4),
second adds quirk handling (ACPI/SMBus resources) same as for original PIIX4.

Both patches are untested, written according to SLC90E66 datasheet.

Best regards.

--
Andrey Panin | Embedded systems software engineer
pazke@orbita1.ru | PGP key: http://www.orbita1.ru/~pazke/AndreyPanin.ascdiff -ur linux.vanilla/arch/i386/kernel/pci-irq.c linux/arch/i386/kernel/pci-irq.c
--- linux.vanilla/arch/i386/kernel/pci-irq.c Tue Jun 26 10:38:25 2001
+++ linux/arch/i386/kernel/pci-irq.c Tue Jun 26 11:07:27 2001
@@ -174,7 +174,7 @@
}

/*
- * The Intel PIIX4 pirq rules are fairly simple: "pirq" is
+ * The Intel PIIX4 and SMSC SLC90E66 pirq rules are fairly simple: "pirq" is
* just a pointer to the config space.
*/
static int pirq_piix_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
@@ -448,6 +448,7 @@
{ "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371MX, pirq_piix_get, pirq_piix_set },
{ "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443MX_0, pirq_piix_get, pirq_piix_set },
{ "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0, pirq_piix_get, pirq_piix_set },
+ { "SLC90E66", PCI_VENDOR_ID_EFAR, PCI_DEVICE_ID_EFAR_SLC90E66_0, pirq_piix_get, pirq_piix_set },

{ "ALI", PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, pirq_ali_get, pirq_ali_set },
diff -ur linux.vanilla/arch/i386/kernel/pci-pc.c linux/arch/i386/kernel/pci-pc.c
--- linux.vanilla/arch/i386/kernel/pci-pc.c Tue Jun 26 10:38:25 2001
+++ linux/arch/i386/kernel/pci-pc.c Tue Jun 26 15:03:16 2001
@@ -943,7 +943,7 @@
static void __init pci_fixup_piix4_acpi(struct pci_dev *d)
{
/*
- * PIIX4 ACPI device: hardwired IRQ9
+ * Intel PIIX4 and SMSC SLC90E66 ACPI device: hardwired IRQ9
*/
d->irq = 9;
}
@@ -996,6 +996,7 @@
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C598_1, pci_fixup_via691_2 },
#endif
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, pci_fixup_piix4_acpi },
+ { PCI_FIXUP_HEADER, PCI_DEVICE_ID_EFAR, PCI_DEVICE_ID_EFAR_SLC90E66_3, pci_fixup_piix4_acpi },
{ 0 }
};

diff -ur linux.vanilla/drivers/pci/quirks.c linux/drivers/pci/quirks.c
--- linux.vanilla/drivers/pci/quirks.c Tue Jun 26 10:37:55 2001
+++ linux/drivers/pci/quirks.c Tue Jun 26 15:00:31 2001
@@ -209,7 +209,7 @@
}

/*
- * PIIX4 ACPI: Two IO regions pointed to by longwords at
+ * Intel PIIX4 and SMSC SLC90E66 ACPI: Two IO regions pointed to by longwords at
* 0x40 (64 bytes of ACPI registers)
* 0x90 (32 bytes of SMB registers)
*/
@@ -423,6 +423,7 @@
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_vt82c586_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi },
+ { PCI_FIXUP_HEADER, PCI_DEVICE_ID_EFAR, PCI_DEVICE_ID_EFAR_SLC90E66_3, quirk_piix4_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, quirk_ali7101_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_2, quirk_piix3_usb },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_2, quirk_piix3_usb },[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 12:55    [W:0.034 / U:0.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site