diff mbox series

[v3,08/19] media: venus: core: Get rid of vcodec_num

Message ID 20230911-topic-mars-v3-8-79f23b81c261@linaro.org (mailing list archive)
State New
Headers show
Series Venus cleanups | expand

Commit Message

Konrad Dybcio March 27, 2024, 6:08 p.m. UTC
That field was only introduced to differentiate between the legacy and
non-legacy SDM845 binding. Get rid of it.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 drivers/media/platform/qcom/venus/core.c       | 5 -----
 drivers/media/platform/qcom/venus/core.h       | 1 -
 drivers/media/platform/qcom/venus/pm_helpers.c | 2 +-
 3 files changed, 1 insertion(+), 7 deletions(-)

Comments

Dikshita Agarwal April 5, 2024, 9:18 a.m. UTC | #1
On 3/27/2024 11:38 PM, Konrad Dybcio wrote:
> That field was only introduced to differentiate between the legacy and
> non-legacy SDM845 binding. Get rid of it.
> 
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>  drivers/media/platform/qcom/venus/core.c       | 5 -----
>  drivers/media/platform/qcom/venus/core.h       | 1 -
>  drivers/media/platform/qcom/venus/pm_helpers.c | 2 +-
>  3 files changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
> index 5e7cb54e6088..26a0c264685a 100644
> --- a/drivers/media/platform/qcom/venus/core.c
> +++ b/drivers/media/platform/qcom/venus/core.c
> @@ -651,7 +651,6 @@ static const struct venus_resources sdm660_res = {
>  	.vcodec0_clks = { "vcodec0_core" },
>  	.vcodec1_clks = { "vcodec0_core" },
>  	.vcodec_clks_num = 1,
> -	.vcodec_num = 1,
>  	.max_load = 1036800,
>  	.hfi_version = HFI_VERSION_3XX,
>  	.vmem_id = VIDC_RESOURCE_NONE,
> @@ -725,7 +724,6 @@ static const struct venus_resources sdm845_res_v2 = {
>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0", "vcodec1" },
>  	.vcodec_pmdomains_num = 3,
>  	.opp_pmdomain = pd_names_cx,
> -	.vcodec_num = 2,
>  	.max_load = 3110400,	/* 4096x2160@90 */
>  	.hfi_version = HFI_VERSION_4XX,
>  	.vpu_version = VPU_VERSION_AR50,
> @@ -774,7 +772,6 @@ static const struct venus_resources sc7180_res = {
>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
>  	.vcodec_pmdomains_num = 2,
>  	.opp_pmdomain = pd_names_cx,
> -	.vcodec_num = 1,
>  	.hfi_version = HFI_VERSION_4XX,
>  	.vpu_version = VPU_VERSION_AR50,
>  	.vmem_id = VIDC_RESOURCE_NONE,
> @@ -831,7 +828,6 @@ static const struct venus_resources sm8250_res = {
>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
>  	.vcodec_pmdomains_num = 2,
>  	.opp_pmdomain = pd_names_mx,
> -	.vcodec_num = 1,
>  	.max_load = 7833600,
>  	.hfi_version = HFI_VERSION_6XX,
>  	.vpu_version = VPU_VERSION_IRIS2,
> @@ -890,7 +886,6 @@ static const struct venus_resources sc7280_res = {
>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
>  	.vcodec_pmdomains_num = 2,
>  	.opp_pmdomain = pd_names_cx,
> -	.vcodec_num = 1,
>  	.hfi_version = HFI_VERSION_6XX,
>  	.vpu_version = VPU_VERSION_IRIS2_1,
>  	.num_vpp_pipes = 1,
> diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
> index 6a77de374454..376de1161114 100644
> --- a/drivers/media/platform/qcom/venus/core.h
> +++ b/drivers/media/platform/qcom/venus/core.h
> @@ -74,7 +74,6 @@ struct venus_resources {
>  	const char **vcodec_pmdomains;
>  	unsigned int vcodec_pmdomains_num;
>  	const char **opp_pmdomain;
> -	unsigned int vcodec_num;
>  	const char * const resets[VIDC_RESETS_NUM_MAX];
>  	unsigned int resets_num;
>  	enum hfi_version hfi_version;
> diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
> index 5b2a40a2f524..ba63e6427eb9 100644
> --- a/drivers/media/platform/qcom/venus/pm_helpers.c
> +++ b/drivers/media/platform/qcom/venus/pm_helpers.c
> @@ -622,7 +622,7 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load, bool lo
>  			VIDC_CORE_ID_1 : VIDC_CORE_ID_2;
>  	*min_load = min(core1_load, core2_load);
>  
> -	if (cores_max < VIDC_CORE_ID_2 || core->res->vcodec_num < 2> +	if (cores_max < VIDC_CORE_ID_2 || legacy_binding) {
core->res->vcodec_num < 2 doesn't mean legacy binding.
7180, 8250 and 7280 have vcodec num as 1 but they don't follow legacy
binding and they still have one core which is VIDC_CORE_ID_1.
>  		*min_coreid = VIDC_CORE_ID_1;
>  		*min_load = core1_load;
>  	}
> 

Thanks,
Dikshita
Vikash Garodia April 5, 2024, 12:30 p.m. UTC | #2
Hi Konrad,

On 4/5/2024 2:48 PM, Dikshita Agarwal wrote:
> 
> 
> On 3/27/2024 11:38 PM, Konrad Dybcio wrote:
>> That field was only introduced to differentiate between the legacy and
>> non-legacy SDM845 binding. Get rid of it.
>>
>> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>> ---
>>  drivers/media/platform/qcom/venus/core.c       | 5 -----
>>  drivers/media/platform/qcom/venus/core.h       | 1 -
>>  drivers/media/platform/qcom/venus/pm_helpers.c | 2 +-
>>  3 files changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
>> index 5e7cb54e6088..26a0c264685a 100644
>> --- a/drivers/media/platform/qcom/venus/core.c
>> +++ b/drivers/media/platform/qcom/venus/core.c
>> @@ -651,7 +651,6 @@ static const struct venus_resources sdm660_res = {
>>  	.vcodec0_clks = { "vcodec0_core" },
>>  	.vcodec1_clks = { "vcodec0_core" },
>>  	.vcodec_clks_num = 1,
>> -	.vcodec_num = 1,
>>  	.max_load = 1036800,
>>  	.hfi_version = HFI_VERSION_3XX,
>>  	.vmem_id = VIDC_RESOURCE_NONE,
>> @@ -725,7 +724,6 @@ static const struct venus_resources sdm845_res_v2 = {
>>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0", "vcodec1" },
>>  	.vcodec_pmdomains_num = 3,
>>  	.opp_pmdomain = pd_names_cx,
>> -	.vcodec_num = 2,
>>  	.max_load = 3110400,	/* 4096x2160@90 */
>>  	.hfi_version = HFI_VERSION_4XX,
>>  	.vpu_version = VPU_VERSION_AR50,
>> @@ -774,7 +772,6 @@ static const struct venus_resources sc7180_res = {
>>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
>>  	.vcodec_pmdomains_num = 2,
>>  	.opp_pmdomain = pd_names_cx,
>> -	.vcodec_num = 1,
>>  	.hfi_version = HFI_VERSION_4XX,
>>  	.vpu_version = VPU_VERSION_AR50,
>>  	.vmem_id = VIDC_RESOURCE_NONE,
>> @@ -831,7 +828,6 @@ static const struct venus_resources sm8250_res = {
>>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
>>  	.vcodec_pmdomains_num = 2,
>>  	.opp_pmdomain = pd_names_mx,
>> -	.vcodec_num = 1,
>>  	.max_load = 7833600,
>>  	.hfi_version = HFI_VERSION_6XX,
>>  	.vpu_version = VPU_VERSION_IRIS2,
>> @@ -890,7 +886,6 @@ static const struct venus_resources sc7280_res = {
>>  	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
>>  	.vcodec_pmdomains_num = 2,
>>  	.opp_pmdomain = pd_names_cx,
>> -	.vcodec_num = 1,
>>  	.hfi_version = HFI_VERSION_6XX,
>>  	.vpu_version = VPU_VERSION_IRIS2_1,
>>  	.num_vpp_pipes = 1,
>> diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
>> index 6a77de374454..376de1161114 100644
>> --- a/drivers/media/platform/qcom/venus/core.h
>> +++ b/drivers/media/platform/qcom/venus/core.h
>> @@ -74,7 +74,6 @@ struct venus_resources {
>>  	const char **vcodec_pmdomains;
>>  	unsigned int vcodec_pmdomains_num;
>>  	const char **opp_pmdomain;
>> -	unsigned int vcodec_num;
>>  	const char * const resets[VIDC_RESETS_NUM_MAX];
>>  	unsigned int resets_num;
>>  	enum hfi_version hfi_version;
>> diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
>> index 5b2a40a2f524..ba63e6427eb9 100644
>> --- a/drivers/media/platform/qcom/venus/pm_helpers.c
>> +++ b/drivers/media/platform/qcom/venus/pm_helpers.c
>> @@ -622,7 +622,7 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load, bool lo
>>  			VIDC_CORE_ID_1 : VIDC_CORE_ID_2;
>>  	*min_load = min(core1_load, core2_load);
>>  
>> -	if (cores_max < VIDC_CORE_ID_2 || core->res->vcodec_num < 2> +	if (cores_max < VIDC_CORE_ID_2 || legacy_binding) {
> core->res->vcodec_num < 2 doesn't mean legacy binding.
> 7180, 8250 and 7280 have vcodec num as 1 but they don't follow legacy
> binding and they still have one core which is VIDC_CORE_ID_1.
+1 to above comments. The change is misusing legacy bindings to decide the
cores, while its more readable to keep it with number of vcodec cores.

Thanks,
Vikash
>>  		*min_coreid = VIDC_CORE_ID_1;
>>  		*min_load = core1_load;
>>  	}
>>
> 
> Thanks,
> Dikshita
diff mbox series

Patch

diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 5e7cb54e6088..26a0c264685a 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -651,7 +651,6 @@  static const struct venus_resources sdm660_res = {
 	.vcodec0_clks = { "vcodec0_core" },
 	.vcodec1_clks = { "vcodec0_core" },
 	.vcodec_clks_num = 1,
-	.vcodec_num = 1,
 	.max_load = 1036800,
 	.hfi_version = HFI_VERSION_3XX,
 	.vmem_id = VIDC_RESOURCE_NONE,
@@ -725,7 +724,6 @@  static const struct venus_resources sdm845_res_v2 = {
 	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0", "vcodec1" },
 	.vcodec_pmdomains_num = 3,
 	.opp_pmdomain = pd_names_cx,
-	.vcodec_num = 2,
 	.max_load = 3110400,	/* 4096x2160@90 */
 	.hfi_version = HFI_VERSION_4XX,
 	.vpu_version = VPU_VERSION_AR50,
@@ -774,7 +772,6 @@  static const struct venus_resources sc7180_res = {
 	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
 	.vcodec_pmdomains_num = 2,
 	.opp_pmdomain = pd_names_cx,
-	.vcodec_num = 1,
 	.hfi_version = HFI_VERSION_4XX,
 	.vpu_version = VPU_VERSION_AR50,
 	.vmem_id = VIDC_RESOURCE_NONE,
@@ -831,7 +828,6 @@  static const struct venus_resources sm8250_res = {
 	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
 	.vcodec_pmdomains_num = 2,
 	.opp_pmdomain = pd_names_mx,
-	.vcodec_num = 1,
 	.max_load = 7833600,
 	.hfi_version = HFI_VERSION_6XX,
 	.vpu_version = VPU_VERSION_IRIS2,
@@ -890,7 +886,6 @@  static const struct venus_resources sc7280_res = {
 	.vcodec_pmdomains = (const char *[]) { "venus", "vcodec0" },
 	.vcodec_pmdomains_num = 2,
 	.opp_pmdomain = pd_names_cx,
-	.vcodec_num = 1,
 	.hfi_version = HFI_VERSION_6XX,
 	.vpu_version = VPU_VERSION_IRIS2_1,
 	.num_vpp_pipes = 1,
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index 6a77de374454..376de1161114 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -74,7 +74,6 @@  struct venus_resources {
 	const char **vcodec_pmdomains;
 	unsigned int vcodec_pmdomains_num;
 	const char **opp_pmdomain;
-	unsigned int vcodec_num;
 	const char * const resets[VIDC_RESETS_NUM_MAX];
 	unsigned int resets_num;
 	enum hfi_version hfi_version;
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index 5b2a40a2f524..ba63e6427eb9 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -622,7 +622,7 @@  min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load, bool lo
 			VIDC_CORE_ID_1 : VIDC_CORE_ID_2;
 	*min_load = min(core1_load, core2_load);
 
-	if (cores_max < VIDC_CORE_ID_2 || core->res->vcodec_num < 2) {
+	if (cores_max < VIDC_CORE_ID_2 || legacy_binding) {
 		*min_coreid = VIDC_CORE_ID_1;
 		*min_load = core1_load;
 	}