- 05 12月, 2017 1 次提交
-
-
由 Peter Ujfalusi 提交于
To avoid race with vchan_complete, use the race free way to terminate running transfer. Implement the device_synchronize callback to make sure that the terminated descriptor is freed. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 28 8月, 2017 1 次提交
-
-
由 Arvind Yadav 提交于
amba_id are not supposed to change at runtime. All functions working with const amba_id. So mark the non-const structs as const. Signed-off-by: NArvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 24 5月, 2017 3 次提交
-
-
由 Linus Walleij 提交于
After reading the specs for the Faraday Technology FTDMAC020 found in the Gemini platform, it becomes pretty evident that this is just another PL08x derivative, and should be handled like such by simply extending the existing PL08x driver to handle the quirks in this hardware. This patch makes memcpy work and has been tested on the Gemini and also regression-tested on the Nomadik NHK15 using dmatest with 10 threads per channel without a hinch for hours. I have not implemented slave DMA in those codepaths, because this device (Gemini) does not use slave DMA, and it seems like devices using FTDMAC020 for device DMA have a slightly different register layout so some real hardware is needed to proceed with this. I left some FIXME etc in the code for this. I had to do some refactorings of some helper functions, but I have not split those into separate patches because these refactorings do not make much sense without the increased complexity of handling the FTDMAC020. The DMA test would hang the platform on me on the Gemini after a few thousand iterations, however after turning of the caches the problem immediately disappeared and I could run the DMA engine with 10 threads pers physical channel for days in a row without a crash. I think there is no problem with the DMA driver: instead it is something fishy in the FA526 cache handling code that get pretty heavily exercised by the DMA engine and we need to go and fix that instead. Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Linus Walleij 提交于
If the vendor data does not specify any signals, we do not have to support slave DMA. Make the registration of the slave DMA engine optional, so we can use this for the FTDMAC020 in the Gemini that only has memcpy support. Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Linus Walleij 提交于
We cannot use bits from configuration registers as API between platforms and driver like this, abstract it out to two enums and mimic the stuff passed as device tree data. This is done to make it possible for the driver to generate the ccfg word on-the-fly so we can support more PL08x derivatives. Acked-by: NOlof Johansson <olof@lixom.net> Acked-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 04 5月, 2017 4 次提交
-
-
由 Vinod Koul 提交于
lock variable in pl08x_dma_chan_state no longer exists so remove it Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
Documentation for pl08x_dma_chan_state mentions it as struct whereas it is a enum, so fix that Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Linus Walleij 提交于
This makes the driver shift bits with BIT() which is used on other places in the driver. Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Linus Walleij 提交于
Two elements of the physical channel description was missing. Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 17 11月, 2016 1 次提交
-
-
由 Sylwester Nawrocki 提交于
This patch adds support for the new channel request API introduced in commit a8135d0d "dmaengine: core: Introduce new, universal API to request a channel". param field of struct dma_slave_map type entries in the platform data structure should be pointing to struct pl08x_channel_data of related DMA channel. Signed-off-by: NSylwester Nawrocki <s.nawrocki@samsung.com> Tested-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 22 6月, 2016 1 次提交
-
-
由 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>
-
- 06 4月, 2016 1 次提交
-
-
由 Linus Walleij 提交于
The current OF translation of channels can never work with any DMA client using the DMA channels directly: the only way to get the channels initialized properly is in the dma_async_device_register() call, where chan->dev etc is allocated and initialized. Allocate and initialize all possible DMA channels and only augment a target channel with the periph_buses at of_xlate(). Remove some const settings to make things work. Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Tested-by: NJoachim Eastwood <manabian@gmail.com> Tested-by: NJohannes Stezenbach <js@sig21.net> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 19 8月, 2015 1 次提交
-
-
由 Linus Walleij 提交于
Add support for assigning DMA channels from a device tree. [je: remove channel sub-node parsing, dynamic channel creation on xlate] Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NJoachim Eastwood <manabian@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 08 5月, 2015 1 次提交
-
-
由 Leonardo Carreras 提交于
Removed checkpatch reported spaces in indentation: ERROR: code indent should use tabs where possible +^I PL080_CONFIG_TC_IRQ_MASK);$ Signed-off-by: NLeonardo Carreras <leocarreras89@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 19 3月, 2015 2 次提交
-
-
由 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>
-
由 Mark Brown 提交于
Ensure that clients can automatically configure themselves and avoid a nasty warning at boot by providing capability information. Signed-off-by: NMark Brown <broonie@kernel.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 17 3月, 2015 1 次提交
-
-
由 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>
-
- 22 12月, 2014 1 次提交
-
-
由 Maxime Ripard 提交于
Split the device_control callback of the AMBA PL08x DMA driver to make use of the newly introduced callbacks, that will eventually be used to retrieve slave capabilities. Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 06 11月, 2014 1 次提交
-
-
由 Maxime Ripard 提交于
chanctnt is already filled by dma_async_device_register, which uses the channel list to know how much channels there is. Since it's already filled, we can safely remove it from the drivers' probe function. Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 04 8月, 2014 2 次提交
-
-
由 Mark Brown 提交于
When printing size_t values we should use the %zd or %zx format specifier in order to ensure the value is displayed correctly and avoid warnings from sparse. Signed-off-by: NMark Brown <broonie@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Laurent Pinchart 提交于
The argument is always set to NULL and never used. Remove it. Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 28 1月, 2014 1 次提交
-
-
由 Sachin Kamat 提交于
Export the symbol so that it is accessible to modules. Fixes the following error: ERROR: "pl08x_filter_id" [sound/soc/samsung/snd-soc-s3c-dma.ko] undefined! Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 19 12月, 2013 1 次提交
-
-
由 Linus Walleij 提交于
It might happen that a platform wants to use its DMA engine for memcpy only, and then we have zero slave channels to initialize, so allow the slave initialization to return zero. Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 04 12月, 2013 1 次提交
-
-
由 Russell King - ARM Linux 提交于
drivers/dma/amba-pl08x.c: In function 'pl08x_desc_free': drivers/dma/amba-pl08x.c:1173:2: warning: passing argument 1 of 'dma_descriptor_unmap' from incompatible pointer type include/linux/dmaengine.h:476:91: note: expected 'struct dma_async_tx_descriptor *' but argument is of type 'struct pl08x_txd *' Fixes: d38a8c62 ("dmaengine: prepare for generic 'unmap' data") Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: NDan Williams <dan.j.williams@intel.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 15 11月, 2013 1 次提交
-
-
Remove support for DMA unmapping from drivers as it is no longer needed (DMA core code is now handling it). Cc: Vinod Koul <vinod.koul@intel.com> Cc: Tomasz Figa <t.figa@samsung.com> Cc: Dave Jiang <dave.jiang@intel.com> Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> [djbw: fix up chan2parent() unused warning in drivers/dma/dw/core.c] Signed-off-by: NDan Williams <dan.j.williams@intel.com>
-
- 14 11月, 2013 1 次提交
-
-
由 Dan Williams 提交于
Add a hook for a common dma unmap implementation to enable removal of the per driver custom unmap code. (A reworked version of Bartlomiej Zolnierkiewicz's patches to remove the custom callbacks and the size increase of dma_async_tx_descriptor for drivers that don't care about raid). Cc: Vinod Koul <vinod.koul@intel.com> Cc: Tomasz Figa <t.figa@samsung.com> Cc: Dave Jiang <dave.jiang@intel.com> [bzolnier: prepare pl330 driver for adding missing unmap while at it] Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Signed-off-by: NDan Williams <dan.j.williams@intel.com>
-
- 31 10月, 2013 1 次提交
-
-
由 Russell King 提交于
The DMA API requires drivers to call the appropriate dma_set_mask() functions before doing any DMA mapping. Add this required call to the AMBA PL08x driver. Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
- 25 10月, 2013 1 次提交
-
-
由 Vinod Koul 提交于
Acked-by: NDan Williams <dan.j.williams@intel.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 13 10月, 2013 1 次提交
-
-
由 Michael Opdenacker 提交于
This patch proposes to remove the use of the IRQF_DISABLED flag It's a NOOP since 2.6.35 and it will be removed one day. Signed-off-by: NMichael Opdenacker <michael.opdenacker@free-electrons.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 02 9月, 2013 8 次提交
-
-
由 Alban Bedel 提交于
Many audio interface drivers require support of cyclic transfers to work correctly, for example Samsung ASoC DMA driver. This patch adds support for cyclic transfers to the amba-pl08x driver. Signed-off-by: NAlban Bedel <alban.bedel@avionic-design.de> [tfiga: Rebase and slightly beautify the original patch.] Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Alban Bedel 提交于
There are more fields than just SWIDTH in CH_CONTROL register, so read register value must be masked in addition to shifting. Signed-off-by: NAlban Bedel <alban.bedel@avionic-design.de> Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Tomasz Figa 提交于
PL080S has separate register to store transfer size in, allowing single transfer to be much larger than in standard PL080. This patch makes the amba-pl08x driver aware of this and removes writing transfer size to reserved bits of CH_CONTROL register on PL080S, which was not a problem witn transfer sizes fitting the original bitfield of PL080, but now would overwrite other fields. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Tomasz Figa 提交于
PL080S is a modified version of PL080 that can be found on Samsung SoCs, such as S3C6400 and S3C6410. It has different offset of CONFIG register, separate CONTROL1 register that holds transfer size and larger maximum transfer size. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Tomasz Figa 提交于
This patch refactors debugging code that dumps LLI entries by moving it into separate function, which is stubbed when VERBOSE_DEBUG is not selected. This allows us to get rid of the ugly ifdef from the body of pl08x_fill_llis_for_desc(). No functional change is introduced by this patch. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Tomasz Figa 提交于
Currently memory allocated for LLIs is casted to an array of structs, which is fragile and also limits the driver to a single, predefined LLI layout, while there are some variants of PL08x, which have more fields in LLI (namely PL080S with its extra CCTL2). This patch makes LLIs a sequence of 32-bit words, which is just filled with appropriate values in appropriate order and padded with required amount of dummy words (currently zero, but PL080S will make better use of this). Suggested-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Tomasz Figa 提交于
Some variants of PL08x (namely PL080S, found in Samsung S3C64xx SoCs) have CONFIG register at different offset. This patch makes the driver use offset from vendor data struct. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Tomasz Figa 提交于
Further patch will introduce support for PL080S, which requires some things to be done conditionally, thus increasing indentation level of some functions even more. This patch reduces indentation level of pl08x_getbytes_chan() function by inverting several conditions and returning from function wherever possible. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 23 8月, 2013 2 次提交
-
-
由 Andre Przywara 提交于
In Rob's recent pull request the patch ARM: highbank: select ARCH_DMA_ADDR_T_64BIT for LPAE promotes dma_addr_t to 64bit, so printk generates a warning about an incorrect type. Fix this by casting it to u64 and using %llx. Fixing long lines on the way. Signed-off-by: NAndre Przywara <andre.przywara@linaro.org> Signed-off-by: NRob Herring <rob.herring@calxeda.com>
-
由 Andre Przywara 提交于
When dma_addr_t is 64 bits long, compilation of the AMBA PL08x DMA driver breaks due to a missing 64bit%8bit modulo operation. Looking more closely the divisor in these operations can only be 1, 2 or 4, so the full featured '%' modulo operation is overkill and can be replaced with simple bit masking. Change from v1: Replace open-coded function with existing IS_ALIGNED macro and use a macro around that to avoid a line becoming too long. Signed-off-by: NAndre Przywara <andre.przywara@linaro.org> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRob Herring <rob.herring@calxeda.com>
-
- 05 7月, 2013 1 次提交
-
-
由 Mark Brown 提交于
As pointed out by Arnd Bergmann there is a get_signal macro definied in linux/signal.h which can conflict with the platform data callback function of the same name leading to confusing errors from the compiler (especially if signal.h manages to get pulled into the driver itself due to header dependencies). Avoid such errors by renaming get_signal and put_signal in the platform data to get_xfer_signal and put_xfer_signal. Signed-off-by: NMark Brown <broonie@linaro.org> Acked-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-