X86 platform drivers
 help / color / mirror / Atom feed
* [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