Attention is currently required from: Tim Wawrzynczak. Sumeet R Pawnikar has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/54098 )
Change subject: ec/google/chromeec: OEM variables support for DPTF ......................................................................
ec/google/chromeec: OEM variables support for DPTF
This adds OEM variables support for DPTF to notify the change.
BRANCH=None BUG=b:187253038 TEST=Built and tested on dedede board
Change-Id: I79fbf00521d54e66b6cd7d95b026a76fd3a4394b Signed-off-by: Sumeet R Pawnikar sumeet.r.pawnikar@intel.com --- M src/ec/google/chromeec/ec_dptf_helpers.c 1 file changed, 26 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/98/54098/1
diff --git a/src/ec/google/chromeec/ec_dptf_helpers.c b/src/ec/google/chromeec/ec_dptf_helpers.c index 631f16e..805a12c 100644 --- a/src/ec/google/chromeec/ec_dptf_helpers.c +++ b/src/ec/google/chromeec/ec_dptf_helpers.c @@ -15,6 +15,7 @@ enum { TRIP_POINTS_CHANGED_EVENT = 0x81, THERMAL_EVENT = 0x90, + ODVP_CHANGED_EVENT = 0x88, };
/* EC constants */ @@ -124,6 +125,17 @@ acpigen_pop_len(); /* Method _FSL */ }
+static void write_ietm_odvp(const struct device *ec) +{ + acpigen_write_name("ODVP"); + acpigen_write_package(6); + acpigen_write_integer(0); + + /* Notify DPTF about ODVP change */ + acpigen_notify("ODVP", ODVP_CHANGED_EVENT); + acpigen_pop_len(); +} + /* * Emit code to execute if the policy is enabled after this function is called, and also * remember to manually add a acpigen_pop_len() afterwards! @@ -283,6 +295,12 @@ }
acpigen_pop_len(); /* Method */ + + /* ODVE */ + acpigen_write_method_serialized("ODVE", 0); + acpigen_notify("ODVP", ODVP_CHANGED_EVENT); + acpigen_pop_len(); /* Method */ + acpigen_pop_len(); /* Scope */ }
@@ -302,6 +320,13 @@ acpigen_pop_len(); /* Scope */ }
+static void write_ietm_methods(const struct device *ec) +{ + dptf_write_scope(DPTF_IETM); + write_ietm_odvp(ec); + acpigen_pop_len(); /* Scope */ +} + static void write_thermal_methods(const struct device *ec, enum dptf_participant participant, int tsr_index) { @@ -354,6 +379,7 @@ write_dppm_methods(ec); write_charger_methods(ec); write_fan_methods(ec); + write_ietm_methods(ec);
for (p = DPTF_TEMP_SENSOR_0, i = 0; p <= DPTF_TEMP_SENSOR_3; ++p, ++i) write_thermal_methods(ec, p, i);