aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2022-03-21 01:16:48 +0000
committerDaniel Golle <daniel@makrotopia.org>2022-03-21 13:11:56 +0000
commit786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186 (patch)
tree926fecb2b1f6ce1e42ba7ef4c7aab8e68dfd214c /target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch
parent9470160c350d15f765c33d6c1db15d6c4709a64c (diff)
downloadupstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.gz
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.bz2
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.zip
kernel: delete Linux 5.4 config and patches
As the upcoming release will be based on Linux 5.10 only, remove all kernel configuration as well as patches for Linux 5.4. There were no targets still actively using Linux 5.4. Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 3a14580411adfb75f9a44eded9f41245b9e44606)
Diffstat (limited to 'target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch170
1 files changed, 0 insertions, 170 deletions
diff --git a/target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch b/target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch
deleted file mode 100644
index 8c7fc44b91..0000000000
--- a/target/linux/layerscape/patches-5.4/806-dma-0022-MLK-22284-1-dmaengine-fsl-edma-v3-add-power-domains-.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From 9050c0619cdf5399d19e3683d6fb1db355dda110 Mon Sep 17 00:00:00 2001
-From: Robin Gong <yibin.gong@nxp.com>
-Date: Wed, 17 Apr 2019 17:05:42 +0800
-Subject: [PATCH] MLK-22284-1 dmaengine: fsl-edma-v3: add power domains for
- each channel
-
-Add power domains for each dma channel so that edma channel could
-know the power state of every dma channel anytime and clear easily
-unexpected interrupt which triggered before the last partition reset.
-
-Signed-off-by: Robin Gong <yibin.gong@nxp.com>
-Reviewed-by: S.j. Wang <shengjiu.wang@nxp.com>
-(cherry picked from commit 0b6da46b7bdb2284e24757d48466268b9feb5b7c)
----
- .../devicetree/bindings/dma/fsl-edma-v3.txt | 11 +++-
- drivers/dma/fsl-edma-v3.c | 58 +++++++++++++++++++++-
- 2 files changed, 67 insertions(+), 2 deletions(-)
-
---- a/Documentation/devicetree/bindings/dma/fsl-edma-v3.txt
-+++ b/Documentation/devicetree/bindings/dma/fsl-edma-v3.txt
-@@ -30,6 +30,8 @@ Required properties:
- 0: not dual fifo case, 1: dualfifo case.
- See the SoC's reference manual for all the supported request sources.
- - dma-channels : Number of channels supported by the controller
-+- power-domains: Power domains for edma channel used.
-+- power-domain-names: Power domains name for edma channel used.
-
- Examples:
- edma0: dma-controller@40018000 {
-@@ -46,6 +48,12 @@ edma0: dma-controller@40018000 {
- <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "edma0-chan12-rx", "edma0-chan13-tx",
- "edma0-chan14-rx", "edma0-chan15-tx";
-+ power-domains = <&pd IMX_SC_R_DMA_0_CH12>,
-+ <&pd IMX_SC_R_DMA_0_CH13>,
-+ <&pd IMX_SC_R_DMA_0_CH14>,
-+ <&pd IMX_SC_R_DMA_0_CH15>;
-+ power-domain-names = "edma0-chan12", "edma0-chan13",
-+ "edma0-chan14", "edma0-chan15";
- status = "okay";
- };
-
-@@ -65,7 +73,8 @@ lpuart1: serial@5a070000 {
- clock-names = "ipg";
- assigned-clock-names = <&clk IMX8QM_UART1_CLK>;
- assigned-clock-rates = <80000000>;
-- power-domains = <&pd_dma_lpuart1>;
-+ power-domains = <&pd IMX_SC_R_UART_1>,
-+ power-domain-names = "uart";
- dma-names = "tx","rx";
- dmas = <&edma0 15 0 0>,
- <&edma0 14 0 1>;
---- a/drivers/dma/fsl-edma-v3.c
-+++ b/drivers/dma/fsl-edma-v3.c
-@@ -27,6 +27,8 @@
- #include <linux/of_address.h>
- #include <linux/of_irq.h>
- #include <linux/of_dma.h>
-+#include <linux/pm_runtime.h>
-+#include <linux/pm_domain.h>
-
- #include "virt-dma.h"
-
-@@ -164,6 +166,7 @@ struct fsl_edma3_chan {
- u32 chn_real_count;
- char txirq_name[32];
- struct platform_device *pdev;
-+ struct device *dev;
- };
-
- struct fsl_edma3_desc {
-@@ -798,8 +801,10 @@ static int fsl_edma3_alloc_chan_resource
- fsl_chan->tcd_pool = dma_pool_create("tcd_pool", chan->device->dev,
- sizeof(struct fsl_edma3_hw_tcd),
- 32, 0);
-+ pm_runtime_get_sync(fsl_chan->dev);
- /* clear meaningless pending irq anyway */
- writel(1, fsl_chan->membase + EDMA_CH_INT);
-+
- ret = devm_request_irq(&pdev->dev, fsl_chan->txirq,
- fsl_edma3_tx_handler, fsl_chan->edma3->irqflag,
- fsl_chan->txirq_name, fsl_chan);
-@@ -830,6 +835,7 @@ static void fsl_edma3_free_chan_resource
- dma_pool_destroy(fsl_chan->tcd_pool);
- fsl_chan->tcd_pool = NULL;
- fsl_chan->used = false;
-+ pm_runtime_put_sync(fsl_chan->dev);
- }
-
- static void fsl_edma3_synchronize(struct dma_chan *chan)
-@@ -839,6 +845,37 @@ static void fsl_edma3_synchronize(struct
- vchan_synchronize(&fsl_chan->vchan);
- }
-
-+static struct device *fsl_edma3_attach_pd(struct device *dev,
-+ struct device_node *np, int index)
-+{
-+ const char *domn = "edma0-chan01";
-+ struct device *pd_chan;
-+ struct device_link *link;
-+ int ret;
-+
-+ ret = of_property_read_string_index(np, "power-domain-names", index,
-+ &domn);
-+ if (ret) {
-+ dev_err(dev, "parse power-domain-names error.(%d)\n", ret);
-+ return NULL;
-+ }
-+
-+ pd_chan = dev_pm_domain_attach_by_name(dev, domn);
-+ if (!pd_chan)
-+ return NULL;
-+
-+ link = device_link_add(dev, pd_chan, DL_FLAG_STATELESS |
-+ DL_FLAG_PM_RUNTIME |
-+ DL_FLAG_RPM_ACTIVE);
-+ if (IS_ERR(link)) {
-+ dev_err(dev, "Failed to add device_link to %s: %ld\n", domn,
-+ PTR_ERR(link));
-+ return NULL;
-+ }
-+
-+ return pd_chan;
-+}
-+
- static int fsl_edma3_probe(struct platform_device *pdev)
- {
- struct device_node *np = pdev->dev.of_node;
-@@ -962,6 +999,22 @@ static int fsl_edma3_probe(struct platfo
- dev_err(&pdev->dev, "Can't register Freescale eDMA engine.\n");
- return ret;
- }
-+ /* Attach power domains from dts for each dma chanel device */
-+ for (i = 0; i < fsl_edma3->n_chans; i++) {
-+ struct fsl_edma3_chan *fsl_chan = &fsl_edma3->chans[i];
-+ struct device *dev;
-+
-+ dev = fsl_edma3_attach_pd(&pdev->dev, np, i);
-+ if (!dev) {
-+ dev_err(dev, "edma channel attach failed.\n");
-+ return -EINVAL;
-+ }
-+
-+ fsl_chan->dev = dev;
-+ /* clear meaningless pending irq anyway */
-+ writel(1, fsl_chan->membase + EDMA_CH_INT);
-+ pm_runtime_put_sync(dev);
-+ }
-
- ret = of_dma_controller_register(np, fsl_edma3_xlate, fsl_edma3);
- if (ret) {
-@@ -970,6 +1023,9 @@ static int fsl_edma3_probe(struct platfo
- return ret;
- }
-
-+ pm_runtime_dont_use_autosuspend(&pdev->dev);
-+ pm_runtime_enable(&pdev->dev);
-+
- return 0;
- }
-
-@@ -1068,7 +1124,7 @@ static int __init fsl_edma3_init(void)
- {
- return platform_driver_register(&fsl_edma3_driver);
- }
--subsys_initcall(fsl_edma3_init);
-+fs_initcall(fsl_edma3_init);
-
- static void __exit fsl_edma3_exit(void)
- {