On 2016-02-19 23:44, Aaro Koskinen wrote: > On Tue, Feb 02, 2016 at 04:27:06PM +0200, Peter Ujfalusi wrote: >> OMAP1 can not boot in DT mode and to be able to clean up the driver >> regarding to the dmaengine API use (switching to the new API) the >> device/slave -> filter mapping needs to be provided to the omap-dma driver. >> >> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > > Acked-by: Aaro Koskinen <aaro.koskinen@xxxxxx> Thanks Aaro, I believe the map covers all drivers using DMA, but in case I missed any we - you ;) will notice it as they will fail to get the DMA channels. This only going to be visible after I send the driver changes for 4.7. In such a case we will need to add the given device to the list. -- Péter > > A. > >> --- >> arch/arm/mach-omap1/dma.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 45 insertions(+) >> >> diff --git a/arch/arm/mach-omap1/dma.c b/arch/arm/mach-omap1/dma.c >> index 7b02ed218a42..f6ba589cd312 100644 >> --- a/arch/arm/mach-omap1/dma.c >> +++ b/arch/arm/mach-omap1/dma.c >> @@ -25,6 +25,7 @@ >> #include <linux/device.h> >> #include <linux/io.h> >> #include <linux/dma-mapping.h> >> +#include <linux/dmaengine.h> >> #include <linux/omap-dma.h> >> #include <mach/tc.h> >> >> @@ -265,6 +266,42 @@ static const struct platform_device_info omap_dma_dev_info = { >> .num_res = 1, >> }; >> >> +/* OMAP730, OMAP850 */ >> +static const struct dma_slave_map omap7xx_sdma_map[] = { >> + { "omap-mcbsp.1", "tx", SDMA_FILTER_PARAM(8) }, >> + { "omap-mcbsp.1", "rx", SDMA_FILTER_PARAM(9) }, >> + { "omap-mcbsp.2", "tx", SDMA_FILTER_PARAM(10) }, >> + { "omap-mcbsp.2", "rx", SDMA_FILTER_PARAM(11) }, >> + { "mmci-omap.0", "tx", SDMA_FILTER_PARAM(21) }, >> + { "mmci-omap.0", "rx", SDMA_FILTER_PARAM(22) }, >> + { "omap_udc", "rx0", SDMA_FILTER_PARAM(26) }, >> + { "omap_udc", "rx1", SDMA_FILTER_PARAM(27) }, >> + { "omap_udc", "rx2", SDMA_FILTER_PARAM(28) }, >> + { "omap_udc", "tx0", SDMA_FILTER_PARAM(29) }, >> + { "omap_udc", "tx1", SDMA_FILTER_PARAM(30) }, >> + { "omap_udc", "tx2", SDMA_FILTER_PARAM(31) }, >> +}; >> + >> +/* OMAP1510, OMAP1610*/ >> +static const struct dma_slave_map omap1xxx_sdma_map[] = { >> + { "omap-mcbsp.1", "tx", SDMA_FILTER_PARAM(8) }, >> + { "omap-mcbsp.1", "rx", SDMA_FILTER_PARAM(9) }, >> + { "omap-mcbsp.3", "tx", SDMA_FILTER_PARAM(10) }, >> + { "omap-mcbsp.3", "rx", SDMA_FILTER_PARAM(11) }, >> + { "omap-mcbsp.2", "tx", SDMA_FILTER_PARAM(16) }, >> + { "omap-mcbsp.2", "rx", SDMA_FILTER_PARAM(17) }, >> + { "mmci-omap.0", "tx", SDMA_FILTER_PARAM(21) }, >> + { "mmci-omap.0", "rx", SDMA_FILTER_PARAM(22) }, >> + { "omap_udc", "rx0", SDMA_FILTER_PARAM(26) }, >> + { "omap_udc", "rx1", SDMA_FILTER_PARAM(27) }, >> + { "omap_udc", "rx2", SDMA_FILTER_PARAM(28) }, >> + { "omap_udc", "tx0", SDMA_FILTER_PARAM(29) }, >> + { "omap_udc", "tx1", SDMA_FILTER_PARAM(30) }, >> + { "omap_udc", "tx2", SDMA_FILTER_PARAM(31) }, >> + { "mmci-omap.1", "tx", SDMA_FILTER_PARAM(54) }, >> + { "mmci-omap.1", "rx", SDMA_FILTER_PARAM(55) }, >> +}; >> + >> static struct omap_system_dma_plat_info dma_plat_info __initdata = { >> .reg_map = reg_map, >> .channel_stride = 0x40, >> @@ -342,6 +379,14 @@ static int __init omap1_system_dma_init(void) >> p.dma_attr = d; >> p.errata = configure_dma_errata(); >> >> + if (cpu_is_omap7xx()) { >> + p.slave_map = omap7xx_sdma_map; >> + p.slavecnt = ARRAY_SIZE(omap7xx_sdma_map); >> + } else { >> + p.slave_map = omap1xxx_sdma_map; >> + p.slavecnt = ARRAY_SIZE(omap1xxx_sdma_map); >> + } >> + >> ret = platform_device_add_data(pdev, &p, sizeof(p)); >> if (ret) { >> dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n", >> -- >> 2.7.0 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-omap" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html