[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