Lines Matching +full:map +full:- +full:to +full:- +full:dma +full:- +full:channel

1 // SPDX-License-Identifier: GPL-2.0-only
3 * OMAP2+ DMA driver
5 * Copyright (C) 2003 - 2008 Nokia Corporation
7 * DMA channel linking for 1610 by Samuel Ortiz <samuel.ortiz@nokia.com>
8 * Graphics DMA and LCD DMA graphics tranformations
10 * OMAP2/3 support Copyright (C) 2004-2007 Texas Instruments, Inc.
11 * Some functions based on earlier dma-omap.c Copyright (C) 2001 RidgeRun, Inc.
14 * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
16 * Copyright (C) 2010 Texas Instruments Incorporated - https://www.ti.com/
17 * Converted DMA library into platform driver
18 * - G, Manjunath Kondaiah <manjugk@ti.com>
27 #include <linux/dma-mapping.h>
30 #include <linux/omap-dma.h>
68 /* Channel specific register offsets */
90 * Inter Frame DMA buffering issue DMA will wrongly in configure_dma_errata()
93 * Workaround: DMA channels must have BUFFERING_DISABLED bit set to in configure_dma_errata()
94 * guarantee no data will stay in the DMA FIFO in case inter frame in configure_dma_errata()
99 * DMA may hang when several channels are used in parallel in configure_dma_errata()
100 * In the following configuration, DMA channel hanging can occur: in configure_dma_errata()
101 * a. Channel i, hardware synchronized, is enabled in configure_dma_errata()
102 * b. Another channel (Channel x), software synchronized, is enabled. in configure_dma_errata()
103 * c. Channel i is disabled before end of transfer in configure_dma_errata()
104 * d. Channel i is reenabled. in configure_dma_errata()
105 * e. Steps 1 to 4 are repeated a certain number of times. in configure_dma_errata()
106 * f. A third channel (Channel y), software synchronized, is enabled. in configure_dma_errata()
107 * Channel x and Channel y may hang immediately after step 'f'. in configure_dma_errata()
109 * For any channel used - make sure NextLCH_ID is set to the value j. in configure_dma_errata()
119 * Erratum ID: i378: OMAP2+: sDMA Channel is not disabled in configure_dma_errata()
121 * Workaround: SW should explicitely disable the channel. in configure_dma_errata()
128 * If sDMA channel is disabled on the fly, sDMA enters standby even in configure_dma_errata()
130 * Workaround: Put sDMA in NoStandby more before a logical channel is in configure_dma_errata()
131 * disabled, then put it back to SmartStandby right after the channel in configure_dma_errata()
138 * Erratum ID: i88 : Special programming model needed to disable DMA in configure_dma_errata()
140 * Workaround: software must ensure that the DMA is configured in No in configure_dma_errata()
148 * read before the DMA controller finished disabling the channel. in configure_dma_errata()
156 * Work around: Hence we need to manually clear those IRQs to avoid in configure_dma_errata()
166 /* external DMA requests when tusb6010 is used */
167 { "musb-hdrc.1.auto", "dmareq0", SDMA_FILTER_PARAM(2) },
168 { "musb-hdrc.1.auto", "dmareq1", SDMA_FILTER_PARAM(3) },
169 { "musb-hdrc.1.auto", "dmareq2", SDMA_FILTER_PARAM(14) }, /* OMAP2420 only */
170 { "musb-hdrc.1.auto", "dmareq3", SDMA_FILTER_PARAM(15) }, /* OMAP2420 only */
171 { "musb-hdrc.1.auto", "dmareq4", SDMA_FILTER_PARAM(16) }, /* OMAP2420 only */
172 { "musb-hdrc.1.auto", "dmareq5", SDMA_FILTER_PARAM(64) }, /* OMAP2420 only */
193 /* DMA slave map for drivers not yet converted to DT */ in omap2_system_dma_init()