summaryrefslogtreecommitdiff
path: root/drivers/iommu/fsl_pamu.c
diff options
context:
space:
mode:
authorVarun Sethi <Varun.Sethi@freescale.com>2014-10-07 09:55:19 (GMT)
committerMatthew Weigel <Matthew.Weigel@freescale.com>2014-12-11 18:40:15 (GMT)
commit3245cd9407d21247e7b0abf8a9b20b9659740dea (patch)
tree3a8c1ce3c5514ad5d662d2cf20712118f9ce690b /drivers/iommu/fsl_pamu.c
parent50508fc2ee3c90b9e0e64da15560b4f390fa5776 (diff)
downloadlinux-fsl-qoriq-3245cd9407d21247e7b0abf8a9b20b9659740dea.tar.xz
Add an operation mapping to stash FMAN transactions.
Support for FSL_FMAN_CPC_STASH option was partially implemented. The FMAN operation mapping didn't allow support for write transaction stashing. Write transaction stashing support is required in certain data path intensive tasks. Without this support "FMAN writes" to DDR take more time complete, with this option FMAN transactions are stashed to CPC. Stashing reduces the overall completion time for FMAN transactions. This in turn prevents buffer over run issues in FMAN. Without this support it has been observed, while handling high traffic rate FMAN starts reporting Rx errors. Signed-off-by: Varun Sethi <Varun.Sethi@freescale.com> Change-Id: Iae7b2e9108204e64d336feb39517f4c72235feb4 Reviewed-on: http://git.am.freescale.net:8181/21040 Reviewed-by: Vakul Garg <vakul@freescale.com> Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
Diffstat (limited to 'drivers/iommu/fsl_pamu.c')
-rw-r--r--drivers/iommu/fsl_pamu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/iommu/fsl_pamu.c b/drivers/iommu/fsl_pamu.c
index e304599..87f46c5 100644
--- a/drivers/iommu/fsl_pamu.c
+++ b/drivers/iommu/fsl_pamu.c
@@ -850,7 +850,11 @@ static void __init setup_omt(struct ome *omt)
/* Configure OMI_FMAN */
ome = &omt[OMI_FMAN];
ome->moe[IOE_READ_IDX] = EOE_VALID | EOE_READI;
+#ifdef CONFIG_FSL_FMAN_CPC_STASH
+ ome->moe[IOE_WRITE_IDX] = EOE_VALID | EOE_WWSAO;
+#else
ome->moe[IOE_WRITE_IDX] = EOE_VALID | EOE_WRITE;
+#endif
/* Configure OMI_QMAN private */
ome = &omt[OMI_QMAN_PRIV];