On 8/9/07, Joachim Förster mls.JOFT@gmx.de wrote:
From: Joachim Foerster JOFT@gmx.de
(Patch for Linus' master branch, date 2007/08/08)
Signed-off-by: Joachim Foerster JOFT@gmx.de
arch/ppc/syslib/virtex_devices.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/arch/ppc/syslib/virtex_devices.c b/arch/ppc/syslib/virtex_devices.c index 62a9495..0d6f0ac 100644 --- a/arch/ppc/syslib/virtex_devices.c +++ b/arch/ppc/syslib/virtex_devices.c @@ -121,6 +121,29 @@ }, \ }
+#define XPAR_AC97_CONTROLLER_REFERENCE(num) { \
.name = "ml403_ac97cr", \
.id = num, \
.num_resources = 3, \
.resource = (struct resource[]) { \
{ \
.start = XPAR_OPB_AC97_CONTROLLER_REF_0_BASEADDR, \
.end = XPAR_OPB_AC97_CONTROLLER_REF_0_HIGHADDR, \
This will make each instance try to use the same device! Replace '_0_' with '_##num##_'
.flags = IORESOURCE_MEM, \
}, \
{ \
.start = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_0_PLAYBACK_INTERRUPT_INTR, \
.end = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_0_PLAYBACK_INTERRUPT_INTR, \
ditto; in this case you need to change the second _0_. _INTC_0_ is already the correct form.
.flags = IORESOURCE_IRQ, \
}, \
{ \
.start = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_0_RECORD_INTERRUPT_INTR, \
.end = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_0_RECORD_INTERRUPT_INTR, \
ditto
.flags = IORESOURCE_IRQ, \
}, \
}, \
+}
/* UART 8250 driver platform data table */ struct plat_serial8250_port virtex_serial_platform_data[] = { #if defined(XPAR_UARTNS550_0_BASEADDR) @@ -221,6 +244,11 @@ 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 };
/* Early serial support functions */
1.5.2.4