Send a Change Cache parameters during IOA initialization to enable
Sync Cache by default on adapters that support it.

Signed-off-by: Gabriel Krisman Bertazi <kris...@linux.vnet.ibm.com>
---
 iprlib.c | 10 ++++++++++
 iprlib.h |  3 +++
 2 files changed, 13 insertions(+)

diff --git a/iprlib.c b/iprlib.c
index 609ffe3..7875442 100644
--- a/iprlib.c
+++ b/iprlib.c
@@ -7588,6 +7588,14 @@ int ipr_set_ioa_attr(struct ipr_ioa *ioa, struct 
ipr_ioa_attr *attr, int save)
                }
        }
 
+       if (ioa->has_vset_write_cache && attr->vset_write_cache &&
+           power_cur_mode != POWER_BAREMETAL) {
+               /* vset cache should not be disabled adapter-wide
+                  for any reason.  So we don't save the parameter here. */
+               ipr_change_cache_parameters(ioa,
+                                           IPR_IOA_SET_VSET_CACHE_ENABLED);
+       }
+
        get_dual_ioa_state(ioa);        /* for preferred_primary */
        get_subsys_config(ioa);         /* for gscsi_only_ha */
        return 0;
@@ -9434,6 +9442,8 @@ static void init_ioa_dev(struct ipr_dev *dev)
                attr.active_active = 1;
        if (dev->ioa->configure_rebuild_verify)
                attr.disable_rebuild_verify = 1;
+       if (dev->ioa->has_vset_write_cache)
+               attr.vset_write_cache = 1;
        ipr_modify_ioa_attr(dev->ioa, &attr);
        if (ipr_set_ioa_attr(dev->ioa, &attr, 0))
                return;
diff --git a/iprlib.h b/iprlib.h
index 33ab390..0856d6c 100644
--- a/iprlib.h
+++ b/iprlib.h
@@ -222,6 +222,8 @@ typedef uint64_t u64;
 #define IPR_IOA_SET_CACHING_DISABLED         0x10
 #define IPR_IOA_SET_CACHING_DUAL_DISABLED    0x20
 #define IPR_IOA_SET_CACHING_DUAL_ENABLED     0x30
+#define IPR_IOA_SET_VSET_CACHE_ENABLED      0x40
+#define IPR_IOA_SET_VSET_CACHE_DISABLED      0x50
 
 #define PHYSICAL_LOCATION_LENGTH       1024
 
@@ -1407,6 +1409,7 @@ struct ipr_ioa_attr {
        int caching;
        int rebuild_rate;
        int disable_rebuild_verify;
+       int vset_write_cache;
 };
 
 #define IPR_DEV_MAX_PATHS      2
-- 
2.1.0


------------------------------------------------------------------------------
_______________________________________________
Iprdd-devel mailing list
Iprdd-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iprdd-devel

Reply via email to