diff options
author | Matthew Barth <msbarth@us.ibm.com> | 2017-12-14 11:14:30 -0600 |
---|---|---|
committer | Matthew Barth <msbarth@us.ibm.com> | 2017-12-14 11:14:30 -0600 |
commit | e4338cdb856db2b71f8adf42c50603d816980f8a (patch) | |
tree | 4eb0f1e20c93c0b06830cd4932f2002353f67aba /control/zone.hpp | |
parent | e65f617c6a79eb92c122310f35ddb8a496e729fd (diff) | |
download | phosphor-fan-presence-e4338cdb856db2b71f8adf42c50603d816980f8a.tar.gz phosphor-fan-presence-e4338cdb856db2b71f8adf42c50603d816980f8a.zip |
Decreases allowed based on all groups
For speed decreases to occur, all sensor groups involved with setting a
net decrease delta must be below their given t-control low values for
the associated zone. This handles the case where one or more sensor
groups' temperatures stabilize above their t-control low value, but one
or more other sensor groups' temperatures are below their t-control low
value which would result in speed decrease requests that could
eventually lead to fan speed oscillations.
Resolves openbmc/openbmc#2710
Change-Id: I382de5d3f9c3e631a332d49dfcb06e705ff6fc17
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Diffstat (limited to 'control/zone.hpp')
-rw-r--r-- | control/zone.hpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/control/zone.hpp b/control/zone.hpp index bc08f48..406af13 100644 --- a/control/zone.hpp +++ b/control/zone.hpp @@ -89,6 +89,17 @@ class Zone } /** + * @brief Sets the decrease allowed state of a group + * + * @param[in] group - A group that affects speed decreases + * @param[in] isAllow - Allow state according to group + */ + inline void setDecreaseAllow(const Group* group, bool isAllow) + { + _decAllowed[*(group)] = isAllow; + } + + /** * @brief Sets a given object's property value * * @param[in] object - Name of the object containing the property @@ -487,6 +498,11 @@ class Zone std::map<const Group, bool> _floorChange; /** + * @brief Map of groups controlling decreases allowed + */ + std::map<const Group, bool> _decAllowed; + + /** * @brief Map of group service names */ std::map<const Group, std::vector<Service>> _services; |