2023-06-21 13:56:26

by Sumit Gupta

[permalink] [raw]
Subject: [Patch RESEND 4/4] memory: tegra: make icc_set_bw return zero if BWMGR not supported

Return zero from icc_set_bw() to MC client driver if MRQ_BWMGR_INT
is not supported by the BPMP-FW. Currently, 'EINVAL' is returned
which causes error message in client drivers even when the platform
doesn't support scaling.

Signed-off-by: Sumit Gupta <[email protected]>
---
drivers/memory/tegra/tegra234.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/memory/tegra/tegra234.c b/drivers/memory/tegra/tegra234.c
index bc73be7fe143..07aba301a173 100644
--- a/drivers/memory/tegra/tegra234.c
+++ b/drivers/memory/tegra/tegra234.c
@@ -951,7 +951,7 @@ static int tegra234_mc_icc_set(struct icc_node *src, struct icc_node *dst)
return 0;

if (!mc->bwmgr_mrq_supported)
- return -EINVAL;
+ return 0;

if (!mc->bpmp) {
dev_err(mc->dev, "BPMP reference NULL\n");
@@ -998,7 +998,7 @@ static int tegra234_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
struct tegra_mc *mc = icc_provider_to_tegra_mc(p);

if (!mc->bwmgr_mrq_supported)
- return -EINVAL;
+ return 0;

if (node->id == TEGRA_ICC_MC_CPU_CLUSTER0 ||
node->id == TEGRA_ICC_MC_CPU_CLUSTER1 ||
--
2.17.1



2023-07-13 15:22:24

by Thierry Reding

[permalink] [raw]
Subject: Re: [Patch RESEND 4/4] memory: tegra: make icc_set_bw return zero if BWMGR not supported

On Wed, Jun 21, 2023 at 07:14:00PM +0530, Sumit Gupta wrote:
> Return zero from icc_set_bw() to MC client driver if MRQ_BWMGR_INT
> is not supported by the BPMP-FW. Currently, 'EINVAL' is returned
> which causes error message in client drivers even when the platform
> doesn't support scaling.
>
> Signed-off-by: Sumit Gupta <[email protected]>
> ---
> drivers/memory/tegra/tegra234.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Acked-by: Thierry Reding <[email protected]>


Attachments:
(No filename) (506.00 B)
signature.asc (849.00 B)
Download all attachments

2023-07-25 18:41:39

by Jon Hunter

[permalink] [raw]
Subject: Re: [Patch RESEND 4/4] memory: tegra: make icc_set_bw return zero if BWMGR not supported

Hi Krzysztof,

On 21/06/2023 14:44, Sumit Gupta wrote:
> Return zero from icc_set_bw() to MC client driver if MRQ_BWMGR_INT
> is not supported by the BPMP-FW. Currently, 'EINVAL' is returned
> which causes error message in client drivers even when the platform
> doesn't support scaling.
>
> Signed-off-by: Sumit Gupta <[email protected]>
> ---
> drivers/memory/tegra/tegra234.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/memory/tegra/tegra234.c b/drivers/memory/tegra/tegra234.c
> index bc73be7fe143..07aba301a173 100644
> --- a/drivers/memory/tegra/tegra234.c
> +++ b/drivers/memory/tegra/tegra234.c
> @@ -951,7 +951,7 @@ static int tegra234_mc_icc_set(struct icc_node *src, struct icc_node *dst)
> return 0;
>
> if (!mc->bwmgr_mrq_supported)
> - return -EINVAL;
> + return 0;
>
> if (!mc->bpmp) {
> dev_err(mc->dev, "BPMP reference NULL\n");
> @@ -998,7 +998,7 @@ static int tegra234_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
> struct tegra_mc *mc = icc_provider_to_tegra_mc(p);
>
> if (!mc->bwmgr_mrq_supported)
> - return -EINVAL;
> + return 0;
>
> if (node->id == TEGRA_ICC_MC_CPU_CLUSTER0 ||
> node->id == TEGRA_ICC_MC_CPU_CLUSTER1 ||


I have also found that this change is needed for Linux v6.5 in order to
work with current BPMP firmware. Without this patch PCIe does not work
on Tegra234. We should probably also add the following fixes tag for
this patch ...

Fixes: 9365bf006f53 ("PCI: tegra194: Add interconnect support in Tegra234")

Thanks
Jon

--
nvpublic

2023-07-25 20:55:21

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [Patch RESEND 4/4] memory: tegra: make icc_set_bw return zero if BWMGR not supported

On 25/07/2023 20:29, Jon Hunter wrote:
> Hi Krzysztof,
>
> On 21/06/2023 14:44, Sumit Gupta wrote:
>> Return zero from icc_set_bw() to MC client driver if MRQ_BWMGR_INT
>> is not supported by the BPMP-FW. Currently, 'EINVAL' is returned
>> which causes error message in client drivers even when the platform
>> doesn't support scaling.
>>
>> Signed-off-by: Sumit Gupta <[email protected]>
>> ---
>> drivers/memory/tegra/tegra234.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/memory/tegra/tegra234.c b/drivers/memory/tegra/tegra234.c
>> index bc73be7fe143..07aba301a173 100644
>> --- a/drivers/memory/tegra/tegra234.c
>> +++ b/drivers/memory/tegra/tegra234.c
>> @@ -951,7 +951,7 @@ static int tegra234_mc_icc_set(struct icc_node *src, struct icc_node *dst)
>> return 0;
>>
>> if (!mc->bwmgr_mrq_supported)
>> - return -EINVAL;
>> + return 0;
>>
>> if (!mc->bpmp) {
>> dev_err(mc->dev, "BPMP reference NULL\n");
>> @@ -998,7 +998,7 @@ static int tegra234_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
>> struct tegra_mc *mc = icc_provider_to_tegra_mc(p);
>>
>> if (!mc->bwmgr_mrq_supported)
>> - return -EINVAL;
>> + return 0;
>>
>> if (node->id == TEGRA_ICC_MC_CPU_CLUSTER0 ||
>> node->id == TEGRA_ICC_MC_CPU_CLUSTER1 ||
>
>
> I have also found that this change is needed for Linux v6.5 in order to
> work with current BPMP firmware. Without this patch PCIe does not work
> on Tegra234. We should probably also add the following fixes tag for
> this patch ...
>
> Fixes: 9365bf006f53 ("PCI: tegra194: Add interconnect support in Tegra234")

Thank you, I moved the commit to fixes branch. I hope other patches do
not depend on the order (it was part of the patchset as 3/4 commit).

Since I re-shuffled everything, I will send pull for current RC
tomorrow, not today.

Best regards,
Krzysztof