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

Jon Hunter
2023-07-25T18:29:50Z

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 <sumitg@nvidia.com>
> ---
> 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