On Thu, 2015-12-17 at 16:04 +0000, MÃns RullgÃrd wrote:I have been running my machine mostly configured for pciex1 thus with the sata_dwc disabled.
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> writes:It's currently broken, last person who seems to have it is
On Thu, 2015-12-17 at 15:13 +0000, MÃns RullgÃrd wrote:I can't test it since I have no such hardware.
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> writes:Yeah, I would like to allow autoconfiguration in case of DT as well
On Tue, 2015-12-15 at 23:34 +0000, MÃns RullgÃrd wrote:The current sata_dwc driver calls dw_dma_probe() with null pdata
Mans Rullgard <mans@xxxxxxxxx> writes:You have to move the master assignments and other custom
Currently this driver only works with a DesignWare DMAThe corresponding patch for the canyonlands devicetree looks
engine
which it registers manually using the second "reg" address
range and interrupt number from the DT node.
This patch makes the driver instead use the "dmas" property
if
present, otherwise optionally falling back on the old way
so
existing device trees can continue to work.
With this change, there is no longer any reason to depend
on
the 460EX machine type so drop that from Kconfig.
Signed-off-by: Mans Rullgard <mans@xxxxxxxxx>
---
drivers/ata/Kconfig | 10 ++-
drivers/ata/sata_dwc_460ex.c | 192
+++++++++++++++++++++++++++--
--------------
2 files changed, 131 insertions(+), 71 deletions(-)
something
like this. I don't have any such hardware or even a manual,
so I
don't
know what values to use for the various required DT
properties of
the
DMA controller node, nor can I test it. The SATA driver
works
with a
different DMA controller on a Sigma Designs chip.
diff --git a/arch/powerpc/boot/dts/canyonlands.dts
b/arch/powerpc/boot/dts/canyonlands.dts
index 3dc75de..959f36e 100644
--- a/arch/powerpc/boot/dts/canyonlands.dts
+++ b/arch/powerpc/boot/dts/canyonlands.dts
@@ -190,12 +190,22 @@
/* DMA */ 0x2 &UIC0
0xc
0x4>;
};
+ DMA0: dma@bffd0800 {
+ compatible = "snps,dma-spear1340";
+ reg = <4 0xbffd0800 0x400>;
+ interrupt-parent = <&UIC3>;
+ interrupts = <0x5 0x4>;
+ #dma-cells = <3>;
+ /* required properties here */
dw_dmac
properties. Maybe at some point I will fix that in
dw/platform.c.
+ };
which causes the dw_dma driver to auto-detect most
parameters. It
looks like simply omitting those properties here results in the
same
thing, although in this case dw_dma_parse_dt() leaves a
devm-allocated pdata struct adrift. Deferring the allocation of
that
and changing the DT binding doc to make these properties optional
for
auto-detect-capable hardware should just work.
and
translate it to use unified device property API.
Something like this:If it works for you, please, submit as a patch. Thanks.
(was?) Julian Margetson [1]
[1] https://patchwork.ozlabs.org/patch/439850/