imx-sdma.c (0951a90e343d20b62daa7720da61f124b1c32d71) | imx-sdma.c (09f7b80fac3e588b282ad26aabd7336d7d293efd) |
---|---|
1// SPDX-License-Identifier: GPL-2.0+ 2// 3// drivers/dma/imx-sdma.c 4// 5// This file contains a driver for the Freescale Smart DMA engine 6// 7// Copyright 2010 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de> 8// --- 877 unchanged lines hidden (view full) --- 886 if (error) 887 sdmac->status = old_status; 888 } 889 890 /* 891 * SDMA stops cyclic channel when DMA request triggers a channel and no SDMA 892 * owned buffer is available (i.e. BD_DONE was set too late). 893 */ | 1// SPDX-License-Identifier: GPL-2.0+ 2// 3// drivers/dma/imx-sdma.c 4// 5// This file contains a driver for the Freescale Smart DMA engine 6// 7// Copyright 2010 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de> 8// --- 877 unchanged lines hidden (view full) --- 886 if (error) 887 sdmac->status = old_status; 888 } 889 890 /* 891 * SDMA stops cyclic channel when DMA request triggers a channel and no SDMA 892 * owned buffer is available (i.e. BD_DONE was set too late). 893 */ |
894 if (!is_sdma_channel_enabled(sdmac->sdma, sdmac->channel)) { | 894 if (sdmac->desc && !is_sdma_channel_enabled(sdmac->sdma, sdmac->channel)) { |
895 dev_warn(sdmac->sdma->dev, "restart cyclic channel %d\n", sdmac->channel); 896 sdma_enable_channel(sdmac->sdma, sdmac->channel); 897 } 898} 899 900static void mxc_sdma_handle_channel_normal(struct sdma_channel *data) 901{ 902 struct sdma_channel *sdmac = (struct sdma_channel *) data; --- 1275 unchanged lines hidden (view full) --- 2178 ret = clk_prepare(sdma->clk_ipg); 2179 if (ret) 2180 return ret; 2181 2182 ret = clk_prepare(sdma->clk_ahb); 2183 if (ret) 2184 goto err_clk; 2185 | 895 dev_warn(sdmac->sdma->dev, "restart cyclic channel %d\n", sdmac->channel); 896 sdma_enable_channel(sdmac->sdma, sdmac->channel); 897 } 898} 899 900static void mxc_sdma_handle_channel_normal(struct sdma_channel *data) 901{ 902 struct sdma_channel *sdmac = (struct sdma_channel *) data; --- 1275 unchanged lines hidden (view full) --- 2178 ret = clk_prepare(sdma->clk_ipg); 2179 if (ret) 2180 return ret; 2181 2182 ret = clk_prepare(sdma->clk_ahb); 2183 if (ret) 2184 goto err_clk; 2185 |
2186 ret = devm_request_irq(&pdev->dev, irq, sdma_int_handler, 0, 2187 dev_name(&pdev->dev), sdma); | 2186 ret = devm_request_irq(&pdev->dev, irq, sdma_int_handler, 0, "sdma", 2187 sdma); |
2188 if (ret) 2189 goto err_irq; 2190 2191 sdma->irq = irq; 2192 2193 sdma->script_addrs = kzalloc(sizeof(*sdma->script_addrs), GFP_KERNEL); 2194 if (!sdma->script_addrs) { 2195 ret = -ENOMEM; --- 145 unchanged lines hidden (view full) --- 2341 2342module_platform_driver(sdma_driver); 2343 2344MODULE_AUTHOR("Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>"); 2345MODULE_DESCRIPTION("i.MX SDMA driver"); 2346#if IS_ENABLED(CONFIG_SOC_IMX6Q) 2347MODULE_FIRMWARE("imx/sdma/sdma-imx6q.bin"); 2348#endif | 2188 if (ret) 2189 goto err_irq; 2190 2191 sdma->irq = irq; 2192 2193 sdma->script_addrs = kzalloc(sizeof(*sdma->script_addrs), GFP_KERNEL); 2194 if (!sdma->script_addrs) { 2195 ret = -ENOMEM; --- 145 unchanged lines hidden (view full) --- 2341 2342module_platform_driver(sdma_driver); 2343 2344MODULE_AUTHOR("Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>"); 2345MODULE_DESCRIPTION("i.MX SDMA driver"); 2346#if IS_ENABLED(CONFIG_SOC_IMX6Q) 2347MODULE_FIRMWARE("imx/sdma/sdma-imx6q.bin"); 2348#endif |
2349#if IS_ENABLED(CONFIG_SOC_IMX7D) | 2349#if IS_ENABLED(CONFIG_SOC_IMX7D) || IS_ENABLED(CONFIG_SOC_IMX8M) |
2350MODULE_FIRMWARE("imx/sdma/sdma-imx7d.bin"); 2351#endif 2352MODULE_LICENSE("GPL"); | 2350MODULE_FIRMWARE("imx/sdma/sdma-imx7d.bin"); 2351#endif 2352MODULE_LICENSE("GPL"); |