diff options
author | Varun Sethi <Varun.Sethi@freescale.com> | 2014-10-07 09:55:19 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:40:15 (GMT) |
commit | 3245cd9407d21247e7b0abf8a9b20b9659740dea (patch) | |
tree | 3a8c1ce3c5514ad5d662d2cf20712118f9ce690b /drivers/iommu/fsl_pamu.c | |
parent | 50508fc2ee3c90b9e0e64da15560b4f390fa5776 (diff) | |
download | linux-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.c | 4 |
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]; |