- 16 7月, 2016 9 次提交
-
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
由 Vinod Koul 提交于
-
- 12 7月, 2016 5 次提交
-
-
由 Michael Olbrich 提交于
Currently the handler ignores the channel 0 interrupt and thus doesn't ack it properly. This is done in order to allow sdma_run_channel0() to poll on the irq status bit, as this function may be called in atomic context, but needs to know when the channel has finished. This works mostly, as the polling happens under a spinlock, disabling IRQs on the local CPU, leaving only a very slight race window for a spurious IRQ to happen if the handler is executed on another CPU in an SMP system. Still this is clearly suboptimal. This behavior turns into a real problem on an RT system, where the spinlock doesn't disable IRQs on the local CPU. Not acking the IRQ in the handler in such a setup is very likely to drown the CPU in an IRQ storm, leaving it unable to make any progress in the polling loop, leading to the IRQ never being acked. Fix this by properly acknowledging the channel 0 IRQ in the handler. As the IRQ status bit can no longer be used to poll for the channel completion, switch over to using the SDMA_H_STATSTOP register for this purpose, where bit 0 is cleared by the hardware when the channel is done. Signed-off-by: NMichael Olbrich <m.olbrich@pengutronix.de> Signed-off-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Wei Yongjun 提交于
In case of error, the function platform_device_register_full() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Thomas Petazzoni 提交于
The new mv_xor_v2 driver supports the XOR engines found in the 64-bits ARM from Marvell of the Armada 7K and Armada 8K family. This XOR engine is a completely new hardware block, entirely different from the one used on previous Marvell Armada platforms, which use the existing mv_xor driver. Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Thomas Petazzoni 提交于
This commit adds the Device Tree binding documentation for the Marvell XOR v2 engine, which is found on Marvell Armada 7K/8K ARM64 SoCs. Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: NRob Herring <robh@kernel.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 08 7月, 2016 4 次提交
-
-
由 Laurent Pinchart 提交于
Cookies corresponding to pending transfers have a residue value equal to the full size of the corresponding descriptor. The driver miscomputes that and uses the size of the active descriptor instead. Fix it. Reported-by: NGeert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> [geert: Also check desc.active list] Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Muhammad Hamza Farooq 提交于
Running descriptor pointer is set to NULL upon freeing resources. Other- wise, rcar_dmac_issue_pending might not start new transfers Signed-off-by: NMuhammad Hamza Farooq <mfarooq@visteon.com> Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Niklas Söderlund 提交于
The documentation states one should make sure both DE and TE are cleared before starting a transaction. This patch extends the current warning to look at both DE and TE. Based on previous work from Muhammad Hamza Farooq. Suggested-by: NMuhammad Hamza Farooq <mfarooq@visteon.com> Signed-off-by: NNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Muhammad Hamza Farooq 提交于
The hardware might have complete the transfer but the interrupt handler might not have had a chance to run. If rcar_dmac_chan_get_residue() which reads HW registers finds that there is no residue return DMA_COMPLETE. Signed-off-by: NMuhammad Hamza Farooq <mfarooq@visteon.com> Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be> [Niklas: add explanation in commit message] Signed-off-by: NNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 07 7月, 2016 2 次提交
-
-
由 Arnd Bergmann 提交于
The bam_dma driver gained runtime PM support, but that causes build warnings whenever CONFIG_PM is disabled: drivers/dma/qcom/bam_dma.c:1324:12: error: 'bam_dma_runtime_resume' defined but not used [-Werror=unused-function] static int bam_dma_runtime_resume(struct device *dev) ^~~~~~~~~~~~~~~~~~~~~~ drivers/dma/qcom/bam_dma.c:1315:12: error: 'bam_dma_runtime_suspend' defined but not used [-Werror=unused-function] static int bam_dma_runtime_suspend(struct device *dev) This removes the incomplete #ifdef guard and instead marks all four PM functions as __maybe_unused, which avoids this kind of warning. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Fixes: 7d254559 ("dmaengine: qcom-bam-dma: Add pm_runtime support") Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Arnd Bergmann 提交于
When building this driver on arm64, we get a harmless type mismatch warning: drivers/dma/bcm2835-dma.c: In function 'bcm2835_dma_fill_cb_chain_with_sg': include/linux/kernel.h:743:17: warning: comparison of distinct pointer types lacks a cast (void) (&_min1 == &_min2); \ ^ drivers/dma/bcm2835-dma.c:409:21: note: in expansion of macro 'min' cb->cb->length = min(len, max_len); This changes the type of the 'len' variable to size_t, which avoids the problem. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Fixes: 388cc7a2 ("dmaengine: bcm2835: add slave_sg support to bcm2835-dma") Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 02 7月, 2016 3 次提交
-
-
由 Lars-Peter Clausen 提交于
Return IRQ_NONE in the interrupt handler when it is called but no IRQs are pending. This allows the system to recover in case of an interrupt storm e.g. due to a wrong interrupt configuration setup. Signed-off-by: NLars-Peter Clausen <lars@metafoo.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Lars-Peter Clausen 提交于
Propagate errors returned by platform_get_irq() to the driver core. This will enable proper probe deferring for the driver in case the IRQ provider has not been registered yet. Signed-off-by: NLars-Peter Clausen <lars@metafoo.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Lars-Peter Clausen 提交于
Add MODULE_DEVICE_TABLE() for the axi-dmac driver. This allows the driver to be loaded on demand when built as a module. Signed-off-by: NLars-Peter Clausen <lars@metafoo.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 01 7月, 2016 1 次提交
-
-
由 Arnd Bergmann 提交于
When building this driver on arm64, we get a harmless type mismatch warning: drivers/dma/bcm2835-dma.c: In function 'bcm2835_dma_fill_cb_chain_with_sg': include/linux/kernel.h:743:17: warning: comparison of distinct pointer types lacks a cast (void) (&_min1 == &_min2); \ ^ drivers/dma/bcm2835-dma.c:409:21: note: in expansion of macro 'min' cb->cb->length = min(len, max_len); This changes the type of the 'len' variable to size_t, which avoids the problem. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Fixes: 388cc7a2 ("dmaengine: bcm2835: add slave_sg support to bcm2835-dma") Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 30 6月, 2016 5 次提交
-
-
由 Pramod Gurav 提交于
Adds pm_runtime support for BAM DMA so that clock is enabled only when there is a transaction going on to help save power. Signed-off-by: NPramod Gurav <pramod.gurav@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Jon Hunter 提交于
Commit 71f7e6cc ('dmaengine: tegra20-apb-dma: Only calculate residue if txstate exists') changed the tegra_dma_tx_status() function to only calculate the residue if there is a valid 'txstate' pointer for storing the residue. Although this makes sense, this changed the behaviour of the function tegra_dma_tx_status() such that if the pointer 'txstate' is not valid, then we will return whatever state is returned by dma_cookie_status() and no longer return the state by looking up the DMA descriptor and returning it's state. Please note that dma_cookie_status() will either return DMA_COMPLETE or DMA_IN_PROGRESS. However, if dma_cookie_status() returns DMA_IN_PROGRESS the actual status could be DMA_ERROR which will only be seen from checking the descriptor status. Therefore, even if 'txstate' is not valid, still check to see if there is a valid descriptor for the cookie in question and if so return the descriptor state. Finally, ensure the residue is still not calculated if the 'txstate' is not valid. Signed-off-by: NJon Hunter <jonathanh@nvidia.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Jon Hunter 提交于
The calculation of the DMA residue for the Tegra APB DMA is duplicated in two places in the tegra_dma_tx_status() function. Remove this duplicated code by moving calculation to the end of the function and only calculating if we found a valid descriptor. Signed-off-by: NJon Hunter <jonathanh@nvidia.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Jon Hunter 提交于
Correct the grammar in the debug message when no descriptor is found. Signed-off-by: NJon Hunter <jonathanh@nvidia.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Alexandre Belloni 提交于
mbr_ds is an integer, don't use %pad to print it. Fixes: commit 268914f4 ("dmaengine: at_xdmac: use %pad format string for dma_addr_t") Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NAlexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 22 6月, 2016 8 次提交
-
-
由 Peter Griffin 提交于
If kzalloc() fails it will issue it's own error message including a dump_stack(). So remove the site specific error messages. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Acked-by: NJon Hunter <jonathanh@nvidia.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
There is no point calculating the residue if there is no txstate to store the value. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
There is no point in calculating the residue if state does not exist to store the value. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
There is no point calculating the residue if there is no txstate to store the value. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
Doing so saves a few lines of code in the driver. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
There is no point in calculating the residue if there is no txstate to store the value. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
It is useful to print the error code as part of the error message. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Peter Griffin 提交于
Currently fsl-edma doesn't clk_disable_unprepare() its clocks on error conditions. This patch adds a fsl_disable_clocks helper for this, and also only disables clocks which were enabled if encountering an error whilst enabling clocks. Signed-off-by: NPeter Griffin <peter.griffin@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 08 6月, 2016 3 次提交
-
-
由 Ben Dooks 提交于
The bcm2835_dma_prep_dma_memcpy() function is not exported outside the driver, so make it static to avoid the following warning: drivers/dma/bcm2835-dma.c:616:32: warning: symbol 'bcm2835_dma_prep_dma_memcpy' was not declared. Should it be static? Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk> Reviewed-by: NEric Anholt <eric@anholt.net> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Ben Dooks 提交于
The at_xdmac_init_used_desc() and at_xdmac_prep_dma_memset() functions are not exported outside the driver, so make them static to avoid the following warnings: drivers/dma/at_xdmac.c:459:6: warning: symbol 'at_xdmac_init_used_desc' was not declared. Should it be static? drivers/dma/at_xdmac.c:1205:32: warning: symbol 'at_xdmac_prep_dma_memset' was not declared. Should it be static? Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Ben Dooks 提交于
The sirfsoc_dmadata structs are not used outside the driver, so remove build warnings by making them static. Fixes: drivers/dma/sirf-dma.c:1129:24: warning: symbol 'sirfsoc_dmadata_a6' was not declared. Should it be static? drivers/dma/sirf-dma.c:1134:24: warning: symbol 'sirfsoc_dmadata_a7v1' was not declared. Should it be static? drivers/dma/sirf-dma.c:1139:24: warning: symbol 'sirfsoc_dmadata_a7v2' was not declared. Should it be static? Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-