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.
50 lines
1.5 KiB
Diff
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);
|
|
|