From: Brown, L. <len...@in...> - 2003-09-06 01:28:06
|
This also was pulled into the acpi patch earlier this week -- sorry I didn't mention it to you earlier -- e-mail list latency has been horrible lately. Thanks, -Len > -----Original Message----- > From: Andrew de Quincey [mailto:ad...@li...]=20 > Sent: Friday, September 05, 2003 8:16 PM > To: Jeff Garzik > Cc: tor...@os...; lkml;=20 > acp...@li...; linux-acpi > Subject: [PATCH] 2.4.23-pre3 ACPI fixes series (3/3) >=20 >=20 > This patch is actually a patch by "Jun Nakajima"=20 > <jun...@in...> > When setting an IRQ link device, it checks if the value=20 > returned by _CRS is 0.=20 > If so, it assumes everything went OK. This fixes problems on=20 > MANY VIA bioses. > It seems to be a standard-ish way of saying "the _CRS IRQ=20 > setting cannot be read". >=20 >=20 > --- linux-2.4.23-pre3.extirq/drivers/acpi/pci_link.c=09 > 2003-09-05 23:54:59.945755216 +0100 > +++ linux-2.4.23-pre3.null_crs/drivers/acpi/pci_link.c=09 > 2003-09-05 23:57:39.782456344 +0100 > @@ -277,6 +277,32 @@ > =20 > =20 > static int > +acpi_pci_link_try_get_current ( > + struct acpi_pci_link *link, > + int irq) > +{ > + int result; > + > + ACPI_FUNCTION_TRACE("acpi_pci_link_try_get_current"); > + =20 > + result =3D acpi_pci_link_get_current(link); > + if (result && link->irq.active)=20 > + { > + return_VALUE(result); > + } > + > + if (!link->irq.active)=20 > + { > + ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "No active IRQ=20 > resource found\n")); > + printk(KERN_WARNING "_CRS returns NULL! Using=20 > IRQ %d for device (%s [%s]).\n", irq,=20 > acpi_device_name(link->device), acpi_device_bid(link->device)); > + link->irq.active =3D irq; > + } > + =20 > + return 0; > +} > + > + > +static int > acpi_pci_link_set ( > struct acpi_pci_link *link, > int irq) > @@ -382,7 +408,7 @@ > } > =20 > /* Make sure the active IRQ is the one we requested. */ > - result =3D acpi_pci_link_get_current(link); > + result =3D acpi_pci_link_try_get_current(link, irq); > if (result) { > return_VALUE(result); > } > @@ -600,10 +626,6 @@ > else > printk(" %d", link->irq.possible[i]); > } > - if (!link->irq.active) > - printk(", disabled"); > - else if (!found) > - printk(", enabled at IRQ %d", link->irq.active); > printk(")\n"); > =20 > /* TBD: Acquire/release lock */ >=20 > - > To unsubscribe from this list: send the line "unsubscribe=20 > linux-kernel" in > the body of a message to maj...@vg... > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ >=20 |