Commit a178f9c8 authored by Andrey Panin's avatar Andrey Panin Committed by Linus Torvalds

[PATCH] dmi_scan: port Acer laptop irq routing workaround to new DMI probing

This patch moves PCI IRQ routing workaround for Acer TravelMate 360 laptop to
arch/i386/pci/irq.c and makes acer_tm360_irqrouting variable static.  It also
fixes VisWs build error caused by this workaround code.
Signed-off-by: default avatarAndrey Panin <pazke@donpac.ru>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 969eb7b8
......@@ -313,22 +313,6 @@ static __init int disable_smbus(struct dmi_blacklist *d)
return 0;
}
/*
* Work around broken Acer TravelMate 360 Notebooks which assign Cardbus to
* IRQ 11 even though it is actually wired to IRQ 10
*/
static __init int fix_acer_tm360_irqrouting(struct dmi_blacklist *d)
{
#ifdef CONFIG_PCI
extern int acer_tm360_irqrouting;
if (acer_tm360_irqrouting == 0) {
acer_tm360_irqrouting = 1;
printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident);
}
#endif
return 0;
}
/*
* Check for clue free BIOS implementations who use
* the following QA technique
......@@ -816,12 +800,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
} },
{ fix_acer_tm360_irqrouting, "Acer TravelMate 36x Laptop", {
MATCH(DMI_SYS_VENDOR, "Acer"),
MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
NO_MATCH, NO_MATCH
} },
/*
* Generic per vendor APM settings
*/
......
......@@ -24,7 +24,7 @@
#define PIRQ_VERSION 0x0100
static int broken_hp_bios_irq9;
int acer_tm360_irqrouting;
static int acer_tm360_irqrouting;
static struct irq_routing_table *pirq_table;
......@@ -916,6 +916,19 @@ static int __init fix_broken_hp_bios_irq9(struct dmi_system_id *d)
return 0;
}
/*
* Work around broken Acer TravelMate 360 Notebooks which assign
* Cardbus to IRQ 11 even though it is actually wired to IRQ 10
*/
static int __init fix_acer_tm360_irqrouting(struct dmi_system_id *d)
{
if (!acer_tm360_irqrouting) {
acer_tm360_irqrouting = 1;
printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident);
}
return 0;
}
static struct dmi_system_id __initdata pciirq_dmi_table[] = {
{
.callback = fix_broken_hp_bios_irq9,
......@@ -927,6 +940,14 @@ static struct dmi_system_id __initdata pciirq_dmi_table[] = {
DMI_MATCH(DMI_BOARD_VERSION, "OmniBook N32N-736"),
},
},
{
.callback = fix_acer_tm360_irqrouting,
.ident = "Acer TravelMate 36x Laptop",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
},
},
{ }
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment