Hi Hans, On 2/18/2024 15:54, Hans de Goede wrote: > Hi Shyam, > > On 2/16/24 07:41, Shyam Sundar S K wrote: >> Improve code readability by removing smart_pc_status enum, as the same >> can be done with a simple true/false check; Update the code checks >> accordingly. >> >> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@xxxxxxx> >> --- >> v2->v3: >> - handle missing case for amd_pmf_init_smart_pc() after removing enum >> >> v1->v2: >> - remove enum smart_pc_status and adjust the code handling >> >> drivers/platform/x86/amd/pmf/core.c | 11 ++++++++--- >> drivers/platform/x86/amd/pmf/pmf.h | 5 ----- >> drivers/platform/x86/amd/pmf/tee-if.c | 4 ++-- >> 3 files changed, 10 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c >> index feaa09f5b35a..1d6dbd246d65 100644 >> --- a/drivers/platform/x86/amd/pmf/core.c >> +++ b/drivers/platform/x86/amd/pmf/core.c >> @@ -330,9 +330,14 @@ static void amd_pmf_init_features(struct amd_pmf_dev *dev) >> dev_dbg(dev->dev, "SPS enabled and Platform Profiles registered\n"); >> } >> >> - if (!amd_pmf_init_smart_pc(dev)) { >> + amd_pmf_init_smart_pc(dev); >> + if (dev->smart_pc_enabled) { >> dev_dbg(dev->dev, "Smart PC Solution Enabled\n"); >> - } else if (is_apmf_func_supported(dev, APMF_FUNC_AUTO_MODE)) { >> + /* If Smart PC is enabled, no need to check for other features */ >> + return; > > This return here is new behavior and a minimum should have been > mentioned in the commit message. > > I plan to prepare a set of fixes to send to Linus tomorrow, > so I will take this as is. I'll amend the commit message myself. > > Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx> > > But next time, even for a one liner like adding this commit split > it out in a separate patch. Especially when it is causing significantly > different behavior of the driver as is the case here. Sorry. I thought I amended the commit message, but seems like its not. I will take care of this in the future. Thanks, Shyam > > Regards, > > Hans > > > > > > >> + } >> + >> + if (is_apmf_func_supported(dev, APMF_FUNC_AUTO_MODE)) { >> amd_pmf_init_auto_mode(dev); >> dev_dbg(dev->dev, "Auto Mode Init done\n"); >> } else if (is_apmf_func_supported(dev, APMF_FUNC_DYN_SLIDER_AC) || >> @@ -351,7 +356,7 @@ static void amd_pmf_deinit_features(struct amd_pmf_dev *dev) >> amd_pmf_deinit_sps(dev); >> } >> >> - if (!dev->smart_pc_enabled) { >> + if (dev->smart_pc_enabled) { >> amd_pmf_deinit_smart_pc(dev); >> } else if (is_apmf_func_supported(dev, APMF_FUNC_AUTO_MODE)) { >> amd_pmf_deinit_auto_mode(dev); >> diff --git a/drivers/platform/x86/amd/pmf/pmf.h b/drivers/platform/x86/amd/pmf/pmf.h >> index 16999c5b334f..66cae1cca73c 100644 >> --- a/drivers/platform/x86/amd/pmf/pmf.h >> +++ b/drivers/platform/x86/amd/pmf/pmf.h >> @@ -441,11 +441,6 @@ struct apmf_dyn_slider_output { >> struct apmf_cnqf_power_set ps[APMF_CNQF_MAX]; >> } __packed; >> >> -enum smart_pc_status { >> - PMF_SMART_PC_ENABLED, >> - PMF_SMART_PC_DISABLED, >> -}; >> - >> /* Smart PC - TA internals */ >> enum system_state { >> SYSTEM_STATE_S0i3, >> diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/amd/pmf/tee-if.c >> index f8c0177afb0d..8b7e3f87702e 100644 >> --- a/drivers/platform/x86/amd/pmf/tee-if.c >> +++ b/drivers/platform/x86/amd/pmf/tee-if.c >> @@ -260,7 +260,7 @@ static int amd_pmf_start_policy_engine(struct amd_pmf_dev *dev) >> res = amd_pmf_invoke_cmd_init(dev); >> if (res == TA_PMF_TYPE_SUCCESS) { >> /* Now its safe to announce that smart pc is enabled */ >> - dev->smart_pc_enabled = PMF_SMART_PC_ENABLED; >> + dev->smart_pc_enabled = true; >> /* >> * Start collecting the data from TA FW after a small delay >> * or else, we might end up getting stale values. >> @@ -268,7 +268,7 @@ static int amd_pmf_start_policy_engine(struct amd_pmf_dev *dev) >> schedule_delayed_work(&dev->pb_work, msecs_to_jiffies(pb_actions_ms * 3)); >> } else { >> dev_err(dev->dev, "ta invoke cmd init failed err: %x\n", res); >> - dev->smart_pc_enabled = PMF_SMART_PC_DISABLED; >> + dev->smart_pc_enabled = false; >> return res; >> } >> >