Re: PCI & IRQ problems on TI Extensa 600CD

From: David Jez
Date: Fri Oct 29 2004 - 03:26:34 EST


Hi all,

Last night i solved this problem. It cause by crippled PCI chipset
parody called ALi and his perverse undocumented "features". I think that
use ISA bridge as IRQ router if we haven't any router is guite good idea.
Everythink with this patch works fine even though i have different irq in
win. See attached logs.
Jim, can you try this patch please? I assume that you have some kind
of ALi chipset too. Maybe this solves your problem too.
Martin, Marcelo, please aply :-).

PS: is here anybody who have relevant datascheet?

Regards,
--
-------------------------------------------------------
David "Dave" Jez Brno, CZ, Europe
E-mail: dave.jez@xxxxxxxxx
PGP key: finger xjezda00@xxxxxxxxxxxxxxxx
---------=[ ~EOF ]=------------------------------------
pci-irq.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)

diff -urN linux.orig/arch/i386/kernel/pci-irq.c linux/arch/i386/kernel/pci-irq.c
--- linux.orig/arch/i386/kernel/pci-irq.c Fri Sep 24 15:19:06 2004
+++ linux/arch/i386/kernel/pci-irq.c Thu Oct 28 15:49:26 2004
@@ -736,6 +736,7 @@
{
switch(device)
{
+ case PCI_DEVICE_ID_AL_M1523:
case PCI_DEVICE_ID_AL_M1533:
r->name = "ALI";
r->get = pirq_ali_get;
@@ -814,8 +815,18 @@

pirq_router_dev = pci_find_slot(rt->rtr_bus, rt->rtr_devfn);
if (!pirq_router_dev) {
- DBG("PCI: Interrupt router not found at %02x:%02x\n", rt->rtr_bus, rt->rtr_devfn);
- return;
+ DBG("PCI: Interrupt router not found at %02x:%02x. Aieee, do you have ALi chipset?\n",
+ rt->rtr_bus, rt->rtr_devfn);
+ pirq_router_dev = (pci_find_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1523, NULL));
+ if (!pirq_router_dev)
+ pirq_router_dev = (pci_find_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL));
+ if (!pirq_router_dev) {
+ DBG("PC: ...hmmm sorry...\n");
+ return;
+ } else {
+ DBG("PCI: OK, found %04x:%04x. Let's playing a game!\n",
+ pirq_router_dev->vendor, pirq_router_dev->device);
+ }
}

for( h = pirq_routers; h->vendor; h++) {

Attachment: data.tgz
Description: GNU Unix tar archive