drm/amd/powerplay: replace smu->table_count with SMU_TABLE_COUNT in smu

Submitted by Wang, Kevin(Yang) on Sept. 3, 2019, 8:17 a.m.

Details

Message ID 20190903081702.24937-1-kevin1.wang@amd.com
State New
Headers show
Series "drm/amd/powerplay: replace smu->table_count with SMU_TABLE_COUNT in smu" ( rev: 1 ) in AMD X.Org drivers

Not browsing as part of any series.

Commit Message

Wang, Kevin(Yang) Sept. 3, 2019, 8:17 a.m.
fix bellow patch issue:
drm/amd/powerplay: introduce smu table id type to handle the smu table
for each asic
----
"This patch introduces new smu table type, it's to handle the
 different smu table
 defines for each asic with the same smu ip."

before:
use smu->table_count to represent the actual table count in smc firmware
use actual table count to check smu function parameter about smu table
after:
use logic table count "SMU_TABLE_COUNT" to check function parameter
because table id already mapped in smu driver,
and smu function will use logic table id not actual table id to check func parameter.

Signed-off-by: Kevin Wang <kevin1.wang@amd.com>
---
 drivers/gpu/drm/amd/powerplay/amdgpu_smu.c   | 13 ++++---------
 drivers/gpu/drm/amd/powerplay/arcturus_ppt.c |  1 -
 drivers/gpu/drm/amd/powerplay/navi10_ppt.c   |  1 -
 drivers/gpu/drm/amd/powerplay/renoir_ppt.c   |  1 -
 drivers/gpu/drm/amd/powerplay/smu_v11_0.c    |  5 ++---
 drivers/gpu/drm/amd/powerplay/vega20_ppt.c   |  1 -
 6 files changed, 6 insertions(+), 16 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
index 6f435d60fe86..c71a82a6a785 100644
--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -462,7 +462,7 @@  int smu_update_table(struct smu_context *smu, enum smu_table_id table_index, int
 	int ret = 0;
 	int table_id = smu_table_get_index(smu, table_index);
 
-	if (!table_data || table_id >= smu_table->table_count || table_id < 0)
+	if (!table_data || table_id >= SMU_TABLE_COUNT || table_id < 0)
 		return -EINVAL;
 
 	table = &smu_table->tables[table_index];
@@ -940,14 +940,10 @@  static int smu_init_fb_allocations(struct smu_context *smu)
 	struct amdgpu_device *adev = smu->adev;
 	struct smu_table_context *smu_table = &smu->smu_table;
 	struct smu_table *tables = smu_table->tables;
-	uint32_t table_count = smu_table->table_count;
 	uint32_t i = 0;
 	int32_t ret = 0;
 
-	if (table_count <= 0)
-		return -EINVAL;
-
-	for (i = 0 ; i < table_count; i++) {
+	for (i = 0; i < SMU_TABLE_COUNT; i++) {
 		if (tables[i].size == 0)
 			continue;
 		ret = amdgpu_bo_create_kernel(adev,
@@ -978,13 +974,12 @@  static int smu_fini_fb_allocations(struct smu_context *smu)
 {
 	struct smu_table_context *smu_table = &smu->smu_table;
 	struct smu_table *tables = smu_table->tables;
-	uint32_t table_count = smu_table->table_count;
 	uint32_t i = 0;
 
-	if (table_count == 0 || tables == NULL)
+	if (!tables)
 		return 0;
 
-	for (i = 0 ; i < table_count; i++) {
+	for (i = 0; i < SMU_TABLE_COUNT; i++) {
 		if (tables[i].size == 0)
 			continue;
 		amdgpu_bo_free_kernel(&tables[i].bo,
diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
index f1f072012fac..6e8eb0f94c8b 100644
--- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
@@ -1934,5 +1934,4 @@  void arcturus_set_ppt_funcs(struct smu_context *smu)
 	struct smu_table_context *smu_table = &smu->smu_table;
 
 	smu->ppt_funcs = &arcturus_ppt_funcs;
-	smu_table->table_count = TABLE_COUNT;
 }
diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
index 744b7501c34d..e3add8b59291 100644
--- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
@@ -1633,5 +1633,4 @@  void navi10_set_ppt_funcs(struct smu_context *smu)
 	struct smu_table_context *smu_table = &smu->smu_table;
 
 	smu->ppt_funcs = &navi10_ppt_funcs;
-	smu_table->table_count = TABLE_COUNT;
 }
diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
index de43159564a5..2b953f7431b6 100644
--- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
@@ -169,5 +169,4 @@  void renoir_set_ppt_funcs(struct smu_context *smu)
 
 	smu->ppt_funcs = &renoir_ppt_funcs;
 	smu->smc_if_version = SMU12_DRIVER_IF_VERSION;
-	smu_table->table_count = TABLE_COUNT;
 }
diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
index deca9f85764c..3709e4d77338 100644
--- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
@@ -439,7 +439,7 @@  static int smu_v11_0_init_smc_tables(struct smu_context *smu)
 	struct smu_table *tables = NULL;
 	int ret = 0;
 
-	if (smu_table->tables || smu_table->table_count == 0)
+	if (smu_table->tables)
 		return -EINVAL;
 
 	tables = kcalloc(SMU_TABLE_COUNT, sizeof(struct smu_table),
@@ -465,13 +465,12 @@  static int smu_v11_0_fini_smc_tables(struct smu_context *smu)
 	struct smu_table_context *smu_table = &smu->smu_table;
 	int ret = 0;
 
-	if (!smu_table->tables || smu_table->table_count == 0)
+	if (!smu_table->tables)
 		return -EINVAL;
 
 	kfree(smu_table->tables);
 	kfree(smu_table->metrics_table);
 	smu_table->tables = NULL;
-	smu_table->table_count = 0;
 	smu_table->metrics_table = NULL;
 	smu_table->metrics_time = 0;
 
diff --git a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
index 899bf96b23e1..68548ba9b6ea 100644
--- a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
@@ -3189,5 +3189,4 @@  void vega20_set_ppt_funcs(struct smu_context *smu)
 	struct smu_table_context *smu_table = &smu->smu_table;
 
 	smu->ppt_funcs = &vega20_ppt_funcs;
-	smu_table->table_count = TABLE_COUNT;
 }

Comments

Please drop the table_count member from the smu_table structure as it's totally unused.
With that fixed, the patch is reviewed-by: Evan Quan <evan.quan@amd.com>

> -----Original Message-----

> From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of

> Wang, Kevin(Yang)

> Sent: 2019年9月3日 16:17

> To: amd-gfx@lists.freedesktop.org; Huang, Ray <Ray.Huang@amd.com>

> Cc: Wang, Kevin(Yang) <Kevin1.Wang@amd.com>

> Subject: [PATCH] drm/amd/powerplay: replace smu->table_count with

> SMU_TABLE_COUNT in smu

> 

> fix bellow patch issue:

> drm/amd/powerplay: introduce smu table id type to handle the smu table

> for each asic

> ----

> "This patch introduces new smu table type, it's to handle the  different smu

> table  defines for each asic with the same smu ip."

> 

> before:

> use smu->table_count to represent the actual table count in smc firmware

> use actual table count to check smu function parameter about smu table

> after:

> use logic table count "SMU_TABLE_COUNT" to check function parameter

> because table id already mapped in smu driver, and smu function will use

> logic table id not actual table id to check func parameter.

> 

> Signed-off-by: Kevin Wang <kevin1.wang@amd.com>

> ---

>  drivers/gpu/drm/amd/powerplay/amdgpu_smu.c   | 13 ++++---------

>  drivers/gpu/drm/amd/powerplay/arcturus_ppt.c |  1 -

>  drivers/gpu/drm/amd/powerplay/navi10_ppt.c   |  1 -

>  drivers/gpu/drm/amd/powerplay/renoir_ppt.c   |  1 -

>  drivers/gpu/drm/amd/powerplay/smu_v11_0.c    |  5 ++---

>  drivers/gpu/drm/amd/powerplay/vega20_ppt.c   |  1 -

>  6 files changed, 6 insertions(+), 16 deletions(-)

> 

> diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c

> b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c

> index 6f435d60fe86..c71a82a6a785 100644

> --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c

> +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c

> @@ -462,7 +462,7 @@ int smu_update_table(struct smu_context *smu,

> enum smu_table_id table_index, int

>  	int ret = 0;

>  	int table_id = smu_table_get_index(smu, table_index);

> 

> -	if (!table_data || table_id >= smu_table->table_count || table_id < 0)

> +	if (!table_data || table_id >= SMU_TABLE_COUNT || table_id < 0)

>  		return -EINVAL;

> 

>  	table = &smu_table->tables[table_index]; @@ -940,14 +940,10 @@

> static int smu_init_fb_allocations(struct smu_context *smu)

>  	struct amdgpu_device *adev = smu->adev;

>  	struct smu_table_context *smu_table = &smu->smu_table;

>  	struct smu_table *tables = smu_table->tables;

> -	uint32_t table_count = smu_table->table_count;

>  	uint32_t i = 0;

>  	int32_t ret = 0;

> 

> -	if (table_count <= 0)

> -		return -EINVAL;

> -

> -	for (i = 0 ; i < table_count; i++) {

> +	for (i = 0; i < SMU_TABLE_COUNT; i++) {

>  		if (tables[i].size == 0)

>  			continue;

>  		ret = amdgpu_bo_create_kernel(adev,

> @@ -978,13 +974,12 @@ static int smu_fini_fb_allocations(struct

> smu_context *smu)  {

>  	struct smu_table_context *smu_table = &smu->smu_table;

>  	struct smu_table *tables = smu_table->tables;

> -	uint32_t table_count = smu_table->table_count;

>  	uint32_t i = 0;

> 

> -	if (table_count == 0 || tables == NULL)

> +	if (!tables)

>  		return 0;

> 

> -	for (i = 0 ; i < table_count; i++) {

> +	for (i = 0; i < SMU_TABLE_COUNT; i++) {

>  		if (tables[i].size == 0)

>  			continue;

>  		amdgpu_bo_free_kernel(&tables[i].bo,

> diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c

> b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c

> index f1f072012fac..6e8eb0f94c8b 100644

> --- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c

> +++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c

> @@ -1934,5 +1934,4 @@ void arcturus_set_ppt_funcs(struct smu_context

> *smu)

>  	struct smu_table_context *smu_table = &smu->smu_table;

> 

>  	smu->ppt_funcs = &arcturus_ppt_funcs;

> -	smu_table->table_count = TABLE_COUNT;

>  }

> diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c

> b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c

> index 744b7501c34d..e3add8b59291 100644

> --- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c

> +++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c

> @@ -1633,5 +1633,4 @@ void navi10_set_ppt_funcs(struct smu_context

> *smu)

>  	struct smu_table_context *smu_table = &smu->smu_table;

> 

>  	smu->ppt_funcs = &navi10_ppt_funcs;

> -	smu_table->table_count = TABLE_COUNT;

>  }

> diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c

> b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c

> index de43159564a5..2b953f7431b6 100644

> --- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c

> +++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c

> @@ -169,5 +169,4 @@ void renoir_set_ppt_funcs(struct smu_context *smu)

> 

>  	smu->ppt_funcs = &renoir_ppt_funcs;

>  	smu->smc_if_version = SMU12_DRIVER_IF_VERSION;

> -	smu_table->table_count = TABLE_COUNT;

>  }

> diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c

> b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c

> index deca9f85764c..3709e4d77338 100644

> --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c

> +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c

> @@ -439,7 +439,7 @@ static int smu_v11_0_init_smc_tables(struct

> smu_context *smu)

>  	struct smu_table *tables = NULL;

>  	int ret = 0;

> 

> -	if (smu_table->tables || smu_table->table_count == 0)

> +	if (smu_table->tables)

>  		return -EINVAL;

> 

>  	tables = kcalloc(SMU_TABLE_COUNT, sizeof(struct smu_table), @@ -

> 465,13 +465,12 @@ static int smu_v11_0_fini_smc_tables(struct

> smu_context *smu)

>  	struct smu_table_context *smu_table = &smu->smu_table;

>  	int ret = 0;

> 

> -	if (!smu_table->tables || smu_table->table_count == 0)

> +	if (!smu_table->tables)

>  		return -EINVAL;

> 

>  	kfree(smu_table->tables);

>  	kfree(smu_table->metrics_table);

>  	smu_table->tables = NULL;

> -	smu_table->table_count = 0;

>  	smu_table->metrics_table = NULL;

>  	smu_table->metrics_time = 0;

> 

> diff --git a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c

> b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c

> index 899bf96b23e1..68548ba9b6ea 100644

> --- a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c

> +++ b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c

> @@ -3189,5 +3189,4 @@ void vega20_set_ppt_funcs(struct smu_context

> *smu)

>  	struct smu_table_context *smu_table = &smu->smu_table;

> 

>  	smu->ppt_funcs = &vega20_ppt_funcs;

> -	smu_table->table_count = TABLE_COUNT;

>  }

> --

> 2.22.0

> 

> _______________________________________________

> amd-gfx mailing list

> amd-gfx@lists.freedesktop.org

> https://lists.freedesktop.org/mailman/listinfo/amd-gfx