- 02 4月, 2015 3 次提交
-
-
由 kbuild test robot 提交于
Signed-off-by: NFengguang Wu <fengguang.wu@intel.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Rameshwar Prasad Sahu 提交于
This patch implements the APM X-Gene SoC DMA engine driver. The APM X-Gene SoC DMA engine consists of 4 DMA channels for performing DMA operations. These DMA operations include memory copy, scatter-gather memory copy, raid5 xor, and raid6 p+q offloading. Signed-off-by: NRameshwar Prasad Sahu <rsahu@apm.com> Signed-off-by: NLoc Ho <lho@apm.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Yoshihiro Shimoda 提交于
This DMAC is Renesas USB high-speed module DMA controller that supports slave transfer. This USB-DMAC has similar register sets with R-Car Gen2 DMAC, but the USB-DMAC has specific registers to control the USB transactions. If this code is added into the rcar-dmac driver, it will become unreadable. So, this driver is independent from the rcar-dmac. And, this USB-DMAC uses virt-dma infrastructure. Signed-off-by: NYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 01 4月, 2015 3 次提交
-
-
由 Petr Kulhavy 提交于
The "data" parameter passed indirectly to the edma_callback() should be edma_chan and not the dma_chan. This bug was so far harmless since the offset of struct dma_chan within struct edma_chan is 0. However as soon as someone changes struct edma_chan this would cause troubles. Signed-off-by: NPetr Kulhavy <petr@barix.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Stefan Agner 提交于
The function d40_prep_sg takes the type enum dma_transfer_direction as second last parameter. However, the memcpy calls pass DMA_NONE which is of type enum dma_data_direction. Fix this by passing the actual transfer direction DMA_MEM_TO_MEM. This does not change the actual code flow since only the transfer direction DMA_MEM_TO_DEV and DMA_DEV_TO_MEM are actually used in the function d40_prep_sg. Signed-off-by: NStefan Agner <stefan@agner.ch> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Alex Smith 提交于
This patch adds a driver for the DMA controller found in the Ingenic JZ4780. It currently does not implement any support for the programmable firmware feature of the controller - this is not necessary for most uses. It also does not take priority into account when allocating channels, it just allocates the first available channel. This can be implemented later. Signed-off-by: NAlex Smith <alex.smith@imgtec.com> Signed-off-by: NZubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> [Updated for dmaengine api changes, Add residue support, couple of minor fixes] Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 19 3月, 2015 11 次提交
-
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Acked-by: NZhangfei Gao <zhangfei.gao@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Acked-by: NAndrew Bresticker <abrestic@chromium.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Acked-by: NLars-Peter Clausen <lars@metafoo.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Ben Dooks 提交于
The pl330_tx_status() function returns the desc->status if the dma_cookie_status() call does indicate the cookie completed, however the desc->status is not look directly compatible. Sparse throws the following warning: pl330.c:2262:35: warning: mixing different enum types pl330.c:2262:35: int enum desc_status versus pl330.c:2262:35: int enum dma_status Attempt to fix this by adding a switch statement to turn the desc->status into a dma_status. Note, this has only been tested with the dmatest suite. Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk> -- Vinod Koul <vinod.koul@intel.com> Dan Williams <dan.j.williams@intel.com> DMA List <dmaengine@vger.kernel.org> Maxime Ripard <maxime.ripard@free-electrons.com> Jassi Brar <jassisinghbrar@gmail.com> Liviu Dudau <Liviu.Dudau@arm.com> Linux ARM Kernel <linux-arm-kernel@lists.infradead.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Ben Dooks 提交于
Whilst running sparse on pl330 driver it was noticed there are two functions that are not static but not exported to any other users in the kernel. Fix the following warnings by making 'pl330_pause' and the 'pl330_get_current_xferred_count' static: pl330.c:2165:5: warning: symbol 'pl330_pause' was not declared. Should it be static? pl330.c:2206:5: warning: symbol 'pl330_get_current_xferred_count' was not declared. Should it be static? Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk> -- Vinod Koul <vinod.koul@intel.com> Dan Williams <dan.j.williams@intel.com> DMA List <dmaengine@vger.kernel.org> Maxime Ripard <maxime.ripard@free-electrons.com> Jassi Brar <jassisinghbrar@gmail.com> Liviu Dudau <Liviu.Dudau@arm.com> Linux ARM Kernel <linux-arm-kernel@lists.infradead.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Ben Dooks 提交于
When running Xilinx Zynq in big-endian mode the pl330 driver fails to pass the dmatest suite. To fix this, ensure all non byte values are written in little endian. As a note, the documentation does not mention if it will do big-endian descriptor fetches, only that it will swap the data in flight. Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk> -- Vinod Koul <vinod.koul@intel.com> Dan Williams <dan.j.williams@intel.com> DMA List <dmaengine@vger.kernel.org> Maxime Ripard <maxime.ripard@free-electrons.com> Jassi Brar <jassisinghbrar@gmail.com> Liviu Dudau <Liviu.Dudau@arm.com> Linux ARM Kernel <linux-arm-kernel@lists.infradead.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Fabian Frederick 提交于
of_device_id is always used as const. (See driver.of_match_table and open firmware functions) Signed-off-by: NFabian Frederick <fabf@skynet.be> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 18 3月, 2015 1 次提交
-
-
由 Fabio Estevam 提交于
Currently when version 3.1 of the mx6q SDMA firmware is used we get: [ 0.392169] imx-sdma 20ec000.sdma: unknown firmware version [ 0.399281] imx-sdma 20ec000.sdma: initialized Add support for it. Based on a patch from Shengjiu Wang from the internal FSL kernel. Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 17 3月, 2015 5 次提交
-
-
由 Kedareswara rao Appana 提交于
This patch moves the xilinx_dma.h header file to the include/linux/dma. Signed-off-by: NKedareswara rao Appana <appanad@xilinx.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Jarkko Nikula 提交于
Free Software Foundation mailing address has been moved in the past and some of the addresses here are outdated. Remove them from file headers since the COPYING file in the kernel sources includes it. Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Archit Taneja 提交于
Add register offset table entry for the newer (v1.7.0) version of the BAM IP found on MSM8916. Update the DT bindings documentation. Signed-off-by: NArchit Taneja <architt@codeaurora.org> Tested-by: NIvan T. Ivanov <iivanov@mm-sol.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Jarkko Nikula 提交于
The same error message is printed from different switch cases. Since both of these jump into same error label we can move error print there and add a DMA direction in order to make it easier to grep error from sources. Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Acked-by: NViresh Kumar <viresh.kumar@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Jarkko Nikula 提交于
The same error message is printed from different functions. Add a function name to error message in order to make it easier to grep error from sources. Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Acked-by: NViresh Kumar <viresh.kumar@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 13 3月, 2015 1 次提交
-
-
由 Torsten Fleischer 提交于
This patch adds support for memory to memory scatter-gather transfers. Changes from V1: * Fixed coding style of the multi-line comments. Changes from V2: * Added setup of 'desc->tx_width' that is needed to calculate the residue. Signed-off-by: NTorsten Fleischer <torfl6749@gmail.com> Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 06 3月, 2015 2 次提交
-
-
由 Tapasweni Pathak 提交于
Remove double check on chan->desc. Found by Coccinelle. Signed-off-by: NTapasweni Pathak <tapaswenipathak@gmail.com> Acked-by: NJulia Lawall <julia.lawall@lip6.fr> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Maxime Ripard 提交于
Since commit 7bced397 ("net_dma: simple removal") removed the net_dma support entirely, net_dma_find_channel has no users left. Remove the function entirely. Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 03 3月, 2015 1 次提交
-
-
由 Colin Ian King 提交于
Fix spelling mistake, "aquire" -> "acquire" and missing newline (as spotted by Joe Perches. Signed-off-by: NColin Ian King <colin.king@canonical.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 23 2月, 2015 1 次提交
-
-
由 Pramod Gurav 提交于
Calls tasklet_kill() in error path of the probe function were missing. Add the same in error path. Signed-off-by: NPramod Gurav <pramod.gurav@smartplayin.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 16 2月, 2015 8 次提交
-
-
由 Robert Baldyga 提交于
DMA_PAUSE command is used for halting DMA transfer on chosen channel. It can be useful when we want to safely read residue before terminating all requests on channel. Otherwise there can be situation when some data is transferred before channel termination but after reading residue, which obviously results with data loss. To avoid this situation we can pause channel, read residue and then terminate all requests. This scenario is common, for example, in serial port drivers. Signed-off-by: NRobert Baldyga <r.baldyga@samsung.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Robert Baldyga 提交于
This patch adds possibility to read residue of DMA transfer. It's useful when we want to know how many bytes have been transferred before we terminate channel. It can take place, for example, on timeout interrupt. Signed-off-by: NLukasz Czerwinski <l.czerwinski@samsung.com> Signed-off-by: NRobert Baldyga <r.baldyga@samsung.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Laurent Pinchart 提交于
A still unconfirmed hardware bug prevents the IPMMU microTLB 0 to be flushed correctly, resulting in memory corruption. DMAC 0 channel 0 is connected to microTLB 0 on currently supported platforms, so we can't use it with the IPMMU. As the IOMMU API operates at the device level we can't disable it selectively, so ignore channel 0 for now if the device is part of an IOMMU group. Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Laurent Pinchart 提交于
When descriptor memory is accessed through an IOMMU the DMADAR register isn't initialized automatically from the first descriptor at beginning of transfer by the DMAC like it should. Initialize it manually with the destination address of the first chunk. Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Laurent Pinchart 提交于
When wired to an IOMMU to access data, the DMAC accesses the hardware descriptors through the IOMMU as well. We're using the DMA mapping API to allocate the descriptors, but with a NULL device at the moment, which prevents IOMMU mappings from being created. Fix this by passing the DMAC device instead. Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Laurent Pinchart 提交于
The error interrupt handler stops and reinitializes all channels. This causes a crash for channels that have never been used, as their descriptor lists are uninitialized. Fix it by initializing the descriptor lists at probe time. Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Laurent Pinchart 提交于
The rcar_dmac_desc_put() function is called in interrupt context and must thus use spin_lock_irqsave() instead of spin_lock_irq(). Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Lad, Prabhakar 提交于
this patch fixes following sparse warnings: edma.c:537:32: warning: symbol 'edma_prep_dma_memcpy' was not declared. Should it be static? edma.c:1070:6: warning: symbol 'edma_filter_fn' was not declared. Should it be static? Signed-off-by: NLad, Prabhakar <prabhakar.csengg@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 12 2月, 2015 3 次提交
-
-
由 Laurent Pinchart 提交于
The desc variable is used uninitialized in the rcar_dmac_desc_get() and rcar_dmac_xfer_chunk_get() functions if descriptors need to be allocated. Fix it. Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Sergei Shtylyov 提交于
In order to make it possible to restore from hibernation not only in Linux but also in e.g. U-Boot, we have to use sh_dmae_{suspend|resume}() for the {freeze| thaw|restore}() PM methods. It's handy to achieve this with SIMPLE_DEV_PM_OPS() macro; since that macro doesn't do anything when CONFIG_PM_SLEEP is undefined, we don't need to #define sh_dmae_{suspend|resume} NULL anymore but we'll have to enclose sh_dmae_{suspend|resume}() into the new #ifdef... Based on original patch by Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>. Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Sergei Shtylyov 提交于
Use SET_RUNTIME_PM_OPS() to initialize the runtime PM method pointers in the 'struct dev_pm_ops'; since that macro doesn't do anything if CONFIG_PM is not defined, we have to move #ifdef up to also cover the runtime PM methods in order to avoid compilation warnings. Based on orignal patch by Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>. Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 11 2月, 2015 1 次提交
-
-
由 Addy Ke 提交于
This bug will cause NULL pointer after commit dfac17, and cause wrong package in I2S DMA transfer before commit dfac17. Tested on RK3288-pinky2 board. Detail: I2S DMA transfer(sound/core/pcm_dmaengine.c): dmaengine_pcm_prepare_and_submit --> dmaengine_prep_dma_cyclic --> pl330_prep_dma_cyclic --> the case: 1. pl330_submit_req(desc0): thrd->req[0].desc = desc0, thrd->lstenq = 0 2. pl330_submit_req(desc1): thrd->req[1].desc = desc1, thrd->lstenq = 1 3. _start(desc0) by submit_req: thrd->req_running = 0 because: idx = 1 - thrd->lstenq = 0 4. pl330_update(desc0 OK): thrd->req[0].desc = NULL, desc0 to req_done list because: idx = active = thrd->req_running = 0 5. _start(desc1) by pl330_update: thrd->req_running = 1 because: idx = 1 - thrd->lstenq = 0, but thrd->req[0].desc == NULL, so: idx = thrd->lstenq = 1 6. pl330_submit_req(desc2): thrd->req[0].desc = desc2, thrd->lstenq = 0 7. _start(desc1) by submit_req: thrd->req_running = 1 because: idx = 1 - thrd->lstenq = 1 Note: _start started the same descs _start should start desc2 here, NOT desc1 8. pl330_update(desc1 OK): thrd->req[1].desc = NULL, desc1 to req_done list because: idx = active = thrd->req_running = 1 9. _start(desc2) by pl330_update : thrd->req_running = 0 because: idx = 1 - thrd->lstenq = 0 10.pl330_update(desc1 OK, NOT desc2): thrd->req[0].desc = NULL, desc2 to req_done list because: idx = active = thrd->req_running = 0 11.pl330_submit_req(desc3): thrd->req[0].desc = desc3, thrd->lstenq = 0 12.pl330_submit_req(desc4): thrd->req[1].desc = desc4, thrd->lstenq = 1 13._start(desc3) by submit_req: thrd->req_running = 0 because: idx = 1 - thrd->lstenq = 0 14.pl330_update(desc2 OK NOT desc3): thrd->req[0].desc = NULL desc3 to req_done list because: idx = active = thrd->req_running = 0 15._start(desc4) by pl330_update: thrd->req_running = 1 because: idx = 1 - thrd->lstenq = 0, but thrd->req[0].desc == NULL, so: idx = thrd->lstenq = 1 16.pl330_submit_req(desc5): thrd->req[0].desc = desc5, thrd->lstenq = 0 17._start(desc4) by submit_req: thrd->req_running = 1 because: idx = 1 - thrd->lstenq = 1 18.pl330_update(desc3 OK NOT desc4): thrd->req[1].desc = NULL desc4 to req_done list because: idx = active = thrd->req_running = 1 19._start(desc4) by pl330_update: thrd->req_running = 0 because: idx = 1 - thrd->lstenq = 1, but thrd->req[1].desc == NULL, so: idx = thrd->lstenq = 0 20.pl330_update(desc4 OK): thrd->req[0].desc = NULL, desc5 to req_done list because: idx = active = thrd->req_running = 0 21.pl330_update(desc4 OK): 1) before commit dfac17(set req_running -1 in pl330_update/mark_free()): because: active = -1, abort result: desc0-desc5's callback are all called, but step 10 and step 18 go wrong. 2) before commit dfac17: idx = active = thrd->req_runnig = 0 --> descdone = thrd->req[0] = NULL --> list_add_tail(&descdone->rqd, &pl330->req_done); --> got NULL pointer!!! Signed-off-by: NAddy Ke <addy.ke@rock-chips.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-