x86: unify construct_default_ioirq_mptable
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
e950bea8bf
commit
62441bf1e0
2 changed files with 21 additions and 12 deletions
|
@ -436,13 +436,13 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type)
|
||||||
* If it does, we assume it's valid.
|
* If it does, we assume it's valid.
|
||||||
*/
|
*/
|
||||||
if (mpc_default_type == 5) {
|
if (mpc_default_type == 5) {
|
||||||
printk(KERN_INFO
|
printk(KERN_INFO "ISA/PCI bus type with no IRQ information... "
|
||||||
"ISA/PCI bus type with no IRQ information... falling back to ELCR\n");
|
"falling back to ELCR\n");
|
||||||
|
|
||||||
if (ELCR_trigger(0) || ELCR_trigger(1) || ELCR_trigger(2)
|
if (ELCR_trigger(0) || ELCR_trigger(1) || ELCR_trigger(2) ||
|
||||||
|| ELCR_trigger(13))
|
ELCR_trigger(13))
|
||||||
printk(KERN_WARNING
|
printk(KERN_ERR "ELCR contains invalid data... "
|
||||||
"ELCR contains invalid data... not using ELCR\n");
|
"not using ELCR\n");
|
||||||
else {
|
else {
|
||||||
printk(KERN_INFO
|
printk(KERN_INFO
|
||||||
"Using ELCR to identify PCI interrupts\n");
|
"Using ELCR to identify PCI interrupts\n");
|
||||||
|
@ -523,8 +523,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
|
||||||
bus.mpc_busid = 0;
|
bus.mpc_busid = 0;
|
||||||
switch (mpc_default_type) {
|
switch (mpc_default_type) {
|
||||||
default:
|
default:
|
||||||
printk("???\n");
|
printk(KERN_ERR "???\nUnknown standard configuration %d\n",
|
||||||
printk(KERN_ERR "Unknown standard configuration %d\n",
|
|
||||||
mpc_default_type);
|
mpc_default_type);
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -401,10 +401,12 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
|
||||||
* 2 CPUs, numbered 0 & 1.
|
* 2 CPUs, numbered 0 & 1.
|
||||||
*/
|
*/
|
||||||
processor.mpc_type = MP_PROCESSOR;
|
processor.mpc_type = MP_PROCESSOR;
|
||||||
processor.mpc_apicver = 0;
|
/* Either an integrated APIC or a discrete 82489DX. */
|
||||||
|
processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
|
||||||
processor.mpc_cpuflag = CPU_ENABLED;
|
processor.mpc_cpuflag = CPU_ENABLED;
|
||||||
processor.mpc_cpufeature = 0;
|
processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
|
||||||
processor.mpc_featureflag = 0;
|
(boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask;
|
||||||
|
processor.mpc_featureflag = boot_cpu_data.x86_capability[0];
|
||||||
processor.mpc_reserved[0] = 0;
|
processor.mpc_reserved[0] = 0;
|
||||||
processor.mpc_reserved[1] = 0;
|
processor.mpc_reserved[1] = 0;
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
|
@ -423,6 +425,14 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
|
||||||
case 5:
|
case 5:
|
||||||
memcpy(bus.mpc_bustype, "ISA ", 6);
|
memcpy(bus.mpc_bustype, "ISA ", 6);
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
case 6:
|
||||||
|
case 3:
|
||||||
|
memcpy(bus.mpc_bustype, "EISA ", 6);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
case 7:
|
||||||
|
memcpy(bus.mpc_bustype, "MCA ", 6);
|
||||||
}
|
}
|
||||||
MP_bus_info(&bus);
|
MP_bus_info(&bus);
|
||||||
if (mpc_default_type > 4) {
|
if (mpc_default_type > 4) {
|
||||||
|
@ -433,7 +443,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
|
||||||
|
|
||||||
ioapic.mpc_type = MP_IOAPIC;
|
ioapic.mpc_type = MP_IOAPIC;
|
||||||
ioapic.mpc_apicid = 2;
|
ioapic.mpc_apicid = 2;
|
||||||
ioapic.mpc_apicver = 0;
|
ioapic.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
|
||||||
ioapic.mpc_flags = MPC_APIC_USABLE;
|
ioapic.mpc_flags = MPC_APIC_USABLE;
|
||||||
ioapic.mpc_apicaddr = 0xFEC00000;
|
ioapic.mpc_apicaddr = 0xFEC00000;
|
||||||
MP_ioapic_info(&ioapic);
|
MP_ioapic_info(&ioapic);
|
||||||
|
|
Loading…
Reference in a new issue