| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Add a bitwise logical or redundancy policy implementation
(fan is present if any sensor indicates as such).
Change-Id: I1d161478a4a6fe9d5690a385703e41c6fff9c81c
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
| |
Include a reference to the sensor changing state when sensor
implementations ping the policy object.
This allows policy logic based on multiple sensors, simultaneously.
Change-Id: I44cf00c7ecd220d0cc99e51ca6093bac6da7343c
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add a basic comparison operator for presence sensors.
Change-Id: Ib147fd24f6e9ea1daf5f2b0b71943e0b4c96a8b7
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ie0635bc28fcd1a2fd96764674e15c71f1dcbe51a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ic3390ba18d6f029fc16aee7492d51ac5f49bf2c0
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I1d0a8e7d4c442beb271c83d5ef6be3ca69c7c115
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
| |
Switch the main application logic to the output produced by
the new parser previously.
Remove unused code.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: If8b262bd80fd0f0135aeea55e578fb3c7f44339a
|
|
|
|
|
|
|
| |
Invoke the new parser during build.
Change-Id: I3a3c8c227a79e6f80a051c5e1d3a9a2b7f4e9656
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Adopt an easy on the tongue acronym similar to other projects.
Add a robust parser with support for sensors and policies.
Sensors: gpio, tach
Policies: fallback
Add an example yaml file.
Change-Id: I9158a0ce2a08ef6b7bb3f5d659ea0e0433af5b96
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a fallback redundancy implementation of the RedundancyPolicy
interface.
The fallback policy associates multiple PresenceSensor instances
to a single fan, and "falls-back" on secondary sensor implementations
when the primary sensor cannot see the fan.
Change-Id: I6468d77d97b8916b3ff33bcd0cd28a102d1aaba1
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a gpio presence implementation of the PresenceSensor
interface.
The gpio sensor simply maps the on off state of a gpio
directly to the xyz.openbmc_project.Inventory.Item
Present property.
Change-Id: I071dd475bebb15372edb59506352746c20542eff
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new fan speed (tach) presence implementation for the new
PresenceSensor interface.
This fan tach sensor behaves mostly like the existing one, with
the addition of support for multiple tach sensors for the
single PresenceSensor instance, and implementation of the
PresenceSensor start and stop interfaces.
Change-Id: I535a3e2c78ef0f06f10b6f4cda9a7e2d0e9c11db
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a redundancy policy interface class. Redundancy policies
introduce the concept of multiple presence sensors for a given
fan. A redundancy model implementation determines how the
distinct sensors making up the redundancy set are controlled
and how their feedbacks determine the overall fan presence state
reflected in the inventory.
Change-Id: Ibb5f71b3189dbb253bb669691e8016cda83a6ebb
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prepare to extend the fan presence model to include
sensors of other types with a presence sensor interface
class.
Presence sensors can be both event driven or polled. Provide
start and stop for the former and present for the latter.
Change-Id: Ia1b91a5e30e27fbe66c6f075e5e5ce620dac997e
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Add utility wrappers for reading/writing
xyz.openbmc_project.Inventory.Item.Present.
Change-Id: I9d6bb776e56b67b9cac1f991790886ec8105d4b1
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add a sample/test ev event monitor program for evdevpp.
Change-Id: I46dcc47b67b377a1abd79ceef3bc28dbf269d6f2
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ib9d2e5cee2b9c1e28eb08c3c85f36f448160c16f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Iff27168588ee0767902801e6df3c6745a643ac9a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Avoid sdevent::event::Event reference proliferation.
Change-Id: I5c3de11e902cd9e61fdaca8f06c73d329bf4d293
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I5f3054720e9c48248351c398b58f98f499799a0a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I23843493e8f2c43ed50cdf1ad5def66a2f29dec3
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add a wrapper for sd_event_exit.
Change-Id: Ie08a74cb388e8441683fbf90902cbcb463aa9e6f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ifadee2bb8788be87e759d1f0be875f7047a2f37e
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During the coding and testing of this application there was some
miscommunication on the jumper position for a Witherspoon system. The
system was jumpered for Air when intended to be jumpered for the Water
cooled position. Further examination of the documentation and the jumper
settings on systems found that the logic was reversed. This change
should correct the problem and report the correct cooling properties.
Resolves openbmc/openbmc#2041
Change-Id: I7e25bd72342fde40df1fec8f6a1a444eac401f09
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
|
|
|
|
|
|
|
|
|
| |
When a fan gets set to nonfunctional, it is useful
to know how fast the rotor was actually going and
what the expected speed was.
Change-Id: I760d6fa7d193038f9740d241bf4d4d0039020f64
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
| |
If the control/fan_zone_defs.cpp is removed, an attempt to rebuild from
the phosphor-fan-presence top directory will fail due to that file being
missing.
These changes fix that so that 'make' will redo the configure step.
Change-Id: Ia774677ec2e3e62c9ba6939f2bfac63d64613886
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
|
|
|
|
|
| |
Change-Id: I651338de2d07b9fae105e3225ffd08f2088a4518
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
|
|
|
|
|
|
|
|
| |
Add an alias to cut down on typing when using properties
changed signal callbacks.
Change-Id: I494d58006cbc136fc2f1d9395039a4535922f35e
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Avoid asking the mapper for the Target interface on sensors
that do not have it.
Change-Id: I43f61c98291cc15d7daf43d2b01c6b7fa4edfa62
|
|
|
|
|
|
|
|
| |
At startup load the initial state from the DBus object
if one exists already.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: Ia4ad2f3c2b5c521406d9a186113b11cf8ed69b14
|
|
|
|
|
|
|
|
| |
Allow class users to set the initial state of
enclosures and tach sensors.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: If5199361ab051ca46096f66ba925aeb1a874801f
|
|
|
|
|
|
|
|
| |
Allow class users to control when an enclosure should
export its state on DBus.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: I64bc2d85b7a072e9ec539330640f766961724b17
|
|
|
|
|
|
|
| |
Use the sdbusplus wrapper methods introduced previously.
Change-Id: Ifd431753e9513436a9b5ab98cc49d907a5929c20
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Facilitate mocking.
Avoid sdbusplus::bus::bus reference proliferation.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: I0a55fa178a96af4fd63f249cde0a129b7007731f
|
|
|
|
|
| |
Change-Id: I30fdecd3af3dcdc7f954bdb9d535c6bc92edd67a
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support setting the increase delay time(in seconds) for each zone from
the zone yaml file. Speed increases use a delay type timer where the
amount of time given delays additional increase requests from happening
until the fans within the zone reach the highest net increase in speeds.
Support setting the decrease interval time(in seconds) for each zone
from the zone yaml file. Since decreasing is done on an interval, a
decrease interval time of zero disables the decrease interval timer
causing no decreases in speed to occur. Speed decreases use an interval
type timer to decrease the fan speeds within the zone when no speed
increase requests exist on the given time interval.
Change-Id: I88334a313b6e2820b768fa7e3f1cb65887f29258
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
| |
When the floor speed updates, a request to increase the target speed
should be made when the target is now below the floor speed.
Change-Id: Ib622bc717a952ef0c0703cbff40a4dc14b213416
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A oneshot timer is started on each target speed increase where the
amount of time configured is how long the fans within the zone are
allowed to reach the new target speed before additional speed increase
requests will be processed. Any speed increase request deltas that are
above the current speed increase delta being processed as the new target
speed will cause the timer to stop and the difference between the deltas
are added onto the target speed.
Change-Id: I064941c4e12c3e44be90880d6f32c6fbcf7ae32d
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
| |
Change-Id: I8a281935368cd705658d489c7c7af59b8dde7e4d
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
| |
Create a repeating timer for decreasing fan speeds where the fan speeds
in the zone are decreased when the timer expires and a decrease speed
request exists with no increase request present or active.
Change-Id: I419592f6f50c0ed524f8bf3ebf183854ab5ef2ea
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A net decrease speed action determines the net decrease delta from each
group member's property value and requests a speed decrease of that
delta from the current target speed.
From all the requests for a speed decrease on a zone, only the lowest
net decrease is used from all the groups subscribed to decrease a zone's
speed. The new target speed is only decreased when no increase requests
exist and the resulting target is above the zone's floor speed,
otherwise the floor speed is set as the new target.
Resolves openbmc/openbmc#1626
Change-Id: Iaefa7b25c3f44691dd3ca4084bfddd3c1a504de9
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Speed increases are made providing a target speed delta. The increase is
made when the delta is higher than the current increase that may be
occurring. When no increase is currently happening, the increase delta
requested is accepted. All resulting target increases will not go above
a defined ceiling speed.
Change-Id: Ia19c71a023cf5b897d5ba92974ff98451f34d5a3
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
| |
The net increase speed action provides the ability to determine what the
net delta the zone's fan speeds should be updated by from their current
target speed.
Change-Id: Ib463e5ed4836bebf906cea27ea5788d826ec9c38
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set the default ceiling to be what's given as full speed and adjust the
ceiling speed based on an average of a given set of sensor values.
The ceiling is chosen from a given map's key transition values. The map
consists of key, value pairs where each key is the sensor value
transition point and the value is the ceiling speed for when that
transition occurs. The previous key value is needed to determine the
direction in which to chose the appropriate ceiling speed allowing a
buffer zone between ceiling changes if defined to.
Resolves openbmc/openbmc#1628
Change-Id: I7c9c553b5d0c3219c51b563aec7dd5d5f090916b
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
| |
Implemented elog exception for phosphor fan presence,
replacing runtime_errors.
Change-Id: I70465060838b2cbaeadccf84ed5924e222ac59e3
Signed-off-by: Dinesh Chinari <chinari@us.ibm.com>
|
|
|
|
|
|
|
| |
Resolves openbmc/openbmc#940
Change-Id: I238cd4a6ef69c1d54a775ad90ee87e6e327b82bd
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
| |
Given a group of sensor values, the average of those sensor values will
be used in selecting the floor speed for the zone. Each time the speed
is set/updated, any speed requested lower than the current floor will be
overwritten with the floor speed to not allow speeds below the floor.
Change-Id: I4c8e8a2cd66892b9fdc2bc5643e907adddff51f8
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
| |
Change-Id: I1eb063a584e935d48bd5d314dea777a53417c83b
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
|
|
|
|
|
| |
Change-Id: Id2d3b362e79e7a8c2330181f68ae11e43f84e2fd
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
| |
Allow properties stored for processing events to be of types other than
bool
Change-Id: Ie1dde5aca562c9958bdff6fa3d1b19d3154b2c6d
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|