[PATCH 07/11] ARM: OMAP2+: Remove unused legacy code for DMA

Peter Ujfalusi peter.ujfalusi at ti.com
Thu Jun 8 03:37:22 PDT 2017


Tony,

On 2017-06-08 12:56, Tony Lindgren wrote:
> * Tony Lindgren <tony at atomide.com> [170608 01:28]:
>> * Peter Ujfalusi <peter.ujfalusi at ti.com> [170607 23:29]:
>>>
>>> This will conflict with the changes introduced by the tusb6010 DMAengine
>>> conversion:
>>> https://patchwork.kernel.org/patch/9734219/
>>
>> Oops forgot about that one. I'll take a look if it makes sense
>> to leave the braces for now to avoid a merge conflict.
>>
>>> with this patch I think the omap24xx_sdma_map and omap3xxx_sdma_map can
>>> also be removed, but we need to keep the omap24xx_sdma_dt_map for now
>>> till we have proper DT support for tusb.
>>
>> OK good point, will check.
> 
> Here's this one updated.
> 
> Regards,
> 
> Tony
> 
> 8< ------------------
> From tony Mon Sep 17 00:00:00 2001
> From: Tony Lindgren <tony at atomide.com>
> Date: Wed, 31 May 2017 15:51:35 -0700
> Subject: [PATCH] ARM: OMAP2+: Remove unused legacy code for DMA
> 
> We are now booting all mach-omap2 in device tree only mode.
> Any code that is only called in legacy boot mode where
> of_have_populated_dt() is not set is safe to remove now.
> 
> Let's leave the dummy omap2_system_dma_init_dev() check
> in place for now to avoid a pointless merge conflict with
> tusb6010 dmaengine conversion as pointed out by Peter
> Ujfalusi <peter.ujfalusi at ti.com>.

unfortunately we still have conflict as the
https://patchwork.kernel.org/patch/9734219/
adds entries to omap24xx_sdma_map[] for - back then - valid non DT boot
support.

I have rebased and reworked my patch locally on top of your v1, but
things must go in in a certain order to avoid conflict.

The tsub conversion series in not yet in linux-next, but afaik Bin
already applied it to somewhere.
Leave the mach-omap2/dma.c cleanup for -rc1?

> 
> Signed-off-by: Tony Lindgren <tony at atomide.com>
> ---
>  arch/arm/mach-omap2/dma.c | 125 +---------------------------------------------
>  1 file changed, 2 insertions(+), 123 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c
> --- a/arch/arm/mach-omap2/dma.c
> +++ b/arch/arm/mach-omap2/dma.c
> @@ -204,108 +204,6 @@ static unsigned configure_dma_errata(void)
>  	return errata;
>  }
>  
> -static const struct dma_slave_map omap24xx_sdma_map[] = {
> -	{ "omap-gpmc", "rxtx", SDMA_FILTER_PARAM(4) },
> -	{ "omap-aes", "tx", SDMA_FILTER_PARAM(9) },
> -	{ "omap-aes", "rx", SDMA_FILTER_PARAM(10) },
> -	{ "omap-sham", "rx", SDMA_FILTER_PARAM(13) },
> -	{ "omap2_mcspi.2", "tx0", SDMA_FILTER_PARAM(15) },
> -	{ "omap2_mcspi.2", "rx0", SDMA_FILTER_PARAM(16) },
> -	{ "omap-mcbsp.3", "tx", SDMA_FILTER_PARAM(17) },
> -	{ "omap-mcbsp.3", "rx", SDMA_FILTER_PARAM(18) },
> -	{ "omap-mcbsp.4", "tx", SDMA_FILTER_PARAM(19) },
> -	{ "omap-mcbsp.4", "rx", SDMA_FILTER_PARAM(20) },
> -	{ "omap-mcbsp.5", "tx", SDMA_FILTER_PARAM(21) },
> -	{ "omap-mcbsp.5", "rx", SDMA_FILTER_PARAM(22) },
> -	{ "omap2_mcspi.2", "tx1", SDMA_FILTER_PARAM(23) },
> -	{ "omap2_mcspi.2", "rx1", SDMA_FILTER_PARAM(24) },
> -	{ "omap_i2c.1", "tx", SDMA_FILTER_PARAM(27) },
> -	{ "omap_i2c.1", "rx", SDMA_FILTER_PARAM(28) },
> -	{ "omap_i2c.2", "tx", SDMA_FILTER_PARAM(29) },
> -	{ "omap_i2c.2", "rx", SDMA_FILTER_PARAM(30) },
> -	{ "omap-mcbsp.1", "tx", SDMA_FILTER_PARAM(31) },
> -	{ "omap-mcbsp.1", "rx", SDMA_FILTER_PARAM(32) },
> -	{ "omap-mcbsp.2", "tx", SDMA_FILTER_PARAM(33) },
> -	{ "omap-mcbsp.2", "rx", SDMA_FILTER_PARAM(34) },
> -	{ "omap2_mcspi.0", "tx0", SDMA_FILTER_PARAM(35) },
> -	{ "omap2_mcspi.0", "rx0", SDMA_FILTER_PARAM(36) },
> -	{ "omap2_mcspi.0", "tx1", SDMA_FILTER_PARAM(37) },
> -	{ "omap2_mcspi.0", "rx1", SDMA_FILTER_PARAM(38) },
> -	{ "omap2_mcspi.0", "tx2", SDMA_FILTER_PARAM(39) },
> -	{ "omap2_mcspi.0", "rx2", SDMA_FILTER_PARAM(40) },
> -	{ "omap2_mcspi.0", "tx3", SDMA_FILTER_PARAM(41) },
> -	{ "omap2_mcspi.0", "rx3", SDMA_FILTER_PARAM(42) },
> -	{ "omap2_mcspi.1", "tx0", SDMA_FILTER_PARAM(43) },
> -	{ "omap2_mcspi.1", "rx0", SDMA_FILTER_PARAM(44) },
> -	{ "omap2_mcspi.1", "tx1", SDMA_FILTER_PARAM(45) },
> -	{ "omap2_mcspi.1", "rx1", SDMA_FILTER_PARAM(46) },
> -	{ "omap_hsmmc.1", "tx", SDMA_FILTER_PARAM(47) },
> -	{ "omap_hsmmc.1", "rx", SDMA_FILTER_PARAM(48) },
> -	{ "omap_uart.0", "tx", SDMA_FILTER_PARAM(49) },
> -	{ "omap_uart.0", "rx", SDMA_FILTER_PARAM(50) },
> -	{ "omap_uart.1", "tx", SDMA_FILTER_PARAM(51) },
> -	{ "omap_uart.1", "rx", SDMA_FILTER_PARAM(52) },
> -	{ "omap_uart.2", "tx", SDMA_FILTER_PARAM(53) },
> -	{ "omap_uart.2", "rx", SDMA_FILTER_PARAM(54) },
> -	{ "omap_hsmmc.0", "tx", SDMA_FILTER_PARAM(61) },
> -	{ "omap_hsmmc.0", "rx", SDMA_FILTER_PARAM(62) },
> -};
> -
> -static const struct dma_slave_map omap3xxx_sdma_map[] = {
> -	{ "omap-gpmc", "rxtx", SDMA_FILTER_PARAM(4) },
> -	{ "omap2_mcspi.2", "tx0", SDMA_FILTER_PARAM(15) },
> -	{ "omap2_mcspi.2", "rx0", SDMA_FILTER_PARAM(16) },
> -	{ "omap-mcbsp.3", "tx", SDMA_FILTER_PARAM(17) },
> -	{ "omap-mcbsp.3", "rx", SDMA_FILTER_PARAM(18) },
> -	{ "omap-mcbsp.4", "tx", SDMA_FILTER_PARAM(19) },
> -	{ "omap-mcbsp.4", "rx", SDMA_FILTER_PARAM(20) },
> -	{ "omap-mcbsp.5", "tx", SDMA_FILTER_PARAM(21) },
> -	{ "omap-mcbsp.5", "rx", SDMA_FILTER_PARAM(22) },
> -	{ "omap2_mcspi.2", "tx1", SDMA_FILTER_PARAM(23) },
> -	{ "omap2_mcspi.2", "rx1", SDMA_FILTER_PARAM(24) },
> -	{ "omap_i2c.3", "tx", SDMA_FILTER_PARAM(25) },
> -	{ "omap_i2c.3", "rx", SDMA_FILTER_PARAM(26) },
> -	{ "omap_i2c.1", "tx", SDMA_FILTER_PARAM(27) },
> -	{ "omap_i2c.1", "rx", SDMA_FILTER_PARAM(28) },
> -	{ "omap_i2c.2", "tx", SDMA_FILTER_PARAM(29) },
> -	{ "omap_i2c.2", "rx", SDMA_FILTER_PARAM(30) },
> -	{ "omap-mcbsp.1", "tx", SDMA_FILTER_PARAM(31) },
> -	{ "omap-mcbsp.1", "rx", SDMA_FILTER_PARAM(32) },
> -	{ "omap-mcbsp.2", "tx", SDMA_FILTER_PARAM(33) },
> -	{ "omap-mcbsp.2", "rx", SDMA_FILTER_PARAM(34) },
> -	{ "omap2_mcspi.0", "tx0", SDMA_FILTER_PARAM(35) },
> -	{ "omap2_mcspi.0", "rx0", SDMA_FILTER_PARAM(36) },
> -	{ "omap2_mcspi.0", "tx1", SDMA_FILTER_PARAM(37) },
> -	{ "omap2_mcspi.0", "rx1", SDMA_FILTER_PARAM(38) },
> -	{ "omap2_mcspi.0", "tx2", SDMA_FILTER_PARAM(39) },
> -	{ "omap2_mcspi.0", "rx2", SDMA_FILTER_PARAM(40) },
> -	{ "omap2_mcspi.0", "tx3", SDMA_FILTER_PARAM(41) },
> -	{ "omap2_mcspi.0", "rx3", SDMA_FILTER_PARAM(42) },
> -	{ "omap2_mcspi.1", "tx0", SDMA_FILTER_PARAM(43) },
> -	{ "omap2_mcspi.1", "rx0", SDMA_FILTER_PARAM(44) },
> -	{ "omap2_mcspi.1", "tx1", SDMA_FILTER_PARAM(45) },
> -	{ "omap2_mcspi.1", "rx1", SDMA_FILTER_PARAM(46) },
> -	{ "omap_hsmmc.1", "tx", SDMA_FILTER_PARAM(47) },
> -	{ "omap_hsmmc.1", "rx", SDMA_FILTER_PARAM(48) },
> -	{ "omap_uart.0", "tx", SDMA_FILTER_PARAM(49) },
> -	{ "omap_uart.0", "rx", SDMA_FILTER_PARAM(50) },
> -	{ "omap_uart.1", "tx", SDMA_FILTER_PARAM(51) },
> -	{ "omap_uart.1", "rx", SDMA_FILTER_PARAM(52) },
> -	{ "omap_uart.2", "tx", SDMA_FILTER_PARAM(53) },
> -	{ "omap_uart.2", "rx", SDMA_FILTER_PARAM(54) },
> -	{ "omap_hsmmc.0", "tx", SDMA_FILTER_PARAM(61) },
> -	{ "omap_hsmmc.0", "rx", SDMA_FILTER_PARAM(62) },
> -	{ "omap-aes", "tx", SDMA_FILTER_PARAM(65) },
> -	{ "omap-aes", "rx", SDMA_FILTER_PARAM(66) },
> -	{ "omap-sham", "rx", SDMA_FILTER_PARAM(69) },
> -	{ "omap2_mcspi.3", "tx0", SDMA_FILTER_PARAM(70) },
> -	{ "omap2_mcspi.3", "rx0", SDMA_FILTER_PARAM(71) },
> -	{ "omap_hsmmc.2", "tx", SDMA_FILTER_PARAM(77) },
> -	{ "omap_hsmmc.2", "rx", SDMA_FILTER_PARAM(78) },
> -	{ "omap_uart.3", "tx", SDMA_FILTER_PARAM(81) },
> -	{ "omap_uart.3", "rx", SDMA_FILTER_PARAM(82) },
> -};
> -
>  static struct omap_system_dma_plat_info dma_plat_info __initdata = {
>  	.reg_map	= reg_map,
>  	.channel_stride	= 0x60,
> @@ -334,14 +232,9 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)
>  	p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr;
>  	p.errata = configure_dma_errata();
>  
> +	/* REVISIT: Remove after v4.13 with a follow-up patch */
>  	if (!of_have_populated_dt()) {
>  		if (soc_is_omap24xx()) {
> -			p.slave_map = omap24xx_sdma_map;
> -			p.slavecnt = ARRAY_SIZE(omap24xx_sdma_map);
> -		} else if (soc_is_omap34xx() || soc_is_omap3630()) {
> -			p.slave_map = omap3xxx_sdma_map;
> -			p.slavecnt = ARRAY_SIZE(omap3xxx_sdma_map);
> -		} else {
>  			pr_err("%s: The legacy DMA map is not provided!\n",
>  			       __func__);
>  			return -ENODEV;
> @@ -389,21 +282,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)
>  
>  static int __init omap2_system_dma_init(void)
>  {
> -	struct platform_device *pdev;
> -	int res;
> -
> -	res = omap_hwmod_for_each_by_class("dma",
> +	return omap_hwmod_for_each_by_class("dma",
>  			omap2_system_dma_init_dev, NULL);
> -	if (res)
> -		return res;
> -
> -	if (of_have_populated_dt())
> -		return res;
> -
> -	pdev = platform_device_register_full(&omap_dma_dev_info);
> -	if (IS_ERR(pdev))
> -		return PTR_ERR(pdev);
> -
> -	return res;
>  }
>  omap_arch_initcall(omap2_system_dma_init);
> 

- Péter



More information about the linux-arm-kernel mailing list