Create fan monitor init mode
Allowing fan monitor to run in an init mode will set the fans to a
functional state at each poweron for fans that were non-functional at
poweroff. Then fan monitor can be started in monitor mode after the fans
have ramped up to full speed and can begin being monitored for faults.
This also allows for the removal of fan monitor doing a sd_notify prior
to fan control starting.
Change-Id: I634c9b4ec8bb30860dea54c8abd1cd6c56831d25
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/monitor/fan.hpp b/monitor/fan.hpp
index 0004353..3da75cf 100644
--- a/monitor/fan.hpp
+++ b/monitor/fan.hpp
@@ -15,6 +15,17 @@
{
/**
+ * The mode fan monitor will run in:
+ * - init - only do the initialization steps
+ * - monitor - run normal monitoring algorithm
+ */
+enum class Mode
+{
+ init,
+ monitor
+};
+
+/**
* @class InvalidSensorError
*
* An exception type for sensors that don't exist or
@@ -75,11 +86,13 @@
/**
* @brief Constructor
*
+ * @param mode - mode of fan monitor
* @param bus - the dbus object
* @param events - pointer to sd_event object
* @param def - the fan definition structure
*/
- Fan(sdbusplus::bus::bus& bus,
+ Fan(Mode mode,
+ sdbusplus::bus::bus& bus,
phosphor::fan::event::EventPtr& events,
const FanDefinition& def);