aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorJaswinder Singh Rajput <jaswinderrajput@gmail.com>2009-01-12 07:17:22 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-14 05:58:35 -0500
commitc2c21745ecba23c74690a124bcd371f83bd71e45 (patch)
tree7332d81935e67ae3175e92137b8b04fabac693f2 /arch/x86
parentb5ba7e6d1e7e2ac808afd21be1e56dc34caf20e6 (diff)
x86: replacing mp_config_intsrc with mpc_intsrc
Impact: cleanup, solve 80 columns wrap problems Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/include/asm/io_apic.h16
-rw-r--r--arch/x86/kernel/acpi/boot.c70
-rw-r--r--arch/x86/kernel/io_apic.c64
-rw-r--r--arch/x86/kernel/mpparse.c68
4 files changed, 101 insertions, 117 deletions
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index 5a56ae9b505a..08ec793aa043 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -114,22 +114,8 @@ struct IR_IO_APIC_route_entry {
114extern int nr_ioapics; 114extern int nr_ioapics;
115extern int nr_ioapic_registers[MAX_IO_APICS]; 115extern int nr_ioapic_registers[MAX_IO_APICS];
116 116
117/*
118 * MP-BIOS irq configuration table structures:
119 */
120
121#define MP_MAX_IOAPIC_PIN 127 117#define MP_MAX_IOAPIC_PIN 127
122 118
123struct mp_config_intsrc {
124 unsigned int mp_dstapic;
125 unsigned char mp_type;
126 unsigned char mp_irqtype;
127 unsigned short mp_irqflag;
128 unsigned char mp_srcbus;
129 unsigned char mp_srcbusirq;
130 unsigned char mp_dstirq;
131};
132
133/* I/O APIC entries */ 119/* I/O APIC entries */
134extern struct mpc_ioapic mp_ioapics[MAX_IO_APICS]; 120extern struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
135 121
@@ -137,7 +123,7 @@ extern struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
137extern int mp_irq_entries; 123extern int mp_irq_entries;
138 124
139/* MP IRQ source entries */ 125/* MP IRQ source entries */
140extern struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 126extern struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
141 127
142/* non-0 if default (table-less) MP configuration */ 128/* non-0 if default (table-less) MP configuration */
143extern int mpc_default_type; 129extern int mpc_default_type;
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 2b27019e64f8..4cb5964f1499 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -973,19 +973,19 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
973 nr_ioapics++; 973 nr_ioapics++;
974} 974}
975 975
976static void assign_to_mp_irq(struct mp_config_intsrc *m, 976static void assign_to_mp_irq(struct mpc_intsrc *m,
977 struct mp_config_intsrc *mp_irq) 977 struct mpc_intsrc *mp_irq)
978{ 978{
979 memcpy(mp_irq, m, sizeof(struct mp_config_intsrc)); 979 memcpy(mp_irq, m, sizeof(struct mpc_intsrc));
980} 980}
981 981
982static int mp_irq_cmp(struct mp_config_intsrc *mp_irq, 982static int mp_irq_cmp(struct mpc_intsrc *mp_irq,
983 struct mp_config_intsrc *m) 983 struct mpc_intsrc *m)
984{ 984{
985 return memcmp(mp_irq, m, sizeof(struct mp_config_intsrc)); 985 return memcmp(mp_irq, m, sizeof(struct mpc_intsrc));
986} 986}
987 987
988static void save_mp_irq(struct mp_config_intsrc *m) 988static void save_mp_irq(struct mpc_intsrc *m)
989{ 989{
990 int i; 990 int i;
991 991
@@ -1003,7 +1003,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1003{ 1003{
1004 int ioapic; 1004 int ioapic;
1005 int pin; 1005 int pin;
1006 struct mp_config_intsrc mp_irq; 1006 struct mpc_intsrc mp_irq;
1007 1007
1008 /* 1008 /*
1009 * Convert 'gsi' to 'ioapic.pin'. 1009 * Convert 'gsi' to 'ioapic.pin'.
@@ -1021,13 +1021,13 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1021 if ((bus_irq == 0) && (trigger == 3)) 1021 if ((bus_irq == 0) && (trigger == 3))
1022 trigger = 1; 1022 trigger = 1;
1023 1023
1024 mp_irq.mp_type = MP_INTSRC; 1024 mp_irq.type = MP_INTSRC;
1025 mp_irq.mp_irqtype = mp_INT; 1025 mp_irq.irqtype = mp_INT;
1026 mp_irq.mp_irqflag = (trigger << 2) | polarity; 1026 mp_irq.irqflag = (trigger << 2) | polarity;
1027 mp_irq.mp_srcbus = MP_ISA_BUS; 1027 mp_irq.srcbus = MP_ISA_BUS;
1028 mp_irq.mp_srcbusirq = bus_irq; /* IRQ */ 1028 mp_irq.srcbusirq = bus_irq; /* IRQ */
1029 mp_irq.mp_dstapic = mp_ioapics[ioapic].apicid; /* APIC ID */ 1029 mp_irq.dstapic = mp_ioapics[ioapic].apicid; /* APIC ID */
1030 mp_irq.mp_dstirq = pin; /* INTIN# */ 1030 mp_irq.dstirq = pin; /* INTIN# */
1031 1031
1032 save_mp_irq(&mp_irq); 1032 save_mp_irq(&mp_irq);
1033} 1033}
@@ -1037,7 +1037,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1037 int i; 1037 int i;
1038 int ioapic; 1038 int ioapic;
1039 unsigned int dstapic; 1039 unsigned int dstapic;
1040 struct mp_config_intsrc mp_irq; 1040 struct mpc_intsrc mp_irq;
1041 1041
1042#if defined (CONFIG_MCA) || defined (CONFIG_EISA) 1042#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
1043 /* 1043 /*
@@ -1072,16 +1072,14 @@ void __init mp_config_acpi_legacy_irqs(void)
1072 int idx; 1072 int idx;
1073 1073
1074 for (idx = 0; idx < mp_irq_entries; idx++) { 1074 for (idx = 0; idx < mp_irq_entries; idx++) {
1075 struct mp_config_intsrc *irq = mp_irqs + idx; 1075 struct mpc_intsrc *irq = mp_irqs + idx;
1076 1076
1077 /* Do we already have a mapping for this ISA IRQ? */ 1077 /* Do we already have a mapping for this ISA IRQ? */
1078 if (irq->mp_srcbus == MP_ISA_BUS 1078 if (irq->srcbus == MP_ISA_BUS && irq->srcbusirq == i)
1079 && irq->mp_srcbusirq == i)
1080 break; 1079 break;
1081 1080
1082 /* Do we already have a mapping for this IOAPIC pin */ 1081 /* Do we already have a mapping for this IOAPIC pin */
1083 if (irq->mp_dstapic == dstapic && 1082 if (irq->dstapic == dstapic && irq->dstirq == i)
1084 irq->mp_dstirq == i)
1085 break; 1083 break;
1086 } 1084 }
1087 1085
@@ -1090,13 +1088,13 @@ void __init mp_config_acpi_legacy_irqs(void)
1090 continue; /* IRQ already used */ 1088 continue; /* IRQ already used */
1091 } 1089 }
1092 1090
1093 mp_irq.mp_type = MP_INTSRC; 1091 mp_irq.type = MP_INTSRC;
1094 mp_irq.mp_irqflag = 0; /* Conforming */ 1092 mp_irq.irqflag = 0; /* Conforming */
1095 mp_irq.mp_srcbus = MP_ISA_BUS; 1093 mp_irq.srcbus = MP_ISA_BUS;
1096 mp_irq.mp_dstapic = dstapic; 1094 mp_irq.dstapic = dstapic;
1097 mp_irq.mp_irqtype = mp_INT; 1095 mp_irq.irqtype = mp_INT;
1098 mp_irq.mp_srcbusirq = i; /* Identity mapped */ 1096 mp_irq.srcbusirq = i; /* Identity mapped */
1099 mp_irq.mp_dstirq = i; 1097 mp_irq.dstirq = i;
1100 1098
1101 save_mp_irq(&mp_irq); 1099 save_mp_irq(&mp_irq);
1102 } 1100 }
@@ -1207,22 +1205,22 @@ int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
1207 u32 gsi, int triggering, int polarity) 1205 u32 gsi, int triggering, int polarity)
1208{ 1206{
1209#ifdef CONFIG_X86_MPPARSE 1207#ifdef CONFIG_X86_MPPARSE
1210 struct mp_config_intsrc mp_irq; 1208 struct mpc_intsrc mp_irq;
1211 int ioapic; 1209 int ioapic;
1212 1210
1213 if (!acpi_ioapic) 1211 if (!acpi_ioapic)
1214 return 0; 1212 return 0;
1215 1213
1216 /* print the entry should happen on mptable identically */ 1214 /* print the entry should happen on mptable identically */
1217 mp_irq.mp_type = MP_INTSRC; 1215 mp_irq.type = MP_INTSRC;
1218 mp_irq.mp_irqtype = mp_INT; 1216 mp_irq.irqtype = mp_INT;
1219 mp_irq.mp_irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) | 1217 mp_irq.irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) |
1220 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3); 1218 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3);
1221 mp_irq.mp_srcbus = number; 1219 mp_irq.srcbus = number;
1222 mp_irq.mp_srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3); 1220 mp_irq.srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3);
1223 ioapic = mp_find_ioapic(gsi); 1221 ioapic = mp_find_ioapic(gsi);
1224 mp_irq.mp_dstapic = mp_ioapic_routing[ioapic].apic_id; 1222 mp_irq.dstapic = mp_ioapic_routing[ioapic].apic_id;
1225 mp_irq.mp_dstirq = gsi - mp_ioapic_routing[ioapic].gsi_base; 1223 mp_irq.dstirq = gsi - mp_ioapic_routing[ioapic].gsi_base;
1226 1224
1227 save_mp_irq(&mp_irq); 1225 save_mp_irq(&mp_irq);
1228#endif 1226#endif
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index 6c51ecdfbf49..79b8c0c72d34 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -87,7 +87,7 @@ struct mpc_ioapic mp_ioapics[MAX_IO_APICS];
87int nr_ioapics; 87int nr_ioapics;
88 88
89/* MP IRQ source entries */ 89/* MP IRQ source entries */
90struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 90struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
91 91
92/* # of MP IRQ source entries */ 92/* # of MP IRQ source entries */
93int mp_irq_entries; 93int mp_irq_entries;
@@ -945,10 +945,10 @@ static int find_irq_entry(int apic, int pin, int type)
945 int i; 945 int i;
946 946
947 for (i = 0; i < mp_irq_entries; i++) 947 for (i = 0; i < mp_irq_entries; i++)
948 if (mp_irqs[i].mp_irqtype == type && 948 if (mp_irqs[i].irqtype == type &&
949 (mp_irqs[i].mp_dstapic == mp_ioapics[apic].apicid || 949 (mp_irqs[i].dstapic == mp_ioapics[apic].apicid ||
950 mp_irqs[i].mp_dstapic == MP_APIC_ALL) && 950 mp_irqs[i].dstapic == MP_APIC_ALL) &&
951 mp_irqs[i].mp_dstirq == pin) 951 mp_irqs[i].dstirq == pin)
952 return i; 952 return i;
953 953
954 return -1; 954 return -1;
@@ -962,13 +962,13 @@ static int __init find_isa_irq_pin(int irq, int type)
962 int i; 962 int i;
963 963
964 for (i = 0; i < mp_irq_entries; i++) { 964 for (i = 0; i < mp_irq_entries; i++) {
965 int lbus = mp_irqs[i].mp_srcbus; 965 int lbus = mp_irqs[i].srcbus;
966 966
967 if (test_bit(lbus, mp_bus_not_pci) && 967 if (test_bit(lbus, mp_bus_not_pci) &&
968 (mp_irqs[i].mp_irqtype == type) && 968 (mp_irqs[i].irqtype == type) &&
969 (mp_irqs[i].mp_srcbusirq == irq)) 969 (mp_irqs[i].srcbusirq == irq))
970 970
971 return mp_irqs[i].mp_dstirq; 971 return mp_irqs[i].dstirq;
972 } 972 }
973 return -1; 973 return -1;
974} 974}
@@ -978,17 +978,17 @@ static int __init find_isa_irq_apic(int irq, int type)
978 int i; 978 int i;
979 979
980 for (i = 0; i < mp_irq_entries; i++) { 980 for (i = 0; i < mp_irq_entries; i++) {
981 int lbus = mp_irqs[i].mp_srcbus; 981 int lbus = mp_irqs[i].srcbus;
982 982
983 if (test_bit(lbus, mp_bus_not_pci) && 983 if (test_bit(lbus, mp_bus_not_pci) &&
984 (mp_irqs[i].mp_irqtype == type) && 984 (mp_irqs[i].irqtype == type) &&
985 (mp_irqs[i].mp_srcbusirq == irq)) 985 (mp_irqs[i].srcbusirq == irq))
986 break; 986 break;
987 } 987 }
988 if (i < mp_irq_entries) { 988 if (i < mp_irq_entries) {
989 int apic; 989 int apic;
990 for(apic = 0; apic < nr_ioapics; apic++) { 990 for(apic = 0; apic < nr_ioapics; apic++) {
991 if (mp_ioapics[apic].apicid == mp_irqs[i].mp_dstapic) 991 if (mp_ioapics[apic].apicid == mp_irqs[i].dstapic)
992 return apic; 992 return apic;
993 } 993 }
994 } 994 }
@@ -1013,23 +1013,23 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
1013 return -1; 1013 return -1;
1014 } 1014 }
1015 for (i = 0; i < mp_irq_entries; i++) { 1015 for (i = 0; i < mp_irq_entries; i++) {
1016 int lbus = mp_irqs[i].mp_srcbus; 1016 int lbus = mp_irqs[i].srcbus;
1017 1017
1018 for (apic = 0; apic < nr_ioapics; apic++) 1018 for (apic = 0; apic < nr_ioapics; apic++)
1019 if (mp_ioapics[apic].apicid == mp_irqs[i].mp_dstapic || 1019 if (mp_ioapics[apic].apicid == mp_irqs[i].dstapic ||
1020 mp_irqs[i].mp_dstapic == MP_APIC_ALL) 1020 mp_irqs[i].dstapic == MP_APIC_ALL)
1021 break; 1021 break;
1022 1022
1023 if (!test_bit(lbus, mp_bus_not_pci) && 1023 if (!test_bit(lbus, mp_bus_not_pci) &&
1024 !mp_irqs[i].mp_irqtype && 1024 !mp_irqs[i].irqtype &&
1025 (bus == lbus) && 1025 (bus == lbus) &&
1026 (slot == ((mp_irqs[i].mp_srcbusirq >> 2) & 0x1f))) { 1026 (slot == ((mp_irqs[i].srcbusirq >> 2) & 0x1f))) {
1027 int irq = pin_2_irq(i,apic,mp_irqs[i].mp_dstirq); 1027 int irq = pin_2_irq(i, apic, mp_irqs[i].dstirq);
1028 1028
1029 if (!(apic || IO_APIC_IRQ(irq))) 1029 if (!(apic || IO_APIC_IRQ(irq)))
1030 continue; 1030 continue;
1031 1031
1032 if (pin == (mp_irqs[i].mp_srcbusirq & 3)) 1032 if (pin == (mp_irqs[i].srcbusirq & 3))
1033 return irq; 1033 return irq;
1034 /* 1034 /*
1035 * Use the first all-but-pin matching entry as a 1035 * Use the first all-but-pin matching entry as a
@@ -1072,7 +1072,7 @@ static int EISA_ELCR(unsigned int irq)
1072 * EISA conforming in the MP table, that means its trigger type must 1072 * EISA conforming in the MP table, that means its trigger type must
1073 * be read in from the ELCR */ 1073 * be read in from the ELCR */
1074 1074
1075#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].mp_srcbusirq)) 1075#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].srcbusirq))
1076#define default_EISA_polarity(idx) default_ISA_polarity(idx) 1076#define default_EISA_polarity(idx) default_ISA_polarity(idx)
1077 1077
1078/* PCI interrupts are always polarity one level triggered, 1078/* PCI interrupts are always polarity one level triggered,
@@ -1089,13 +1089,13 @@ static int EISA_ELCR(unsigned int irq)
1089 1089
1090static int MPBIOS_polarity(int idx) 1090static int MPBIOS_polarity(int idx)
1091{ 1091{
1092 int bus = mp_irqs[idx].mp_srcbus; 1092 int bus = mp_irqs[idx].srcbus;
1093 int polarity; 1093 int polarity;
1094 1094
1095 /* 1095 /*
1096 * Determine IRQ line polarity (high active or low active): 1096 * Determine IRQ line polarity (high active or low active):
1097 */ 1097 */
1098 switch (mp_irqs[idx].mp_irqflag & 3) 1098 switch (mp_irqs[idx].irqflag & 3)
1099 { 1099 {
1100 case 0: /* conforms, ie. bus-type dependent polarity */ 1100 case 0: /* conforms, ie. bus-type dependent polarity */
1101 if (test_bit(bus, mp_bus_not_pci)) 1101 if (test_bit(bus, mp_bus_not_pci))
@@ -1131,13 +1131,13 @@ static int MPBIOS_polarity(int idx)
1131 1131
1132static int MPBIOS_trigger(int idx) 1132static int MPBIOS_trigger(int idx)
1133{ 1133{
1134 int bus = mp_irqs[idx].mp_srcbus; 1134 int bus = mp_irqs[idx].srcbus;
1135 int trigger; 1135 int trigger;
1136 1136
1137 /* 1137 /*
1138 * Determine IRQ trigger mode (edge or level sensitive): 1138 * Determine IRQ trigger mode (edge or level sensitive):
1139 */ 1139 */
1140 switch ((mp_irqs[idx].mp_irqflag>>2) & 3) 1140 switch ((mp_irqs[idx].irqflag>>2) & 3)
1141 { 1141 {
1142 case 0: /* conforms, ie. bus-type dependent */ 1142 case 0: /* conforms, ie. bus-type dependent */
1143 if (test_bit(bus, mp_bus_not_pci)) 1143 if (test_bit(bus, mp_bus_not_pci))
@@ -1215,16 +1215,16 @@ int (*ioapic_renumber_irq)(int ioapic, int irq);
1215static int pin_2_irq(int idx, int apic, int pin) 1215static int pin_2_irq(int idx, int apic, int pin)
1216{ 1216{
1217 int irq, i; 1217 int irq, i;
1218 int bus = mp_irqs[idx].mp_srcbus; 1218 int bus = mp_irqs[idx].srcbus;
1219 1219
1220 /* 1220 /*
1221 * Debugging check, we are in big trouble if this message pops up! 1221 * Debugging check, we are in big trouble if this message pops up!
1222 */ 1222 */
1223 if (mp_irqs[idx].mp_dstirq != pin) 1223 if (mp_irqs[idx].dstirq != pin)
1224 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); 1224 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n");
1225 1225
1226 if (test_bit(bus, mp_bus_not_pci)) { 1226 if (test_bit(bus, mp_bus_not_pci)) {
1227 irq = mp_irqs[idx].mp_srcbusirq; 1227 irq = mp_irqs[idx].srcbusirq;
1228 } else { 1228 } else {
1229 /* 1229 /*
1230 * PCI IRQs are mapped in order 1230 * PCI IRQs are mapped in order
@@ -2164,8 +2164,8 @@ static void __init setup_ioapic_ids_from_mpc(void)
2164 */ 2164 */
2165 if (old_id != mp_ioapics[apic].apicid) 2165 if (old_id != mp_ioapics[apic].apicid)
2166 for (i = 0; i < mp_irq_entries; i++) 2166 for (i = 0; i < mp_irq_entries; i++)
2167 if (mp_irqs[i].mp_dstapic == old_id) 2167 if (mp_irqs[i].dstapic == old_id)
2168 mp_irqs[i].mp_dstapic 2168 mp_irqs[i].dstapic
2169 = mp_ioapics[apic].apicid; 2169 = mp_ioapics[apic].apicid;
2170 2170
2171 /* 2171 /*
@@ -3983,8 +3983,8 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
3983 return -1; 3983 return -1;
3984 3984
3985 for (i = 0; i < mp_irq_entries; i++) 3985 for (i = 0; i < mp_irq_entries; i++)
3986 if (mp_irqs[i].mp_irqtype == mp_INT && 3986 if (mp_irqs[i].irqtype == mp_INT &&
3987 mp_irqs[i].mp_srcbusirq == bus_irq) 3987 mp_irqs[i].srcbusirq == bus_irq)
3988 break; 3988 break;
3989 if (i >= mp_irq_entries) 3989 if (i >= mp_irq_entries)
3990 return -1; 3990 return -1;
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index a86a65537433..ad36377dc935 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -159,55 +159,55 @@ static void print_MP_intsrc_info(struct mpc_intsrc *m)
159 m->srcbusirq, m->dstapic, m->dstirq); 159 m->srcbusirq, m->dstapic, m->dstirq);
160} 160}
161 161
162static void __init print_mp_irq_info(struct mp_config_intsrc *mp_irq) 162static void __init print_mp_irq_info(struct mpc_intsrc *mp_irq)
163{ 163{
164 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x," 164 apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x,"
165 " IRQ %02x, APIC ID %x, APIC INT %02x\n", 165 " IRQ %02x, APIC ID %x, APIC INT %02x\n",
166 mp_irq->mp_irqtype, mp_irq->mp_irqflag & 3, 166 mp_irq->irqtype, mp_irq->irqflag & 3,
167 (mp_irq->mp_irqflag >> 2) & 3, mp_irq->mp_srcbus, 167 (mp_irq->irqflag >> 2) & 3, mp_irq->srcbus,
168 mp_irq->mp_srcbusirq, mp_irq->mp_dstapic, mp_irq->mp_dstirq); 168 mp_irq->srcbusirq, mp_irq->dstapic, mp_irq->dstirq);
169} 169}
170 170
171static void __init assign_to_mp_irq(struct mpc_intsrc *m, 171static void __init assign_to_mp_irq(struct mpc_intsrc *m,
172 struct mp_config_intsrc *mp_irq) 172 struct mpc_intsrc *mp_irq)
173{ 173{
174 mp_irq->mp_dstapic = m->dstapic; 174 mp_irq->dstapic = m->dstapic;
175 mp_irq->mp_type = m->type; 175 mp_irq->type = m->type;
176 mp_irq->mp_irqtype = m->irqtype; 176 mp_irq->irqtype = m->irqtype;
177 mp_irq->mp_irqflag = m->irqflag; 177 mp_irq->irqflag = m->irqflag;
178 mp_irq->mp_srcbus = m->srcbus; 178 mp_irq->srcbus = m->srcbus;
179 mp_irq->mp_srcbusirq = m->srcbusirq; 179 mp_irq->srcbusirq = m->srcbusirq;
180 mp_irq->mp_dstirq = m->dstirq; 180 mp_irq->dstirq = m->dstirq;
181} 181}
182 182
183static void __init assign_to_mpc_intsrc(struct mp_config_intsrc *mp_irq, 183static void __init assign_to_mpc_intsrc(struct mpc_intsrc *mp_irq,
184 struct mpc_intsrc *m) 184 struct mpc_intsrc *m)
185{ 185{
186 m->dstapic = mp_irq->mp_dstapic; 186 m->dstapic = mp_irq->dstapic;
187 m->type = mp_irq->mp_type; 187 m->type = mp_irq->type;
188 m->irqtype = mp_irq->mp_irqtype; 188 m->irqtype = mp_irq->irqtype;
189 m->irqflag = mp_irq->mp_irqflag; 189 m->irqflag = mp_irq->irqflag;
190 m->srcbus = mp_irq->mp_srcbus; 190 m->srcbus = mp_irq->srcbus;
191 m->srcbusirq = mp_irq->mp_srcbusirq; 191 m->srcbusirq = mp_irq->srcbusirq;
192 m->dstirq = mp_irq->mp_dstirq; 192 m->dstirq = mp_irq->dstirq;
193} 193}
194 194
195static int __init mp_irq_mpc_intsrc_cmp(struct mp_config_intsrc *mp_irq, 195static int __init mp_irq_mpc_intsrc_cmp(struct mpc_intsrc *mp_irq,
196 struct mpc_intsrc *m) 196 struct mpc_intsrc *m)
197{ 197{
198 if (mp_irq->mp_dstapic != m->dstapic) 198 if (mp_irq->dstapic != m->dstapic)
199 return 1; 199 return 1;
200 if (mp_irq->mp_type != m->type) 200 if (mp_irq->type != m->type)
201 return 2; 201 return 2;
202 if (mp_irq->mp_irqtype != m->irqtype) 202 if (mp_irq->irqtype != m->irqtype)
203 return 3; 203 return 3;
204 if (mp_irq->mp_irqflag != m->irqflag) 204 if (mp_irq->irqflag != m->irqflag)
205 return 4; 205 return 4;
206 if (mp_irq->mp_srcbus != m->srcbus) 206 if (mp_irq->srcbus != m->srcbus)
207 return 5; 207 return 5;
208 if (mp_irq->mp_srcbusirq != m->srcbusirq) 208 if (mp_irq->srcbusirq != m->srcbusirq)
209 return 6; 209 return 6;
210 if (mp_irq->mp_dstirq != m->dstirq) 210 if (mp_irq->dstirq != m->dstirq)
211 return 7; 211 return 7;
212 212
213 return 0; 213 return 0;
@@ -808,15 +808,15 @@ static int __init get_MP_intsrc_index(struct mpc_intsrc *m)
808 /* not legacy */ 808 /* not legacy */
809 809
810 for (i = 0; i < mp_irq_entries; i++) { 810 for (i = 0; i < mp_irq_entries; i++) {
811 if (mp_irqs[i].mp_irqtype != mp_INT) 811 if (mp_irqs[i].irqtype != mp_INT)
812 continue; 812 continue;
813 813
814 if (mp_irqs[i].mp_irqflag != 0x0f) 814 if (mp_irqs[i].irqflag != 0x0f)
815 continue; 815 continue;
816 816
817 if (mp_irqs[i].mp_srcbus != m->srcbus) 817 if (mp_irqs[i].srcbus != m->srcbus)
818 continue; 818 continue;
819 if (mp_irqs[i].mp_srcbusirq != m->srcbusirq) 819 if (mp_irqs[i].srcbusirq != m->srcbusirq)
820 continue; 820 continue;
821 if (irq_used[i]) { 821 if (irq_used[i]) {
822 /* already claimed */ 822 /* already claimed */
@@ -921,10 +921,10 @@ static int __init replace_intsrc_all(struct mpc_table *mpc,
921 if (irq_used[i]) 921 if (irq_used[i])
922 continue; 922 continue;
923 923
924 if (mp_irqs[i].mp_irqtype != mp_INT) 924 if (mp_irqs[i].irqtype != mp_INT)
925 continue; 925 continue;
926 926
927 if (mp_irqs[i].mp_irqflag != 0x0f) 927 if (mp_irqs[i].irqflag != 0x0f)
928 continue; 928 continue;
929 929
930 if (nr_m_spare > 0) { 930 if (nr_m_spare > 0) {