[PATCH v1 1/2] sata_dwc_460ex: move to generic DMA driver

Måns Rullgård mans at mansr.com
Mon Nov 23 00:03:19 AEDT 2015


Andy Shevchenko <andriy.shevchenko at linux.intel.com> writes:

> The SATA implementation based on two actually different devices, i.e. SATA and
> DMA controllers.
>
> For Synopsys DesignWare DMA we have already a generic implementation of the
> driver. Thus, the patch converts the code to use DMAEngine framework and
> dw_dmac driver.
>
> In future it will be better to split the devices inside DTS as well like it's
> done on other platforms.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> ---
>  drivers/ata/sata_dwc_460ex.c | 736 +++++++------------------------------------
>  1 file changed, 122 insertions(+), 614 deletions(-)
>

[...]

> @@ -1721,16 +1227,16 @@ static int sata_dwc_probe(struct platform_device *ofdev)
>  		   idr, ver[0], ver[1], ver[2]);
>
>  	/* Get SATA DMA interrupt number */
> -	irq = irq_of_parse_and_map(np, 1);
> -	if (irq == NO_IRQ) {
> +	hsdev->dma->irq = irq_of_parse_and_map(np, 1);

This doesn't look like it has been more than compile-tested.  Nothing
ever allocates hsdev->dma, so it can't possibly work.

Also, has anyone given any thought to getting rid of the dependency on
the DW DMA controller?  Presumably support for old device trees would
need to be retained for compatibility.  Maybe checking for a "dmas"
property and falling back on the current behaviour if it's missing.  My
goal is to get this driver working with another chip using the same SATA
controller but a different DMA engine.

-- 
Måns Rullgård
mans at mansr.com


More information about the Linuxppc-dev mailing list