Commit b22da92f authored by Paul Mackerras's avatar Paul Mackerras

Merge branch 'for-2.6.24' of...

Merge branch 'for-2.6.24' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx into merge
parents 52142e75 3d1d662e
...@@ -17,12 +17,13 @@ ...@@ -17,12 +17,13 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/of_platform.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <asm/udbg.h> #include <asm/udbg.h>
#include <asm/time.h> #include <asm/time.h>
#include <asm/uic.h> #include <asm/uic.h>
#include <asm/of_platform.h>
static struct of_device_id walnut_of_bus[] = { static struct of_device_id walnut_of_bus[] = {
{ .compatible = "ibm,plb3", }, { .compatible = "ibm,plb3", },
......
...@@ -14,12 +14,13 @@ ...@@ -14,12 +14,13 @@
* option) any later version. * option) any later version.
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/of_platform.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <asm/udbg.h> #include <asm/udbg.h>
#include <asm/time.h> #include <asm/time.h>
#include <asm/uic.h> #include <asm/uic.h>
#include <asm/of_platform.h>
#include "44x.h" #include "44x.h"
static struct of_device_id bamboo_of_bus[] = { static struct of_device_id bamboo_of_bus[] = {
......
...@@ -17,12 +17,13 @@ ...@@ -17,12 +17,13 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/of_platform.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <asm/udbg.h> #include <asm/udbg.h>
#include <asm/time.h> #include <asm/time.h>
#include <asm/uic.h> #include <asm/uic.h>
#include <asm/of_platform.h>
#include "44x.h" #include "44x.h"
......
...@@ -14,12 +14,13 @@ ...@@ -14,12 +14,13 @@
* option) any later version. * option) any later version.
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/of_platform.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <asm/udbg.h> #include <asm/udbg.h>
#include <asm/time.h> #include <asm/time.h>
#include <asm/uic.h> #include <asm/uic.h>
#include <asm/of_platform.h>
#include "44x.h" #include "44x.h"
static struct of_device_id sequoia_of_bus[] = { static struct of_device_id sequoia_of_bus[] = {
......
...@@ -97,6 +97,22 @@ static void uic_ack_irq(unsigned int virq) ...@@ -97,6 +97,22 @@ static void uic_ack_irq(unsigned int virq)
spin_unlock_irqrestore(&uic->lock, flags); 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) static int uic_set_irq_type(unsigned int virq, unsigned int flow_type)
{ {
struct uic *uic = get_irq_chip_data(virq); struct uic *uic = get_irq_chip_data(virq);
...@@ -152,7 +168,7 @@ static struct irq_chip uic_irq_chip = { ...@@ -152,7 +168,7 @@ static struct irq_chip uic_irq_chip = {
.typename = " UIC ", .typename = " UIC ",
.unmask = uic_unmask_irq, .unmask = uic_unmask_irq,
.mask = uic_mask_irq, .mask = uic_mask_irq,
/* .mask_ack = uic_mask_irq_and_ack, */ .mask_ack = uic_mask_ack_irq,
.ack = uic_ack_irq, .ack = uic_ack_irq,
.set_type = uic_set_irq_type, .set_type = uic_set_irq_type,
}; };
......
...@@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5) ...@@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
* Identify the CPU type and fix up code sections * Identify the CPU type and fix up code sections
* that depend on which cpu we have. * 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)); spec = identify_cpu(offset, mfspr(SPRN_PVR));
#endif
do_feature_fixups(spec->cpu_features, do_feature_fixups(spec->cpu_features,
PTRRELOC(&__start___ftr_fixup), PTRRELOC(&__start___ftr_fixup),
PTRRELOC(&__stop___ftr_fixup)); PTRRELOC(&__stop___ftr_fixup));
......
...@@ -211,6 +211,7 @@ static void __init yucca_setup_pcie_fpga_rootpoint(int port) ...@@ -211,6 +211,7 @@ static void __init yucca_setup_pcie_fpga_rootpoint(int port)
break; break;
default: default:
iounmap(pcie_reg_fpga_base);
return; return;
} }
......
...@@ -87,6 +87,29 @@ ...@@ -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 */ /* UART 8250 driver platform data table */
struct plat_serial8250_port virtex_serial_platform_data[] = { struct plat_serial8250_port virtex_serial_platform_data[] = {
#if defined(XPAR_UARTNS550_0_BASEADDR) #if defined(XPAR_UARTNS550_0_BASEADDR)
...@@ -173,6 +196,14 @@ struct platform_device virtex_platform_devices[] = { ...@@ -173,6 +196,14 @@ struct platform_device virtex_platform_devices[] = {
#if defined(XPAR_TFT_3_BASEADDR) #if defined(XPAR_TFT_3_BASEADDR)
XPAR_TFT(3), XPAR_TFT(3),
#endif #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 */ /* Early serial support functions */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment