x86, ioapic: Simplify probe_nr_irqs_gsi.
Use the global gsi_end value now that all ioapics have valid gsi numbers instead of a combination of acpi_probe_gsi and walking all of the ioapics and couting their number of entries by hand if acpi_probe_gsi gave us an answer we did not like. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> LKML-Reference: <1269936436-7039-13-git-send-email-ebiederm@xmission.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
committed by
H. Peter Anvin
parent
d464207c4f
commit
4afc51a835
@@ -105,12 +105,6 @@ extern void mp_config_acpi_legacy_irqs(void);
|
|||||||
struct device;
|
struct device;
|
||||||
extern int mp_register_gsi(struct device *dev, u32 gsi, int edge_level,
|
extern int mp_register_gsi(struct device *dev, u32 gsi, int edge_level,
|
||||||
int active_high_low);
|
int active_high_low);
|
||||||
extern int acpi_probe_gsi(void);
|
|
||||||
#else /* !CONFIG_ACPI: */
|
|
||||||
static inline int acpi_probe_gsi(void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_ACPI */
|
#endif /* CONFIG_ACPI */
|
||||||
|
|
||||||
#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
|
#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
|
||||||
|
@@ -876,29 +876,6 @@ static int __init acpi_parse_madt_lapic_entries(void)
|
|||||||
extern int es7000_plat;
|
extern int es7000_plat;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int __init acpi_probe_gsi(void)
|
|
||||||
{
|
|
||||||
int idx;
|
|
||||||
int gsi;
|
|
||||||
int max_gsi = 0;
|
|
||||||
|
|
||||||
if (acpi_disabled)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (!acpi_ioapic)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
max_gsi = 0;
|
|
||||||
for (idx = 0; idx < nr_ioapics; idx++) {
|
|
||||||
gsi = mp_gsi_routing[idx].gsi_end;
|
|
||||||
|
|
||||||
if (gsi > max_gsi)
|
|
||||||
max_gsi = gsi;
|
|
||||||
}
|
|
||||||
|
|
||||||
return max_gsi + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void assign_to_mp_irq(struct mpc_intsrc *m,
|
static void assign_to_mp_irq(struct mpc_intsrc *m,
|
||||||
struct mpc_intsrc *mp_irq)
|
struct mpc_intsrc *mp_irq)
|
||||||
{
|
{
|
||||||
|
@@ -3850,22 +3850,11 @@ int __init io_apic_get_redir_entries (int ioapic)
|
|||||||
|
|
||||||
void __init probe_nr_irqs_gsi(void)
|
void __init probe_nr_irqs_gsi(void)
|
||||||
{
|
{
|
||||||
int nr = 0;
|
int nr;
|
||||||
|
|
||||||
nr = acpi_probe_gsi();
|
|
||||||
if (nr > nr_irqs_gsi) {
|
|
||||||
nr_irqs_gsi = nr;
|
|
||||||
} else {
|
|
||||||
/* for acpi=off or acpi is not compiled in */
|
|
||||||
int idx;
|
|
||||||
|
|
||||||
nr = 0;
|
|
||||||
for (idx = 0; idx < nr_ioapics; idx++)
|
|
||||||
nr += io_apic_get_redir_entries(idx);
|
|
||||||
|
|
||||||
|
nr = gsi_end + 1;
|
||||||
if (nr > nr_irqs_gsi)
|
if (nr > nr_irqs_gsi)
|
||||||
nr_irqs_gsi = nr;
|
nr_irqs_gsi = nr;
|
||||||
}
|
|
||||||
|
|
||||||
printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
|
printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user