- 05 12月, 2018 3 次提交
-
-
由 Lucas Stach 提交于
The dmaengine documentation states that device_terminate_all may be asynchronous and need not wait for the active transfers to stop. This allows us to move most of the functionality currently implemented in the sdma channel termination function to run in a worker, outside of any atomic context. Moving this out of atomic context has two benefits: we can now sleep while waiting for the channel to terminate, instead of busy waiting and the freeing of the dma descriptors happens with IRQs enabled, getting rid of a warning in the dma mapping code. As the termination is now async, we need to implement the device_synchronize dma engine function which simply waits for the worker to finish its execution. Signed-off-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Lucas Stach 提交于
This reverts commit fe5b85c6. The SDMA engine needs the descriptors to be contiguous in memory. As the dma pool API is only able to provide a single descriptor per alloc invocation there is no guarantee that multiple descriptors satisfy this requirement. Also the code in question is broken as it only allocates memory for a single descriptor, without looking at the number of descriptors required for the transfer, leading to out-of-bounds accesses when the descriptors are written. Signed-off-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Lucas Stach 提交于
This reverts commit c1199875, as this depends on another commit that is going to be reverted. Signed-off-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
- 30 7月, 2018 2 次提交
-
-
由 Robin Gong 提交于
Add MEMCPY capability for imx-sdma driver. Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Robin Gong 提交于
Add macro SDMA_BD_MAX_CNT to replace '0xffff'. Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
- 06 7月, 2018 1 次提交
-
-
由 Robin Gong 提交于
Some member description or colons missing cause build warning with 'W=1' as below: drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'vd' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'num_bd' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'bd_phys' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'buf_tail' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'buf_ptail' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'period_len' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'chn_real_count' not described in 'sdma_desc' drivers/dma/imx-sdma.c:326: warning: Function parameter or member 'chn_count' not described in 'sdma_desc Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reported-by: NVinod Koul <vkoul@kernel.org> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
- 02 7月, 2018 9 次提交
-
-
由 Vinod Koul 提交于
The variable is no longer used, though it is set, so remove it drivers/dma/imx-sdma.c:1298:6: warning: variable ‘ret’ set but not used [-Wunused-but-set-variable] int ret, i, count; ^~~ Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Vinod Koul 提交于
The memory allocation in DMA callbacks should use GFP_NOWAIT, so update this one and fix code alignment for this call while at it. Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Vinod Koul 提交于
Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Robin Gong 提交于
dma_terminate_all maybe called in interrupt context which means WARN_ON() will be triggered as below when bd memory freed. Allocat bd memory from dma pool instead. [ 29.161079] WARNING: CPU: 1 PID: 533 at ./include/linux/dma-mapping.h:541 sdma_free_bd+0xa4/0xb4 [ 29.169883] Modules linked in: [ 29.172990] CPU: 1 PID: 533 Comm: mpegaudioparse0 Not tainted 4.18.0-rc1-next-20180618-00009-gf79f22c #20 [ 29.182597] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [ 29.189163] Backtrace: [ 29.191685] [<c010d1e0>] (dump_backtrace) from [<c010d4a0>] (show_stack+0x18/0x1c) [ 29.199306] r7:00000000 r6:600f0093 r5:00000000 r4:c107db7c [ 29.205029] [<c010d488>] (show_stack) from [<c0a5bba0>] (dump_stack+0xb4/0xe8) [ 29.212312] [<c0a5baec>] (dump_stack) from [<c012703c>] (__warn+0x104/0x130) [ 29.219411] r9:ec3e817c r8:0000021d r7:00000009 r6:c0d1d440 r5:00000000 r4:00000000 [ 29.227204] [<c0126f38>] (__warn) from [<c0127180>] (warn_slowpath_null+0x44/0x50) [ 29.234821] r8:ed129dc4 r7:c0b01978 r6:c04d4e90 r5:0000021d r4:c0d1d440 [ 29.241574] [<c012713c>] (warn_slowpath_null) from [<c04d4e90>] (sdma_free_bd+0xa4/0xb4) [ 29.249706] r6:4c001000 r5:f082e000 r4:00000024 [ 29.254376] [<c04d4dec>] (sdma_free_bd) from [<c04d4eb4>] (sdma_desc_free+0x14/0x20) [ 29.262163] r7:ec3e8110 r6:00000100 r5:00000200 r4:ecf89a00 [ 29.267873] [<c04d4ea0>] (sdma_desc_free) from [<c04d229c>] (vchan_dma_desc_free_list+0xa4/0xac) [ 29.276697] r5:00000200 r4:ed129d9c [ 29.280326] [<c04d21f8>] (vchan_dma_desc_free_list) from [<c04d482c>] (sdma_disable_channel_with_delay+0x14c/0x188) [ 29.290808] r9:ecae560c r8:ec3e815c r7:00000000 r6:c1008908 r5:ed129dc4 r4:ec3e8110 [ 29.298605] [<c04d46e0>] (sdma_disable_channel_with_delay) from [<c07c5c84>] (snd_dmaengine_pcm_trigger+0x90/0x1b0) [ 29.309087] r8:ecae5000 r7:ec940800 r6:ed31bd80 r5:ecadb200 r4:ec26a700 [ 29.315855] [<c07c5bf4>] (snd_dmaengine_pcm_trigger) from [<c07dd800>] (soc_pcm_trigger+0xb4/0x130) [ 29.324953] r8:ecae5000 r7:ec940800 r6:00000000 r5:ecadb200 r4:ec26a700 [ 29.331716] [<c07dd74c>] (soc_pcm_trigger) from [<c07bc008>] (snd_pcm_do_stop+0x58/0x5c) [ 29.339859] r9:ecaed5a8 r8:ed31bdc0 r7:00000000 r6:00000001 r5:ecadb200 r4:c0b9c4d0 [ 29.347652] [<c07bbfb0>] (snd_pcm_do_stop) from [<c07bbde8>] (snd_pcm_action_single+0x40/0x80) [ 29.356315] [<c07bbda8>] (snd_pcm_action_single) from [<c07bbf1c>] (snd_pcm_action+0xf4/0xfc) [ 29.364883] r7:00000001 r6:c0b9c4d0 r5:ecadb2d4 r4:ecadb200 [ 29.370593] [<c07bbe28>] (snd_pcm_action) from [<c07bc8dc>] (snd_pcm_drop+0x58/0x9c) Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Tested-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Robin Gong 提交于
There are lot of codes overlap between prep_sg and prep_cyclic function. Add sdma_transfer_init() function to elimated the code overlap. Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Tested-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Robin Gong 提交于
No this limitation now after virtual dma used since bd is allocated dynamically instead of static. Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Tested-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Robin Gong 提交于
Since 'sdmac->vc.lock' and 'sdmac->desc' can be used as 'lock' and 'enabled' in 'struct sdma_channel sdmac', remove them. Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Tested-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Robin Gong 提交于
The legacy sdma driver has below limitations or drawbacks: 1. Hardcode the max BDs number as "PAGE_SIZE / sizeof(*)", and alloc one page size for one channel regardless of only few BDs needed most time. But in few cases, the max PAGE_SIZE maybe not enough. 2. One SDMA channel can't stop immediatley once channel disabled which means SDMA interrupt may come in after this channel terminated.There are some patches for this corner case such as commit "2746e2c3", but not cover non-cyclic. The common virt-dma overcomes the above limitations. It can alloc bd dynamically and free bd once this tx transfer done. No memory wasted or maximum limititation here, only depends on how many memory can be requested from kernel. For No.2, such issue can be workaround by checking if there is available descript("sdmac->desc") now once the unwanted interrupt coming. At last the common virt-dma is easier for sdma driver maintain. Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Tested-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
由 Sascha Hauer 提交于
This is a preparation step to make the adding of virt-dma easier. We create a struct sdma_desc, move some fields from struct sdma_channel there and add a pointer from the former to the latter. For now we allocate the data statically in struct sdma_channel, but with virt-dma support it will be dynamically allocated. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NRobin Gong <yibin.gong@nxp.com> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Tested-by: NLucas Stach <l.stach@pengutronix.de> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
- 23 5月, 2018 1 次提交
-
-
由 Fabio Estevam 提交于
Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: NFabio Estevam <fabio.estevam@nxp.com> Signed-off-by: NVinod Koul <vkoul@kernel.org>
-
- 05 3月, 2018 1 次提交
-
-
由 Thierry Bultel 提交于
Add a spinlock and a 'enabled' boolean on channel descriptor, to avoid using buffer descriptors in the interrupt context, when sdma_disable_channel is called meanwhile. Signed-off-by: NThierry Bultel <tbultel@pixelsurmer.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 22 12月, 2017 1 次提交
-
-
由 Nicolas Chauvet 提交于
This avoid the following error when using an initramfs on wandboard quad Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2 Signed-off-by: NNicolas Chauvet <kwizart@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 22 9月, 2017 1 次提交
-
-
由 Nicolin Chen 提交于
The driver already supports DMA_DEV_TO_DEV in sdma_config(), DMA_SLAVE_BUSWIDTH_2_BYTES and DMA_SLAVE_BUSWIDTH_1_BYTE in sdma_prep_slave_sg(). So this patch adds them to the lists. Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 30 5月, 2017 2 次提交
-
-
由 Arvind Yadav 提交于
Replace '%d' by '%zu' to fix the following compilation warning:- drivers/dma/imx-sdma.c: In function ‘sdma_prep_dma_cyclic’: drivers/dma/imx-sdma.c:1327:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ [-Wformat=] channel, period_len, 0xffff); ^ drivers/dma/imx-sdma.c:1350:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t’ [-Wformat=] dev_dbg(sdma->dev, "entry %d: count: %d dma: %#llx %s%s\n", Signed-off-by: NArvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Arvind Yadav 提交于
clk_prepare_enable() can fail here and we must check its return value. Signed-off-by: NArvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 27 3月, 2017 1 次提交
-
-
由 Jiada Wang 提交于
sdma_disable_channel() cannot ensure dma is stopped to access module's FIFOs. There is chance SDMA core is running and accessing BD when disable of corresponding channel, this may cause sometimes even after call of .sdma_disable_channel(), SDMA core still be running and accessing module's FIFOs. According to NXP R&D team a delay of one BD SDMA cost time (maximum is 1ms) should be added after disable of the channel bit, to ensure SDMA core has really been stopped after SDMA clients call .device_terminate_all. This patch introduces adds a new function sdma_disable_channel_with_delay() which simply adds 1ms delay after call sdma_disable_channel(), and set it as .device_terminate_all. Signed-off-by: NJiada Wang <jiada_wang@mentor.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 14 3月, 2017 1 次提交
-
-
由 Lucas Stach 提交于
The SDMA hardware/driver does not actually report the transfer residue at burst size granularity, but in fact is only able to report residue after each finished segment. Signed-off-by: NLucas Stach <l.stach@pengutronix.de> Tested-by: NFabio Estevam <fabio.estevam@nxp.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 25 11月, 2016 1 次提交
-
-
由 Nandor Han 提交于
The residue calculation was taking in consideration that dma transaction status will be always retrieved in the dma callback used to inform that dma transfer is complete. However this is not the case for all subsystems that use dma. Some subsystems use a timer to check the dma status periodically. Therefore the calculation was updated and residue is calculated accordingly by a) update the residue calculation taking in consideration the last used buffer index by using *buf_ptail* variable and b) chn_real_count (number of bytes transferred) is initialized to zero, when dma channel is created, to avoid using an uninitialized value in residue calculation when dma status is checked without waiting dma complete event. Signed-off-by: NNandor Han <nandor.han@ge.com> Acked-by: NPeter Senna Tschudin <peter.senna@collabora.com> Tested-by: NPeter Senna Tschudin <peter.senna@collabora.com> Tested-by: NMarek Vasut <marex@denx.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 31 8月, 2016 3 次提交
-
-
由 Nandor Han 提交于
The calculation of the DMA transaction residue supports only fixed size data transfers. This implementation is not covering all operations (e.g. data receiving) when we need to know the exact amount of bytes transferred. The loop channels handling was changed to clear the buffer descriptor errors and use the bd->mode.count to calculate the residue. Tested-by: NPeter Senna Tschudin <peter.senna@collabora.com> Acked-by: NPeter Senna Tschudin <peter.senna@collabora.com> Reviewed-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NNandor Han <nandor.han@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Nandor Han 提交于
Having the SDMA driver use a tasklet for running the clients callback introduce some issues: - probability to have desynchronized data because of the race condition created since the DMA transaction status is retrieved only when the callback is executed, leaving plenty of time for transaction status to get altered. - inter-transfer latency which can leave channels idle. Move the callback execution, for cyclic channels, to SDMA interrupt (as advised in `Documentation/dmaengine/provider.txt`) to (a)reduce the inter-transfer latency and (b) eliminate the race condition possibility where DMA transaction status might be changed by the time is read. The responsibility of the SDMA interrupt latency is moved to the SDMA clients which case by case should defer the work to bottom-halves when needed. Tested-by: NPeter Senna Tschudin <peter.senna@collabora.com> Acked-by: NPeter Senna Tschudin <peter.senna@collabora.com> Reviewed-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NNandor Han <nandor.han@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Fabio Estevam 提交于
Allow i.MX7 to work with the imx-sdma driver. Signed-off-by: NFabio Estevam <fabio.estevam@nxp.com> Tested-by: NStefan Agner <stefan@agner.ch> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 11 8月, 2016 1 次提交
-
-
由 Martin Kaiser 提交于
Signed-off-by: NMartin Kaiser <martin@kaiser.cx> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 08 8月, 2016 1 次提交
-
-
由 Dave Jiang 提交于
This is in preperation of moving to a callback that provides results to the callback for the transaction. The conversion will maintain current behavior and the driver must convert to new callback mechanism at a later time in order to receive results. Signed-off-by: NDave Jiang <dave.jiang@intel.com> Reviewed-by: NLars-Peter Clausen <lars@metafoo.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 23 7月, 2016 2 次提交
-
-
由 Vinod Koul 提交于
David reported: [drivers/dma/imx-sdma.c:769]: (style) Variable 'emi_2_emi' is assigned a value that is never used Since emi_2_emi is never used afterwards, remove thsi as well Reported-by: NDavid Binderman <dcb314@hotmail.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Vinod Koul 提交于
David reported: drivers/dma/imx-sdma.c:1003]: (style) Same expression on both sides of '|=' ORing with itself yields same result, So remove this Reported-by: NDavid Binderman <dcb314@hotmail.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 16 7月, 2016 1 次提交
-
-
由 Vinod Koul 提交于
dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: NVinod Koul <vinod.koul@intel.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Fabio Estevam <fabio.estevam@freescale.com>
-
- 12 7月, 2016 1 次提交
-
-
由 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>
-
- 16 11月, 2015 1 次提交
-
-
由 Jason Liu 提交于
The sdma_probe function will call sdma_event_remap, but sdma_event_remap marked with the __init annotation which make the kbuild complains as the following log: WARNING: drivers/dma/built-in.o(.text+0x56fc): Section mismatch in reference from the function sdma_probe() to the function .init.text:sdma_event_remap() The function sdma_probe() references the function __init sdma_event_remap(). This is often because sdma_probe lacks a __init annotation or the annotation of sdma_event_remap is wrong. Remove the __init annotation on sdma_event_remap to kill this build warning Signed-off-by: NJason Liu <r64343@freescale.com> Acked-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 07 10月, 2015 2 次提交
-
-
由 Fabio Estevam 提交于
There is no need to print that the driver has been initialized or removed, so remove such messages. Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
由 Fabio Estevam 提交于
Since commit d078cd1b ("dmaengine: imx-sdma: Add imx6sx platform support") we get this message on every boot on mx6q: imx-sdma 20ec000.sdma: no event needs to be remapped , which is not very helpful. Move the message to debug level instead. Cc: Zidan Wang <zidan.wang@freescale.com> Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 20 8月, 2015 1 次提交
-
-
由 Fabio Estevam 提交于
clk_enable() may fail, so we should better check the return value and propagate it in the case of error. Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 19 8月, 2015 1 次提交
-
-
由 Zidan Wang 提交于
The new Solo X has more requirements for SDMA events. So it creates a event mux to remap most of event numbers in GPR (General Purpose Register). If we want to use SDMA support for those module who do not get the even number as default, we need to configure GPR first. Thus this patch adds this support of GPR event remapping configuration to the SDMA driver. Signed-off-by: NZidan Wang <zidan.wang@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 05 8月, 2015 1 次提交
-
-
由 Shengjiu Wang 提交于
This patch adds DEV_TO_DEV support for i.MX SDMA driver to support data transfer between two peripheral FIFOs. The per_2_per script requires two peripheral addresses and two DMA requests, and it need to check the src addr and dst addr is in the SPBA bus space or in the AIPS bus space. Signed-off-by: NShengjiu Wang <shengjiu.wang@freescale.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-
- 04 5月, 2015 1 次提交
-
-
由 Krzysztof Kozlowski 提交于
The platform_device_id is not modified by the driver and core uses it as const. Signed-off-by: NKrzysztof Kozlowski <k.kozlowski.k@gmail.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com>
-