diff options
author | Ed Tanous <ed.tanous@intel.com> | 2019-07-31 20:43:37 +0300 |
---|---|---|
committer | Ed Tanous <ed.tanous@intel.com> | 2019-08-01 18:19:38 +0300 |
commit | d0f63ef62c76c932a2003eaa42c0b250065ae06f (patch) | |
tree | 4c0e3cb32dc80f80460bdbf82ff6d401d4ff194f /meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch | |
parent | b4f66bacb1b8e661d794fa7a189e2f66f5092e2e (diff) | |
download | openbmc-d0f63ef62c76c932a2003eaa42c0b250065ae06f.tar.xz |
Update to internal 7-31-19
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch deleted file mode 100644 index 877c5336a..000000000 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 514b76d1c05d7ed7fb7e1df27833e423e04c9a1c Mon Sep 17 00:00:00 2001 -From: "Jason M. Bills" <jason.m.bills@linux.intel.com> -Date: Tue, 21 May 2019 09:57:16 -0700 -Subject: [PATCH] Use xyz.openbmc_project.State.Chassis for IPMI chassis status - -Instead of directly using pgood on dbus, this change uses the -xyz.openbmc_project.State.Chassis "CurrentPowerState" property -for the IPMI chassis status command. This will allow us to -remove pgood from dbus. - -Tested: -Ran IPMI chassis commands and confirmed that they behave as -expected: -ipmitool power status -Chassis Power is on - -ipmitool power off -Chassis Power Control: Down/Off - -ipmitool power status -Chassis Power is off - -ipmitool power on -Chassis Power Control: Up/On - -ipmitool power status -Chassis Power is on - -Change-Id: I7836c16b76c3b309f176186f3e2453082e4cd1af -Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com> ---- - chassishandler.cpp | 61 ++++++++++++++++++++++++++++++++++++------------------ - 1 file changed, 41 insertions(+), 20 deletions(-) - -diff --git a/chassishandler.cpp b/chassishandler.cpp -index 1738ccc..e4e842d 100644 ---- a/chassishandler.cpp -+++ b/chassishandler.cpp -@@ -824,44 +824,65 @@ std::optional<uint2_t> getPowerRestorePolicy() - */ - std::optional<bool> getPowerStatus() - { -- constexpr const char* powerControlObj = -- "/xyz/openbmc_project/Chassis/Control/Power0"; -- constexpr const char* powerControlIntf = -- "xyz.openbmc_project.Chassis.Control.Power"; - bool powerGood = false; - std::shared_ptr<sdbusplus::asio::connection> busp = getSdBus(); - try - { -+ constexpr const char* chassisStatePath = -+ "/xyz/openbmc_project/state/chassis0"; -+ constexpr const char* chassisStateIntf = -+ "xyz.openbmc_project.State.Chassis"; - auto service = -- ipmi::getService(*busp, powerControlIntf, powerControlObj); -+ ipmi::getService(*busp, chassisStateIntf, chassisStatePath); - -- ipmi::Value variant = ipmi::getDbusProperty( -- *busp, service, powerControlObj, powerControlIntf, "pgood"); -- powerGood = static_cast<bool>(std::get<int>(variant)); -+ ipmi::Value variant = -+ ipmi::getDbusProperty(*busp, service, chassisStatePath, -+ chassisStateIntf, "CurrentPowerState"); -+ std::string powerState = std::get<std::string>(variant); -+ if (powerState == "xyz.openbmc_project.State.Chassis.PowerState.On") -+ { -+ powerGood = true; -+ } - } - catch (const std::exception& e) - { - try - { -- // FIXME: some legacy modules use the older path; try that next -- constexpr const char* legacyPwrCtrlObj = -- "/org/openbmc/control/power0"; -- constexpr const char* legacyPwrCtrlIntf = -- "org.openbmc.control.Power"; -+ // FIXME: some modules use pgood; try that next -+ constexpr const char* powerControlObj = -+ "/xyz/openbmc_project/Chassis/Control/Power0"; -+ constexpr const char* powerControlIntf = -+ "xyz.openbmc_project.Chassis.Control.Power"; - auto service = -- ipmi::getService(*busp, legacyPwrCtrlIntf, legacyPwrCtrlObj); -+ ipmi::getService(*busp, powerControlIntf, powerControlObj); - - ipmi::Value variant = ipmi::getDbusProperty( -- *busp, service, legacyPwrCtrlObj, legacyPwrCtrlIntf, "pgood"); -+ *busp, service, powerControlObj, powerControlIntf, "pgood"); - powerGood = static_cast<bool>(std::get<int>(variant)); - } - catch (const std::exception& e) - { -- log<level::ERR>("Failed to fetch pgood property", -- entry("ERROR=%s", e.what()), -- entry("PATH=%s", powerControlObj), -- entry("INTERFACE=%s", powerControlIntf)); -- return std::nullopt; -+ try -+ { -+ // FIXME: some legacy modules use the older path; try that next -+ constexpr const char* legacyPwrCtrlObj = -+ "/org/openbmc/control/power0"; -+ constexpr const char* legacyPwrCtrlIntf = -+ "org.openbmc.control.Power"; -+ auto service = ipmi::getService(*busp, legacyPwrCtrlIntf, -+ legacyPwrCtrlObj); -+ -+ ipmi::Value variant = -+ ipmi::getDbusProperty(*busp, service, legacyPwrCtrlObj, -+ legacyPwrCtrlIntf, "pgood"); -+ powerGood = static_cast<bool>(std::get<int>(variant)); -+ } -+ catch (const std::exception& e) -+ { -+ log<level::ERR>("Failed to fetch pgood property", -+ entry("ERROR=%s", e.what())); -+ return std::nullopt; -+ } - } - } - return std::make_optional(powerGood); --- -2.7.4 - |