aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ste_dma40.c
Commit message (Collapse)AuthorAgeFilesLines
* DMAENGINE: add runtime slave config to DMA40 v3Linus Walleij2010-08-041-4/+137
| | | | | | | | | This extends the DMA engine driver for the DMA40 used in the U8500 platform with the generic runtime slave configuration interface. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: support older siliconLinus Walleij2010-06-221-4/+28
| | | | | | | | | | | This makes sure the DMA40 driver will also work on the oldest silicon revisions that have the on-chip memory on another location in the DB8500 and also requires explicit suspend before starting or resuming a logical channel. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> [added parenthesis to the definition of U8500_DMA_LCPA_BASE_ED] Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: support disabling physical channelsJonas Aaberg2010-06-221-0/+8
| | | | | | | | This makes it possible to disable physical channels. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: fix suspend bugJonas Aaberg2010-06-221-20/+13
| | | | | | | | | This fixes a bug when suspending channels: first make the checks, then suspend the channel, not the other way around. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: allocate LCLA dynamicallyLinus Walleij2010-06-221-95/+158
| | | | | | | | | Switch to allocating LCLA in memory instead of having a fixed address. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: no premature stopJonas Aaberg2010-06-221-1/+4
| | | | | | | | Correct bug that could cause paused channels to stop. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: interrupts only on dstJonas Aaberg2010-06-221-1/+1
| | | | | | | | | | We don't want interrupts when the source is done, only when the destination is done and everything is complete at the recieveing end of a transfer. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: avoid doing unnessecary suspendJonas Aaberg2010-06-221-32/+7
| | | | | | | | Avoid doing unnessecary suspend when modifying logical channels. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: lock fixJonas Aaberg2010-06-221-7/+7
| | | | | | | | Fix up some locking issues found by enabling lock debugging. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: deny ops on non-alloc channelsJonas Aaberg2010-06-221-0/+44
| | | | | | | | Added checks to deny operating on none-allocated channels. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: various cosmetic clean-upsJonas Aaberg2010-06-221-55/+40
| | | | | | | | | This cleans up some extra newlines, removes some code duplication and moves the code to comply better with checkpatch. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: improve allocation error handlingJonas Aaberg2010-06-221-14/+10
| | | | | | | | Better error handling when channel allocation fails. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: use kmem cacheJonas Aaberg2010-06-221-34/+18
| | | | | | | | | Use kmem cache instead of own cache, reducing code duplication and bug sources. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: moved freeing of client owned descPer Friden2010-06-221-12/+12
| | | | | | | | fixed typo and moved freeing of client owned desc to free_dma. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: only write phy channel config first timeLinus Walleij2010-06-221-32/+32
| | | | | | | | | We only need to write the configuration to a physical channel if it is free, else it is already written. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: ste_dma40: fixed lli_max=1 issuePer Friden2010-06-221-33/+29
| | | | | | | | | Fixed lli_max=1 issue in case of full lcla, currently this case is not properly handled. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: extend the control command to include an argLinus Walleij2010-05-171-1/+2
| | | | | | | | | | | This adds an argument to the DMAengine control function, so that we can later provide control commands that need some external data passed in through an argument akin to the ioctl() operation prototype. [dan.j.williams@intel.com: fix up some missed conversions] Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: DMA40 fix for allocation of logical channel 0Marcin Mielczarczyk2010-05-171-7/+8
| | | | | | | | | Fix for allocation failure of logical channel when event line happens to be number 0. Signed-off-by: Marcin Mielczarczyk <marcin.mielczarczyk@tieto.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: DMA40 support paused channel statusJonas Aaberg2010-05-171-8/+67
| | | | | | | | | Support determining whether a channel is paused or not using the status function. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* DMAENGINE: Support for ST-Ericssons DMA40 block v3Linus Walleij2010-04-141-0/+2596
This is a straightforward driver for the ST-Ericsson DMA40 DMA controller found in U8500, implemented akin to the existing COH 901 318 driver. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Acked-by: Srinidh Kasagar <srinidhi.kasagar@stericsson.com> Cc: STEricsson_nomadik_linux@list.st.com Cc: Alessandro Rubini <rubini@unipv.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dan Williams <dan.j.williams@intel.com>