<feed xmlns='http://www.w3.org/2005/Atom'>
<title>starfive-tech/linux.git/drivers/dma, branch visionfive_v1_5.13</title>
<subtitle>StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)</subtitle>
<id>https://git.radix-linux.su/starfive-tech/linux.git/atom?h=visionfive_v1_5.13</id>
<link rel='self' href='https://git.radix-linux.su/starfive-tech/linux.git/atom?h=visionfive_v1_5.13'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/'/>
<updated>2021-09-10T12:56:41+00:00</updated>
<entry>
<title>starfive(multimedia): refactor the starfive alsa code</title>
<updated>2021-09-10T12:56:41+00:00</updated>
<author>
<name>sw.multimedia</name>
<email>sw.multimedia@starfivetech.com</email>
</author>
<published>2021-09-10T12:15:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=85a5da42e7953353d2b2872bce50a19baac1c9ba'/>
<id>urn:sha1:85a5da42e7953353d2b2872bce50a19baac1c9ba</id>
<content type='text'>
Signed-off-by: sw.multimedia &lt;sw.multimedia@starfivetech.com&gt;
Signed-off-by: michael.yan &lt;michael.yan@starfivetech.com&gt;
Signed-off-by: andy.hu &lt;andy.hu@starfivetech.com&gt;
</content>
</entry>
<entry>
<title>starfive(multimedia): Add starfive audio ALSA driver framework</title>
<updated>2021-08-31T07:44:23+00:00</updated>
<author>
<name>sw.multimedia</name>
<email>sw.multimedia@starfivetech.com</email>
</author>
<published>2021-08-31T06:39:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=3e76f3acfc78b8b855bcbab7d05515f2cd0f0581'/>
<id>urn:sha1:3e76f3acfc78b8b855bcbab7d05515f2cd0f0581</id>
<content type='text'>
1. Add starfive audio alsa driver framework for wm8960, ac108, pwmdac, spdif, vad, pdm
2. (drivers/dma) Modify dw-axi-dmac-platform driver for alsa

Signed-off-by: michael.yan &lt;michael.yan@starfivetech.com&gt;
Signed-off-by: sw.multimedia &lt;sw.multimedia@starfivetech.com&gt;
</content>
</entry>
<entry>
<title>drivers/dma: dw-axi-dmac-starfive: Remove calls specific to ARM64 ACPI</title>
<updated>2021-08-26T21:07:33+00:00</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2021-06-29T14:04:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=9ac59e9a480ee6b7eccc1c3842dc6d2619783a73'/>
<id>urn:sha1:9ac59e9a480ee6b7eccc1c3842dc6d2619783a73</id>
<content type='text'>
iort_dma_setup() is being removed by commit db59e1b6e49201be ("ACPI:
arm64: Move DMA setup operations out of IORT") in iommu/next:

    drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c: In function ‘dw_dma_async_
    do_memcpy’:
    drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:152:2: error: implicit decl
    aration of function ‘iort_dma_setup’ [-Werror=implicit-function-declaration]
      152 |  iort_dma_setup(dma_dev, &amp;dma_addr, &amp;dma_size);
	  |  ^~~~~~~~~~~~~~
    drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:153:8: warning: assignment to ‘const struct iommu_ops *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
      153 |  iommu = iort_iommu_configure_id(dma_dev, NULL);
	  |        ^
    drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c: In function ‘dw_dma_memcpy_raw’:
    drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:223:8: warning: assignment to ‘const struct iommu_ops *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
      223 |  iommu = iort_iommu_configure_id(dma_dev, NULL);
	  |        ^

iort_dma_setup() and iort_iommu_configure_id() are part of the ARM64
ACPI implementation.  As CONFIG_ACPI_IORT cannot be enabled on RISC-V,
they were dummies anyway, so these calls can just be removed.

[Emil: remove unused local variables too]

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Emil Renner Berthing &lt;kernel@esmil.dk&gt;
---
Boot-tested, but the affected code paths were not exercised.
</content>
</entry>
<entry>
<title>drivers/dma: Fix VIC7100 dw-axi-dmac-platform driver addition</title>
<updated>2021-08-26T21:07:33+00:00</updated>
<author>
<name>Michael Scott</name>
<email>mike@foundries.io</email>
</author>
<published>2021-05-01T01:06:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=230e3f133eacb2f02201139f6f0d34c5980e0b37'/>
<id>urn:sha1:230e3f133eacb2f02201139f6f0d34c5980e0b37</id>
<content type='text'>
Descriptor management was simplified with commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef6fb2d6f1abd56cc067c694253ea362159b5ac3

Code added to dw-axi-dmac-platform driver due to VIC7100 Cache Coherency
issues needed follow those changes.

Signed-off-by: Michael Scott &lt;mike@foundries.io&gt;
</content>
</entry>
<entry>
<title>drivers/dma: Add dw-axi-dmac-starfive driver for JH7100</title>
<updated>2021-08-26T21:07:32+00:00</updated>
<author>
<name>Tom</name>
<email>support@vamrs.com</email>
</author>
<published>2021-01-07T18:57:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=2f34e412b338dd245cde5138aec94ec031d51c96'/>
<id>urn:sha1:2f34e412b338dd245cde5138aec94ec031d51c96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available</title>
<updated>2021-08-26T12:34:57+00:00</updated>
<author>
<name>Peter Ujfalusi</name>
<email>peter.ujfalusi@gmail.com</email>
</author>
<published>2021-07-17T19:00:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=c589360bd3a901399535e539cea0d1ce910fb167'/>
<id>urn:sha1:c589360bd3a901399535e539cea0d1ce910fb167</id>
<content type='text'>
[ Upstream commit eda97cb095f2958bbad55684a6ca3e7d7af0176a ]

If the router_xlate can not find the controller in the available DMA
devices then it should return with -EPORBE_DEFER in a same way as the
of_dma_request_slave_channel() does.

The issue can be reproduced if the event router is registered before the
DMA controller itself and a driver would request for a channel before the
controller is registered.
In of_dma_request_slave_channel():
1. of_dma_find_controller() would find the dma_router
2. ofdma-&gt;of_dma_xlate() would fail and returned NULL
3. -ENODEV is returned as error code

with this patch we would return in this case the correct -EPROBE_DEFER and
the client can try to request the channel later.

Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@gmail.com&gt;
Link: https://lore.kernel.org/r/20210717190021.21897-1-peter.ujfalusi@gmail.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()</title>
<updated>2021-08-26T12:34:56+00:00</updated>
<author>
<name>Yu Kuai</name>
<email>yukuai3@huawei.com</email>
</author>
<published>2021-07-06T12:45:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=7c6e26d59bfbcbd1f52b3fc976d197f60e951a2e'/>
<id>urn:sha1:7c6e26d59bfbcbd1f52b3fc976d197f60e951a2e</id>
<content type='text'>
[ Upstream commit 1da569fa7ec8cb0591c74aa3050d4ea1397778b4 ]

pm_runtime_get_sync will increment pm usage counter even it failed.
Forgetting to putting operation will result in reference leak here.
Fix it by moving the error_pm label above the pm_runtime_put() in
the error path.

Reported-by: Hulk Robot &lt;hulkci@huawei.com&gt;
Signed-off-by: Yu Kuai &lt;yukuai3@huawei.com&gt;
Link: https://lore.kernel.org/r/20210706124521.1371901-1-yukuai3@huawei.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers</title>
<updated>2021-08-26T12:34:56+00:00</updated>
<author>
<name>Adrian Larumbe</name>
<email>adrian.martinezlarumbe@imgtec.com</email>
</author>
<published>2021-07-06T23:43:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=fcd998a0536e7767e1fa42856f61829dfef7c112'/>
<id>urn:sha1:fcd998a0536e7767e1fa42856f61829dfef7c112</id>
<content type='text'>
[ Upstream commit 7dd2dd4ff9f3abda601f22b9d01441a0869d20d7 ]

When user calls dmaengine_terminate_sync, the driver will clean up any
remaining descriptors for all the pending or active transfers that had
previously been submitted. However, this might happen whilst the tasklet is
invoking the DMA callback for the last finished transfer, so by the time it
returns and takes over the channel's spinlock, the list of completed
descriptors it was traversing is no longer valid. This leads to a
read-after-free situation.

Fix it by signalling whether a user-triggered termination has happened by
means of a boolean variable.

Signed-off-by: Adrian Larumbe &lt;adrian.martinezlarumbe@imgtec.com&gt;
Link: https://lore.kernel.org/r/20210706234338.7696-3-adrian.martinezlarumbe@imgtec.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>dmaengine: imx-dma: configure the generic DMA type to make it work</title>
<updated>2021-08-12T11:32:07+00:00</updated>
<author>
<name>Juergen Borleis</name>
<email>jbe@pengutronix.de</email>
</author>
<published>2021-07-29T07:18:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=64b81fcfd37f5214a0e81a559a793184d190d2be'/>
<id>urn:sha1:64b81fcfd37f5214a0e81a559a793184d190d2be</id>
<content type='text'>
[ Upstream commit 7199ddede9f0f2f68d41e6928e1c6c4bca9c39c0 ]

Commit dea7a9fbb009 ("dmaengine: imx-dma: remove dma_slave_config
direction usage") changes the method from a "configuration when called"
to an "configuration when used". Due to this, only the cyclic DMA type
gets configured correctly, while the generic DMA type is left
non-configured.

Without this additional call, the struct imxdma_channel::word_size member
is stuck at DMA_SLAVE_BUSWIDTH_UNDEFINED and imxdma_prep_slave_sg() always
returns NULL.

Signed-off-by: Juergen Borleis &lt;jbe@pengutronix.de&gt;
Fixes: dea7a9fbb009 ("dmaengine: imx-dma: remove dma_slave_config direction usage")
Link: https://lore.kernel.org/r/20210729071821.9857-1-jbe@pengutronix.de
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>dmaengine: stm32-dmamux: Fix PM usage counter unbalance in stm32 dmamux ops</title>
<updated>2021-08-12T11:32:06+00:00</updated>
<author>
<name>Zhang Qilong</name>
<email>zhangqilong3@huawei.com</email>
</author>
<published>2021-06-07T06:46:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/starfive-tech/linux.git/commit/?id=64df529b50d0f878801d4494f1abc23c505d1495'/>
<id>urn:sha1:64df529b50d0f878801d4494f1abc23c505d1495</id>
<content type='text'>
[ Upstream commit baa16371c9525f24d508508e4d296c031e1de29c ]

pm_runtime_get_sync will increment pm usage counter
even it failed. Forgetting to putting operation will
result in reference leak here. We fix it by replacing
it with pm_runtime_resume_and_get to keep usage counter
balanced.

Fixes: 4f3ceca254e0f ("dmaengine: stm32-dmamux: Add PM Runtime support")
Signed-off-by: Zhang Qilong &lt;zhangqilong3@huawei.com&gt;
Link: https://lore.kernel.org/r/20210607064640.121394-3-zhangqilong3@huawei.com
Signed-off-by: Vinod Koul &lt;vkoul@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
</feed>
