diff --git a/[refs] b/[refs] index 5a3f5be973e1..d1fec8464d03 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 22490eb80ceb4ac07ef36fff253904fb4adf57f2 +refs/heads/master: f1690f37a526d46aa4eb55e832346a531ba850dd diff --git a/trunk/arch/i386/kernel/acpi/boot.c b/trunk/arch/i386/kernel/acpi/boot.c index 848bb97af7ca..53eb5cfd5b63 100644 --- a/trunk/arch/i386/kernel/acpi/boot.c +++ b/trunk/arch/i386/kernel/acpi/boot.c @@ -650,7 +650,7 @@ acpi_find_rsdp (void) */ rsdp_phys = acpi_scan_rsdp (0, 0x400); if (!rsdp_phys) - rsdp_phys = acpi_scan_rsdp (0xE0000, 0x20000); + rsdp_phys = acpi_scan_rsdp (0xE0000, 0xFFFFF); return rsdp_phys; } diff --git a/trunk/arch/ppc64/kernel/pSeries_smp.c b/trunk/arch/ppc64/kernel/pSeries_smp.c index fbad349ec58c..c60d8cb2b84d 100644 --- a/trunk/arch/ppc64/kernel/pSeries_smp.c +++ b/trunk/arch/ppc64/kernel/pSeries_smp.c @@ -326,6 +326,13 @@ static void __devinit smp_xics_setup_cpu(int cpu) cpu_clear(cpu, of_spin_map); + /* + * Put the calling processor into the GIQ. This is really only + * necessary from a secondary thread as the OF start-cpu interface + * performs this function for us on primary threads. + */ + rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE, + (1UL << interrupt_server_size) - 1 - default_distrib_server, 1); } static DEFINE_SPINLOCK(timebase_lock); diff --git a/trunk/arch/ppc64/kernel/xics.c b/trunk/arch/ppc64/kernel/xics.c index 879f39b90a33..eedd1d3c2a10 100644 --- a/trunk/arch/ppc64/kernel/xics.c +++ b/trunk/arch/ppc64/kernel/xics.c @@ -432,7 +432,6 @@ void xics_cause_IPI(int cpu) { ops->qirr_info(cpu, IPI_PRIORITY); } -#endif /* CONFIG_SMP */ void xics_setup_cpu(void) { @@ -440,18 +439,10 @@ void xics_setup_cpu(void) ops->cppr_info(cpu, 0xff); iosync(); - - /* - * Put the calling processor into the GIQ. This is really only - * necessary from a secondary thread as the OF start-cpu interface - * performs this function for us on primary threads. - * - * XXX: undo of teardown on kexec needs this too, as may hotplug - */ - rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE, - (1UL << interrupt_server_size) - 1 - default_distrib_server, 1); } +#endif /* CONFIG_SMP */ + void xics_init_IRQ(void) { int i; @@ -572,7 +563,8 @@ void xics_init_IRQ(void) for (; i < NR_IRQS; ++i) get_irq_desc(i)->handler = &xics_pic; - xics_setup_cpu(); + ops->cppr_info(boot_cpuid, 0xff); + iosync(); ppc64_boot_msg(0x21, "XICS Done"); } diff --git a/trunk/drivers/serial/8250_pci.c b/trunk/drivers/serial/8250_pci.c index f8d90d0ecfea..de54bdc5398b 100644 --- a/trunk/drivers/serial/8250_pci.c +++ b/trunk/drivers/serial/8250_pci.c @@ -1009,6 +1009,8 @@ get_pci_irq(struct pci_dev *dev, struct pci_board *board, int idx) * n = number of serial ports * baud = baud rate * + * This table is sorted by (in order): baud, bt, bn, n. + * * Please note: in theory if n = 1, _bt infix should make no difference. * ie, pbn_b0_1_115200 is the same as pbn_b0_bt_1_115200 */ diff --git a/trunk/include/asm-ppc64/xics.h b/trunk/include/asm-ppc64/xics.h index fdec5e7a7af6..0027da4364ac 100644 --- a/trunk/include/asm-ppc64/xics.h +++ b/trunk/include/asm-ppc64/xics.h @@ -30,4 +30,7 @@ struct xics_ipi_struct { extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned; +extern unsigned int default_distrib_server; +extern unsigned int interrupt_server_size; + #endif /* _PPC64_KERNEL_XICS_H */ diff --git a/trunk/sound/pci/via82xx.c b/trunk/sound/pci/via82xx.c index 9b4d74d49f98..f1ce808501da 100644 --- a/trunk/sound/pci/via82xx.c +++ b/trunk/sound/pci/via82xx.c @@ -1836,7 +1836,7 @@ static void __devinit snd_via82xx_proc_init(via82xx_t *chip) * */ -static int snd_via82xx_chip_init(via82xx_t *chip) +static int __devinit snd_via82xx_chip_init(via82xx_t *chip) { unsigned int val; int max_count;