In message <[EMAIL PROTECTED]>, Russell King - ARM Li
nux writes:
>My understanding is the CLPS7500FE is basically an Acorn RiscPC on a chip.
>
>Therefore, I'd guess you're probably rewriting the vidc sound driver.
>Please try that driver first.

I think there are a couple of gotchas if you want to use the vidc.c driver
on a 7500.  First up, it wants to reserve a DMA channel even though it isn't
actually going to use it for anything.  I'd thought that the code to provide
a make-believe DMA interface for this was already in the rmk tree but 
apparently
I was mistaken about that.  Something like the patch below ought to sort it
out, though I haven't even compiled that code for months so it might need a bit
of editing.

At some point I also had an "outb(DMA_CR_E | 0x10, IOMD_SD0CR);" in
attach_vidc().  I haven't a clue offhand what that does or whether you still
need it.

Finally, of course you need to make sure that you select the right output
format to work with your DACs.

p.

--- linux/arch/arm/kernel/Makefile      Sun Dec  2 13:45:08 2001
+++ linux/arch/arm/kernel/Makefile      Sun Nov 11 14:22:08 2001
@@ -18,6 +18,7 @@ O_OBJS_arc        = dma-arc.o oldlatches
 O_OBJS_rpc        = dma-rpc.o
 O_OBJS_footbridge = dma-footbridge.o isa.o
 O_OBJS_l7200      = fiq.o
+O_OBJS_clps7500   = dma-clps7500.o time-acorn.o
 
 pci-ftvpci       = plx90x0.o
 pci-footbridge   = dec21285.o
--- linux/arch/arm/kernel/dma-clps7500.c        Thu Jan  1 01:00:00 1970
+++ linux/arch/arm/kernel/dma-clps7500.c        Sun Dec  9 18:31:29 2001
@@ -0,0 +1,33 @@
+/*
+ *  linux/arch/arm/kernel/dma-clps7500.c
+ *
+ *  Copyright (C) 2001 Philip Blundell
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ *  DMA functions specific to CLPS7500 architecture
+ */
+
+#include <linux/init.h>
+#include <asm/dma.h>
+#include <asm/mach/dma.h>
+
+/*
+ * This is virtual DMA - we don't need anything here.
+ */
+static void sound_enable_disable_dma(dmach_t channel, dma_t *dma)
+{
+}
+
+static struct dma_ops sound_dma_ops = {
+       type:           "VIRTUAL",
+       enable:         sound_enable_disable_dma,
+       disable:        sound_enable_disable_dma,
+};
+
+void __init arch_dma_init(dma_t *dma)
+{
+       dma[DMA_VIRTUAL_SOUND].d_ops    = &sound_dma_ops;
+}



_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.

Reply via email to