Commit 7bcbc78d authored by Neil Horman's avatar Neil Horman Committed by Ingo Molnar

x86: clean up arch/x86/kernel/early-quirks.c

clean up checkpatch errors. No code changed.

      text    data     bss     dec     hex filename
       705     120       0     825     339 early-quirks.o.before
       705     120       0     825     339 early-quirks.o.after
Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 3b095a04
...@@ -32,10 +32,13 @@ static void __init fix_hypertransport_config(int num, int slot, int func) ...@@ -32,10 +32,13 @@ static void __init fix_hypertransport_config(int num, int slot, int func)
*/ */
htcfg = read_pci_config(num, slot, func, 0x68); htcfg = read_pci_config(num, slot, func, 0x68);
if (htcfg & (1 << 18)) { if (htcfg & (1 << 18)) {
printk(KERN_INFO "Detected use of extended apic ids on hypertransport bus\n"); printk(KERN_INFO "Detected use of extended apic ids "
"on hypertransport bus\n");
if ((htcfg & (1 << 17)) == 0) { if ((htcfg & (1 << 17)) == 0) {
printk(KERN_INFO "Enabling hypertransport extended apic interrupt broadcast\n"); printk(KERN_INFO "Enabling hypertransport extended "
printk(KERN_INFO "Note this is a bios bug, please contact your hw vendor\n"); "apic interrupt broadcast\n");
printk(KERN_INFO "Note this is a bios bug, "
"please contact your hw vendor\n");
htcfg |= (1 << 17); htcfg |= (1 << 17);
write_pci_config(num, slot, func, 0x68, htcfg); write_pci_config(num, slot, func, 0x68, htcfg);
} }
...@@ -130,6 +133,43 @@ static struct chipset early_qrk[] __initdata = { ...@@ -130,6 +133,43 @@ static struct chipset early_qrk[] __initdata = {
{} {}
}; };
static void check_dev_quirk(int num, int slot, int func)
{
u16 class;
u16 vendor;
u16 device;
u8 type;
int i;
class = read_pci_config_16(num, slot, func, PCI_CLASS_DEVICE);
if (class == 0xffff)
return;
vendor = read_pci_config_16(num, slot, func, PCI_VENDOR_ID);
device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
for (i = 0; early_qrk[i].f != NULL; i++) {
if (((early_qrk[i].vendor == PCI_ANY_ID) ||
(early_qrk[i].vendor == vendor)) &&
((early_qrk[i].device == PCI_ANY_ID) ||
(early_qrk[i].device == device)) &&
(!((early_qrk[i].class ^ class) &
early_qrk[i].class_mask))) {
if ((early_qrk[i].flags &
QFLAG_DONE) != QFLAG_DONE)
early_qrk[i].f(num, slot, func);
early_qrk[i].flags |= QFLAG_APPLIED;
}
}
type = read_pci_config_byte(num, slot, func,
PCI_HEADER_TYPE);
if (!(type & 0x80))
return;
}
void __init early_quirks(void) void __init early_quirks(void)
{ {
int num, slot, func; int num, slot, func;
...@@ -138,45 +178,8 @@ void __init early_quirks(void) ...@@ -138,45 +178,8 @@ void __init early_quirks(void)
return; return;
/* Poor man's PCI discovery */ /* Poor man's PCI discovery */
for (num = 0; num < 32; num++) { for (num = 0; num < 32; num++)
for (slot = 0; slot < 32; slot++) { for (slot = 0; slot < 32; slot++)
for (func = 0; func < 8; func++) { for (func = 0; func < 8; func++)
u16 class; check_dev_quirk(num, slot, func);
u16 vendor;
u16 device;
u8 type;
int i;
class = read_pci_config_16(num,slot,func,
PCI_CLASS_REVISION);
if (class == 0xffff)
break;
vendor = read_pci_config_16(num, slot, func,
PCI_VENDOR_ID);
device = read_pci_config_16(num, slot, func,
PCI_DEVICE_ID);
for(i=0;early_qrk[i].f != NULL;i++) {
if (((early_qrk[i].vendor == PCI_ANY_ID) ||
(early_qrk[i].vendor == vendor)) &&
((early_qrk[i].device == PCI_ANY_ID) ||
(early_qrk[i].device == device)) &&
(!((early_qrk[i].class ^ class) &
early_qrk[i].class_mask))) {
if ((early_qrk[i].flags & QFLAG_DONE) != QFLAG_DONE)
early_qrk[i].f(num, slot, func);
early_qrk[i].flags |= QFLAG_APPLIED;
}
}
type = read_pci_config_byte(num, slot, func,
PCI_HEADER_TYPE);
if (!(type & 0x80))
break;
}
}
}
} }
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