* [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum
@ 2024-02-13 7:36 Shyam Sundar S K
2024-02-13 7:36 ` [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume Shyam Sundar S K
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Shyam Sundar S K @ 2024-02-13 7:36 UTC (permalink / raw)
To: hdegoede, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy, mario.limonciello,
Shyam Sundar S K
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@amd.com>
---
v1->v2:
- remove enum smart_pc_status and adjust the code handling
drivers/platform/x86/amd/pmf/core.c | 2 +-
drivers/platform/x86/amd/pmf/pmf.h | 5 -----
drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
3 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
index feaa09f5b35a..ff0d61a56484 100644
--- a/drivers/platform/x86/amd/pmf/core.c
+++ b/drivers/platform/x86/amd/pmf/core.c
@@ -351,7 +351,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;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume
2024-02-13 7:36 [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Shyam Sundar S K
@ 2024-02-13 7:36 ` Shyam Sundar S K
2024-02-13 14:59 ` Mario Limonciello
2024-02-13 14:59 ` [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Mario Limonciello
2024-02-14 9:28 ` Shyam Sundar S K
2 siblings, 1 reply; 7+ messages in thread
From: Shyam Sundar S K @ 2024-02-13 7:36 UTC (permalink / raw)
To: hdegoede, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy, mario.limonciello,
Shyam Sundar S K
TEE enact command failures are seen after each suspend/resume cycle;
fix this by cancelling the policy builder workqueue before going into
suspend and reschedule the workqueue after resume.
[ 629.516792] ccp 0000:c2:00.2: tee: command 0x5 timed out, disabling PSP
[ 629.516835] amd-pmf AMDI0102:00: TEE enact cmd failed. err: ffff000e, ret:0
[ 630.550464] amd-pmf AMDI0102:00: AMD_PMF_REGISTER_RESPONSE:1
[ 630.550511] amd-pmf AMDI0102:00: AMD_PMF_REGISTER_ARGUMENT:7
[ 630.550548] amd-pmf AMDI0102:00: AMD_PMF_REGISTER_MESSAGE:16
Fixes: ae82cef7d9c5 ("platform/x86/amd/pmf: Add support for PMF-TA interaction")
Signed-off-by: Patil Rajesh Reddy <Patil.Reddy@amd.com>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
---
v1->v2:
- remove enum smart_pc_status and adjust the code handling
drivers/platform/x86/amd/pmf/core.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
index ff0d61a56484..0645164c25a0 100644
--- a/drivers/platform/x86/amd/pmf/core.c
+++ b/drivers/platform/x86/amd/pmf/core.c
@@ -296,6 +296,9 @@ static int amd_pmf_suspend_handler(struct device *dev)
{
struct amd_pmf_dev *pdev = dev_get_drvdata(dev);
+ if (pdev->smart_pc_enabled)
+ cancel_delayed_work_sync(&pdev->pb_work);
+
kfree(pdev->buf);
return 0;
@@ -312,6 +315,9 @@ static int amd_pmf_resume_handler(struct device *dev)
return ret;
}
+ if (pdev->smart_pc_enabled)
+ schedule_delayed_work(&pdev->pb_work, msecs_to_jiffies(2000));
+
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume
2024-02-13 7:36 ` [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume Shyam Sundar S K
@ 2024-02-13 14:59 ` Mario Limonciello
0 siblings, 0 replies; 7+ messages in thread
From: Mario Limonciello @ 2024-02-13 14:59 UTC (permalink / raw)
To: Shyam Sundar S K, hdegoede, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy
On 2/13/2024 01:36, Shyam Sundar S K wrote:
> TEE enact command failures are seen after each suspend/resume cycle;
> fix this by cancelling the policy builder workqueue before going into
> suspend and reschedule the workqueue after resume.
>
> [ 629.516792] ccp 0000:c2:00.2: tee: command 0x5 timed out, disabling PSP
> [ 629.516835] amd-pmf AMDI0102:00: TEE enact cmd failed. err: ffff000e, ret:0
> [ 630.550464] amd-pmf AMDI0102:00: AMD_PMF_REGISTER_RESPONSE:1
> [ 630.550511] amd-pmf AMDI0102:00: AMD_PMF_REGISTER_ARGUMENT:7
> [ 630.550548] amd-pmf AMDI0102:00: AMD_PMF_REGISTER_MESSAGE:16
>
> Fixes: ae82cef7d9c5 ("platform/x86/amd/pmf: Add support for PMF-TA interaction")
> Signed-off-by: Patil Rajesh Reddy <Patil.Reddy@amd.com>
I think you're missing a Co-Develped-by tag here.
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
>
> v1->v2:
> - remove enum smart_pc_status and adjust the code handling
>
> drivers/platform/x86/amd/pmf/core.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
> index ff0d61a56484..0645164c25a0 100644
> --- a/drivers/platform/x86/amd/pmf/core.c
> +++ b/drivers/platform/x86/amd/pmf/core.c
> @@ -296,6 +296,9 @@ static int amd_pmf_suspend_handler(struct device *dev)
> {
> struct amd_pmf_dev *pdev = dev_get_drvdata(dev);
>
> + if (pdev->smart_pc_enabled)
> + cancel_delayed_work_sync(&pdev->pb_work);
> +
> kfree(pdev->buf);
>
> return 0;
> @@ -312,6 +315,9 @@ static int amd_pmf_resume_handler(struct device *dev)
> return ret;
> }
>
> + if (pdev->smart_pc_enabled)
> + schedule_delayed_work(&pdev->pb_work, msecs_to_jiffies(2000));
> +
> return 0;
> }
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum
2024-02-13 7:36 [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Shyam Sundar S K
2024-02-13 7:36 ` [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume Shyam Sundar S K
@ 2024-02-13 14:59 ` Mario Limonciello
2024-02-14 9:28 ` Shyam Sundar S K
2 siblings, 0 replies; 7+ messages in thread
From: Mario Limonciello @ 2024-02-13 14:59 UTC (permalink / raw)
To: Shyam Sundar S K, hdegoede, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy
On 2/13/2024 01:36, 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@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v1->v2:
> - remove enum smart_pc_status and adjust the code handling
>
> drivers/platform/x86/amd/pmf/core.c | 2 +-
> drivers/platform/x86/amd/pmf/pmf.h | 5 -----
> drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
> 3 files changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
> index feaa09f5b35a..ff0d61a56484 100644
> --- a/drivers/platform/x86/amd/pmf/core.c
> +++ b/drivers/platform/x86/amd/pmf/core.c
> @@ -351,7 +351,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;
> }
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum
2024-02-13 7:36 [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Shyam Sundar S K
2024-02-13 7:36 ` [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume Shyam Sundar S K
2024-02-13 14:59 ` [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Mario Limonciello
@ 2024-02-14 9:28 ` Shyam Sundar S K
2024-02-14 10:30 ` Hans de Goede
2 siblings, 1 reply; 7+ messages in thread
From: Shyam Sundar S K @ 2024-02-14 9:28 UTC (permalink / raw)
To: hdegoede, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy, mario.limonciello
Hi Hans,
On 2/13/2024 13:06, 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@amd.com>
> ---
> v1->v2:
> - remove enum smart_pc_status and adjust the code handling
Please drop this patch for your review list. I tested this on a wrong
environment and seems like some more code handling is required before
we remove the enum.
I will send out a new version soon.
Thanks,
Shyam
>
> drivers/platform/x86/amd/pmf/core.c | 2 +-
> drivers/platform/x86/amd/pmf/pmf.h | 5 -----
> drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
> 3 files changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
> index feaa09f5b35a..ff0d61a56484 100644
> --- a/drivers/platform/x86/amd/pmf/core.c
> +++ b/drivers/platform/x86/amd/pmf/core.c
> @@ -351,7 +351,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;
> }
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum
2024-02-14 9:28 ` Shyam Sundar S K
@ 2024-02-14 10:30 ` Hans de Goede
2024-02-14 12:48 ` Shyam Sundar S K
0 siblings, 1 reply; 7+ messages in thread
From: Hans de Goede @ 2024-02-14 10:30 UTC (permalink / raw)
To: Shyam Sundar S K, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy, mario.limonciello
Hi,
On 2/14/24 10:28, Shyam Sundar S K wrote:
> Hi Hans,
>
> On 2/13/2024 13:06, 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@amd.com>
>> ---
>> v1->v2:
>> - remove enum smart_pc_status and adjust the code handling
>
> Please drop this patch for your review list. I tested this on a wrong
> environment and seems like some more code handling is required before
> we remove the enum.
Ah yes, I see I missed that this also chnages the return value of
amd_pmf_init_smart_pc(). I assume that is what you are referring to ?
Regards,
Hans
>> drivers/platform/x86/amd/pmf/pmf.h | 5 -----
>> drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
>> 3 files changed, 3 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
>> index feaa09f5b35a..ff0d61a56484 100644
>> --- a/drivers/platform/x86/amd/pmf/core.c
>> +++ b/drivers/platform/x86/amd/pmf/core.c
>> @@ -351,7 +351,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;
>> }
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum
2024-02-14 10:30 ` Hans de Goede
@ 2024-02-14 12:48 ` Shyam Sundar S K
0 siblings, 0 replies; 7+ messages in thread
From: Shyam Sundar S K @ 2024-02-14 12:48 UTC (permalink / raw)
To: Hans de Goede, ilpo.jarvinen
Cc: platform-driver-x86, Patil.Reddy, mario.limonciello
Hi Hans,
On 2/14/2024 16:00, Hans de Goede wrote:
> Hi,
>
> On 2/14/24 10:28, Shyam Sundar S K wrote:
>> Hi Hans,
>>
>> On 2/13/2024 13:06, 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@amd.com>
>>> ---
>>> v1->v2:
>>> - remove enum smart_pc_status and adjust the code handling
>>
>> Please drop this patch for your review list. I tested this on a wrong
>> environment and seems like some more code handling is required before
>> we remove the enum.
>
> Ah yes, I see I missed that this also chnages the return value of
> amd_pmf_init_smart_pc(). I assume that is what you are referring to ?
That's right. Need to handle this case.
Also, when Smart PC is advertised and enabled the other two features
have to be dropped.
Thanks,
Shyam
>
> Regards,
>
> Hans
>
>
>>> drivers/platform/x86/amd/pmf/pmf.h | 5 -----
>>> drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
>>> 3 files changed, 3 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
>>> index feaa09f5b35a..ff0d61a56484 100644
>>> --- a/drivers/platform/x86/amd/pmf/core.c
>>> +++ b/drivers/platform/x86/amd/pmf/core.c
>>> @@ -351,7 +351,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;
>>> }
>>>
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-02-14 12:48 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-13 7:36 [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Shyam Sundar S K
2024-02-13 7:36 ` [PATCH v2 2/2] platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume Shyam Sundar S K
2024-02-13 14:59 ` Mario Limonciello
2024-02-13 14:59 ` [PATCH v2 1/2] platform/x86/amd/pmf: remove smart_pc_status enum Mario Limonciello
2024-02-14 9:28 ` Shyam Sundar S K
2024-02-14 10:30 ` Hans de Goede
2024-02-14 12:48 ` Shyam Sundar S K
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox