You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/layerscape/patches-5.4/701-net-0320-staging-fsl_pp...

50 lines
1.5 KiB
Diff

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);