Re: [PATCH] powerpc: fix conflict with Elo DMA driver in MPC8610 device tree

2008-10-10 Thread Kumar Gala


On Sep 26, 2008, at 12:20 PM, Timur Tabi wrote:

The Freescale Elo DMA driver binds to all DMA channels in the device  
tree that
are compatible with "fsl,eloplus-dma-channel".  This conflicts with  
the sound
drivers for the MPC8610.  To avoid the conflict, change the  
compatible property
for the DMA channels needed by the sound drivers to "fsl,ssi-dma- 
channel".
This works because the sound drivers don't actually check the  
compatible

property when it grabs DMA channels.

Also update dma.txt and ssi.txt with this information.

Signed-off-by: Timur Tabi <[EMAIL PROTECTED]>
---
Documentation/powerpc/dts-bindings/fsl/dma.txt |   13 +++--
Documentation/powerpc/dts-bindings/fsl/ssi.txt |   12 ++--
arch/powerpc/boot/dts/mpc8610_hpcd.dts |4 ++--
3 files changed, 23 insertions(+), 6 deletions(-)


Break this into two patches.  The second one should just be the .dts  
and specifically say "on the MPC8610 HPCD board we use SSI and thus  
the dma channel is not available for general purpose use"...


- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] powerpc: fix conflict with Elo DMA driver in MPC8610 device tree

2008-09-26 Thread Timur Tabi
The Freescale Elo DMA driver binds to all DMA channels in the device tree that
are compatible with "fsl,eloplus-dma-channel".  This conflicts with the sound
drivers for the MPC8610.  To avoid the conflict, change the compatible property
for the DMA channels needed by the sound drivers to "fsl,ssi-dma-channel".
This works because the sound drivers don't actually check the compatible
property when it grabs DMA channels.

Also update dma.txt and ssi.txt with this information.

Signed-off-by: Timur Tabi <[EMAIL PROTECTED]>
---
 Documentation/powerpc/dts-bindings/fsl/dma.txt |   13 +++--
 Documentation/powerpc/dts-bindings/fsl/ssi.txt |   12 ++--
 arch/powerpc/boot/dts/mpc8610_hpcd.dts |4 ++--
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/Documentation/powerpc/dts-bindings/fsl/dma.txt 
b/Documentation/powerpc/dts-bindings/fsl/dma.txt
index 86826df..cc45311 100644
--- a/Documentation/powerpc/dts-bindings/fsl/dma.txt
+++ b/Documentation/powerpc/dts-bindings/fsl/dma.txt
@@ -20,7 +20,7 @@ Required properties:
 - compatible: compatible list, contains 2 entries, first is
 "fsl,CHIP-dma-channel", where CHIP is the processor
 (mpc8349, mpc8350, etc.) and the second is
-"fsl,elo-dma-channel"
+"fsl,elo-dma-channel". However, see note below.
 - reg   : 
 - cell-index: dma channel index starts at 0.
 
@@ -82,7 +82,7 @@ Required properties:
 - compatible: compatible list, contains 2 entries, first is
 "fsl,CHIP-dma-channel", where CHIP is the processor
 (mpc8540, mpc8560, etc.) and the second is
-"fsl,eloplus-dma-channel"
+"fsl,eloplus-dma-channel". However, see note below.
 - cell-index: dma channel index starts at 0.
 - reg   : 
 - interrupts: 
@@ -125,3 +125,12 @@ Example:
interrupts = <17 2>;
};
};
+
+Note on DMA channel compatible properties: The compatible property must say
+"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel" to be used by the Elo DMA
+driver (fsldma).  Any DMA channel used by fsldma cannot be used by another
+DMA driver, such as the SSI sound drivers for the MPC8610.  Therefore, any DMA
+channel that should be used for another driver should not use
+"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel".  For the SSI drivers, for
+example, the compatible property should be "fsl,ssi-dma-channel".  See ssi.txt
+for more information.
diff --git a/Documentation/powerpc/dts-bindings/fsl/ssi.txt 
b/Documentation/powerpc/dts-bindings/fsl/ssi.txt
index 5d98413..f11ec34 100644
--- a/Documentation/powerpc/dts-bindings/fsl/ssi.txt
+++ b/Documentation/powerpc/dts-bindings/fsl/ssi.txt
@@ -24,10 +24,10 @@ Required properties:
"rj-master" - r.j., SSI is clock master
"ac97-slave" - AC97 mode, SSI is clock slave
"ac97-master" - AC97 mode, SSI is clock master
-- fsl,playback-dma: phandle to a DMA node for the DMA channel to use for
+- fsl,playback-dma: phandle to a node for the DMA channel to use for
playback of audio.  This is typically dictated by SOC
design.  See the notes below.
-- fsl,capture-dma:  phandle to a DMA node for the DMA channel to use for
+- fsl,capture-dma:  phandle to a node for the DMA channel to use for
capture (recording) of audio.  This is typically dictated
by SOC design.  See the notes below.
 
@@ -51,3 +51,11 @@ playback and DMA channel 1 for capture.  SSI2 must use DMA 
channel 2 for
 playback and DMA channel 3 for capture.  The developer can choose which
 DMA controller to use, but the channels themselves are hard-wired.  The
 purpose of these two properties is to represent this hardware design.
+
+The device tree nodes for the DMA channels that are referenced by
+"fsl,playback-dma" and "fsl,capture-dma" must be marked as compatible with
+"fsl,ssi-dma-channel".  The SOC-specific compatible string (e.g.
+"fsl,mpc8610-dma-channel") can remain.  If these nodes are left as
+"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel", then the generic Elo DMA
+drivers (fsldma) will attempt to use them, and it will conflict with the
+sound drivers.
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts 
b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 855f70c..f724d72 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -237,7 +237,7 @@
 
dma00: [EMAIL PROTECTED] {
compatible = "fsl,mpc8610-dma-channel",
-   "fsl,eloplus-dma-channel";
+   "fsl,ssi-dma-channel";
cell-index = <