aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch b/target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch
new file mode 100644
index 0000000000..115685c480
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch
@@ -0,0 +1,49 @@
+From 7872505a2194c9766c7986e761c0ae9bdd6e5e57 Mon Sep 17 00:00:00 2001
+From: Calvin Johnson <calvin.johnson@nxp.com>
+Date: Tue, 26 Mar 2019 16:52:22 +0530
+Subject: [PATCH] staging: fsl_ppfe/eth: use memremap() to map RAM area used by
+ PFE
+
+RAM area used by PFE should be mapped using memremap() instead of
+directly traslating physical addr to virtual. This will ensure proper
+checks are done before the area is used.
+
+Signed-off-by: Calvin Johnson <calvin.johnson@nxp.com>
+---
+ drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c
++++ b/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c
+@@ -148,9 +148,10 @@ static int pfe_platform_probe(struct pla
+ pfe->ddr_phys_baseaddr = res.start;
+ pfe->ddr_size = resource_size(&res);
+
+- pfe->ddr_baseaddr = phys_to_virt(res.start);
++ pfe->ddr_baseaddr = memremap(res.start, resource_size(&res),
++ MEMREMAP_WB);
+ if (!pfe->ddr_baseaddr) {
+- pr_err("ioremap() ddr failed\n");
++ pr_err("memremap() ddr failed\n");
+ rc = -ENOMEM;
+ goto err_ddr;
+ }
+@@ -240,7 +241,7 @@ err_hif_irq:
+ iounmap(pfe->cbus_baseaddr);
+
+ err_axi:
+- iounmap(pfe->ddr_baseaddr);
++ memunmap(pfe->ddr_baseaddr);
+
+ err_ddr:
+ platform_set_drvdata(pdev, NULL);
+@@ -264,7 +265,8 @@ static int pfe_platform_remove(struct pl
+ rc = pfe_remove(pfe);
+
+ iounmap(pfe->cbus_baseaddr);
+- iounmap(pfe->ddr_baseaddr);
++
++ memunmap(pfe->ddr_baseaddr);
+
+ platform_set_drvdata(pdev, NULL);
+