summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C')
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C b/src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C
index f7d41003..fe148b06 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_adu_access.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -67,6 +67,15 @@ extern "C" {
// Process input flag
p9_ADU_oper_flag l_myAduFlag;
l_myAduFlag.getFlag(i_flags);
+ FAPI_DBG("l_myAduFlag = %lu", l_myAduFlag);
+
+ //If autoinc is set and this is not a DMA operation unset autoinc before passing the flags through
+ if (l_myAduFlag.getOperationType() != p9_ADU_oper_flag::DMA_PARTIAL)
+ {
+ l_myAduFlag.setAutoIncrement(false);
+ }
+
+ FAPI_DBG("l_myAduFlag = %lu", l_myAduFlag);
if( i_lastGranule && l_myAduFlag.getAutoIncrement() )
{
@@ -100,9 +109,12 @@ extern "C" {
l_busyHandling = EXPECTED_BUSY_BIT_CLEAR;
}
- FAPI_TRY(p9_adu_coherent_status_check(i_target, l_busyHandling, false,
- l_busyBitStatus),
- "Error from p9_adu_coherent_status_check");
+ if (l_myAduFlag.getOperationType() != p9_ADU_oper_flag::CACHE_INHIBIT)
+ {
+ FAPI_TRY(p9_adu_coherent_status_check(i_target, l_busyHandling, false,
+ l_busyBitStatus),
+ "Error from p9_adu_coherent_status_check");
+ }
//If it's the last read/write
if (i_lastGranule)
@@ -127,4 +139,3 @@ extern "C" {
}
} // extern "C"
-
OpenPOWER on IntegriCloud