diff options
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.patch | 49 |
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); + |