Merge branch 'for-2.6.24' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx into merge
This commit is contained in:
Коммит
b22da92f2c
|
@ -17,12 +17,13 @@
|
|||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/uic.h>
|
||||
#include <asm/of_platform.h>
|
||||
|
||||
static struct of_device_id walnut_of_bus[] = {
|
||||
{ .compatible = "ibm,plb3", },
|
||||
|
|
|
@ -14,12 +14,13 @@
|
|||
* option) any later version.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/uic.h>
|
||||
#include <asm/of_platform.h>
|
||||
#include "44x.h"
|
||||
|
||||
static struct of_device_id bamboo_of_bus[] = {
|
||||
|
|
|
@ -17,12 +17,13 @@
|
|||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/uic.h>
|
||||
#include <asm/of_platform.h>
|
||||
|
||||
#include "44x.h"
|
||||
|
||||
|
|
|
@ -14,12 +14,13 @@
|
|||
* option) any later version.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/uic.h>
|
||||
#include <asm/of_platform.h>
|
||||
#include "44x.h"
|
||||
|
||||
static struct of_device_id sequoia_of_bus[] = {
|
||||
|
|
|
@ -97,6 +97,22 @@ static void uic_ack_irq(unsigned int virq)
|
|||
spin_unlock_irqrestore(&uic->lock, flags);
|
||||
}
|
||||
|
||||
static void uic_mask_ack_irq(unsigned int virq)
|
||||
{
|
||||
struct uic *uic = get_irq_chip_data(virq);
|
||||
unsigned int src = uic_irq_to_hw(virq);
|
||||
unsigned long flags;
|
||||
u32 er, sr;
|
||||
|
||||
sr = 1 << (31-src);
|
||||
spin_lock_irqsave(&uic->lock, flags);
|
||||
er = mfdcr(uic->dcrbase + UIC_ER);
|
||||
er &= ~sr;
|
||||
mtdcr(uic->dcrbase + UIC_ER, er);
|
||||
mtdcr(uic->dcrbase + UIC_SR, sr);
|
||||
spin_unlock_irqrestore(&uic->lock, flags);
|
||||
}
|
||||
|
||||
static int uic_set_irq_type(unsigned int virq, unsigned int flow_type)
|
||||
{
|
||||
struct uic *uic = get_irq_chip_data(virq);
|
||||
|
@ -152,7 +168,7 @@ static struct irq_chip uic_irq_chip = {
|
|||
.typename = " UIC ",
|
||||
.unmask = uic_unmask_irq,
|
||||
.mask = uic_mask_irq,
|
||||
/* .mask_ack = uic_mask_irq_and_ack, */
|
||||
.mask_ack = uic_mask_ack_irq,
|
||||
.ack = uic_ack_irq,
|
||||
.set_type = uic_set_irq_type,
|
||||
};
|
||||
|
|
|
@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
|
|||
* Identify the CPU type and fix up code sections
|
||||
* that depend on which cpu we have.
|
||||
*/
|
||||
#if defined(CONFIG_440EP) && defined(CONFIG_PPC_FPU)
|
||||
/* We pass the virtual PVR here for 440EP as 440EP and 440GR have
|
||||
* identical PVRs and there is no reliable way to check for the FPU
|
||||
*/
|
||||
spec = identify_cpu(offset, (mfspr(SPRN_PVR) | 0x8));
|
||||
#else
|
||||
spec = identify_cpu(offset, mfspr(SPRN_PVR));
|
||||
#endif
|
||||
do_feature_fixups(spec->cpu_features,
|
||||
PTRRELOC(&__start___ftr_fixup),
|
||||
PTRRELOC(&__stop___ftr_fixup));
|
||||
|
|
|
@ -211,6 +211,7 @@ static void __init yucca_setup_pcie_fpga_rootpoint(int port)
|
|||
break;
|
||||
|
||||
default:
|
||||
iounmap(pcie_reg_fpga_base);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -87,6 +87,29 @@
|
|||
}, \
|
||||
}
|
||||
|
||||
#define XPAR_AC97_CONTROLLER_REFERENCE(num) { \
|
||||
.name = "ml403_ac97cr", \
|
||||
.id = num, \
|
||||
.num_resources = 3, \
|
||||
.resource = (struct resource[]) { \
|
||||
{ \
|
||||
.start = XPAR_OPB_AC97_CONTROLLER_REF_##num##_BASEADDR, \
|
||||
.end = XPAR_OPB_AC97_CONTROLLER_REF_##num##_HIGHADDR, \
|
||||
.flags = IORESOURCE_MEM, \
|
||||
}, \
|
||||
{ \
|
||||
.start = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_PLAYBACK_INTERRUPT_INTR, \
|
||||
.end = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_PLAYBACK_INTERRUPT_INTR, \
|
||||
.flags = IORESOURCE_IRQ, \
|
||||
}, \
|
||||
{ \
|
||||
.start = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_RECORD_INTERRUPT_INTR, \
|
||||
.end = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_RECORD_INTERRUPT_INTR, \
|
||||
.flags = IORESOURCE_IRQ, \
|
||||
}, \
|
||||
}, \
|
||||
}
|
||||
|
||||
/* UART 8250 driver platform data table */
|
||||
struct plat_serial8250_port virtex_serial_platform_data[] = {
|
||||
#if defined(XPAR_UARTNS550_0_BASEADDR)
|
||||
|
@ -173,6 +196,14 @@ struct platform_device virtex_platform_devices[] = {
|
|||
#if defined(XPAR_TFT_3_BASEADDR)
|
||||
XPAR_TFT(3),
|
||||
#endif
|
||||
|
||||
/* AC97 Controller Reference instances */
|
||||
#if defined(XPAR_OPB_AC97_CONTROLLER_REF_0_BASEADDR)
|
||||
XPAR_AC97_CONTROLLER_REFERENCE(0),
|
||||
#endif
|
||||
#if defined(XPAR_OPB_AC97_CONTROLLER_REF_1_BASEADDR)
|
||||
XPAR_AC97_CONTROLLER_REFERENCE(1),
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Early serial support functions */
|
||||
|
|
Загрузка…
Ссылка в новой задаче