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) ...@@ -313,22 +313,6 @@ static __init int disable_smbus(struct dmi_blacklist *d)
return 0; 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 * Check for clue free BIOS implementations who use
* the following QA technique * the following QA technique
...@@ -816,12 +800,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={ ...@@ -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 * Generic per vendor APM settings
*/ */
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#define PIRQ_VERSION 0x0100 #define PIRQ_VERSION 0x0100
static int broken_hp_bios_irq9; static int broken_hp_bios_irq9;
int acer_tm360_irqrouting; static int acer_tm360_irqrouting;
static struct irq_routing_table *pirq_table; static struct irq_routing_table *pirq_table;
...@@ -916,6 +916,19 @@ static int __init fix_broken_hp_bios_irq9(struct dmi_system_id *d) ...@@ -916,6 +916,19 @@ static int __init fix_broken_hp_bios_irq9(struct dmi_system_id *d)
return 0; 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[] = { static struct dmi_system_id __initdata pciirq_dmi_table[] = {
{ {
.callback = fix_broken_hp_bios_irq9, .callback = fix_broken_hp_bios_irq9,
...@@ -927,6 +940,14 @@ static struct dmi_system_id __initdata pciirq_dmi_table[] = { ...@@ -927,6 +940,14 @@ static struct dmi_system_id __initdata pciirq_dmi_table[] = {
DMI_MATCH(DMI_BOARD_VERSION, "OmniBook N32N-736"), 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