2022-01-12 13:57:12

by Sameer Pujar

[permalink] [raw]
Subject: [PATCH] reset: tegra-bpmp: Restore Handle errors in BPMP response

This reverts following commit 69125b4b9440 ("reset: tegra-bpmp: Revert
Handle errors in BPMP response").

The Tegra194 HDA reset failure is fixed by commit d278dc9151a0 ("ALSA:
hda/tegra: Fix Tegra194 HDA reset failure"). The temporary revert of
original commit c045ceb5a145 ("reset: tegra-bpmp: Handle errors in BPMP
response") can be removed now.

Signed-off-by: Sameer Pujar <[email protected]>
---
drivers/reset/tegra/reset-bpmp.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/reset/tegra/reset-bpmp.c b/drivers/reset/tegra/reset-bpmp.c
index 24d3395..4c5bba5 100644
--- a/drivers/reset/tegra/reset-bpmp.c
+++ b/drivers/reset/tegra/reset-bpmp.c
@@ -20,6 +20,7 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc);
struct mrq_reset_request request;
struct tegra_bpmp_message msg;
+ int err;

memset(&request, 0, sizeof(request));
request.cmd = command;
@@ -30,7 +31,13 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
msg.tx.data = &request;
msg.tx.size = sizeof(request);

- return tegra_bpmp_transfer(bpmp, &msg);
+ err = tegra_bpmp_transfer(bpmp, &msg);
+ if (err)
+ return err;
+ if (msg.rx.ret)
+ return -EINVAL;
+
+ return 0;
}

static int tegra_bpmp_reset_module(struct reset_controller_dev *rstc,
--
2.7.4



2022-01-13 23:44:54

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH] reset: tegra-bpmp: Restore Handle errors in BPMP response


On 12/01/2022 13:56, Sameer Pujar wrote:
> This reverts following commit 69125b4b9440 ("reset: tegra-bpmp: Revert
> Handle errors in BPMP response").
>
> The Tegra194 HDA reset failure is fixed by commit d278dc9151a0 ("ALSA:
> hda/tegra: Fix Tegra194 HDA reset failure"). The temporary revert of
> original commit c045ceb5a145 ("reset: tegra-bpmp: Handle errors in BPMP
> response") can be removed now.
>
> Signed-off-by: Sameer Pujar <[email protected]>
> ---
> drivers/reset/tegra/reset-bpmp.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/reset/tegra/reset-bpmp.c b/drivers/reset/tegra/reset-bpmp.c
> index 24d3395..4c5bba5 100644
> --- a/drivers/reset/tegra/reset-bpmp.c
> +++ b/drivers/reset/tegra/reset-bpmp.c
> @@ -20,6 +20,7 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
> struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc);
> struct mrq_reset_request request;
> struct tegra_bpmp_message msg;
> + int err;
>
> memset(&request, 0, sizeof(request));
> request.cmd = command;
> @@ -30,7 +31,13 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
> msg.tx.data = &request;
> msg.tx.size = sizeof(request);
>
> - return tegra_bpmp_transfer(bpmp, &msg);
> + err = tegra_bpmp_transfer(bpmp, &msg);
> + if (err)
> + return err;
> + if (msg.rx.ret)
> + return -EINVAL;
> +
> + return 0;
> }
>
> static int tegra_bpmp_reset_module(struct reset_controller_dev *rstc,


Thanks!

Tested-by: Jon Hunter <[email protected]>
Reviewed-by: Jon Hunter <[email protected]>

Jon


--
nvpublic

2022-01-28 12:20:37

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] reset: tegra-bpmp: Restore Handle errors in BPMP response

On Wed, Jan 12, 2022 at 07:26:46PM +0530, Sameer Pujar wrote:
> This reverts following commit 69125b4b9440 ("reset: tegra-bpmp: Revert
> Handle errors in BPMP response").
>
> The Tegra194 HDA reset failure is fixed by commit d278dc9151a0 ("ALSA:
> hda/tegra: Fix Tegra194 HDA reset failure"). The temporary revert of
> original commit c045ceb5a145 ("reset: tegra-bpmp: Handle errors in BPMP
> response") can be removed now.
>
> Signed-off-by: Sameer Pujar <[email protected]>
> ---
> drivers/reset/tegra/reset-bpmp.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)

Hi Philipp,

the commit that fixed the HDA reset failure was merged into v5.17-rc1,
so this can safely be applied as a fix for v5.17. At the same time the
existing bug is fairly harmless, so deferring this to v5.18 would also
be fine.

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


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

2022-04-05 01:18:02

by Philipp Zabel

[permalink] [raw]
Subject: Re: [PATCH] reset: tegra-bpmp: Restore Handle errors in BPMP response

On Mi, 2022-01-12 at 19:26 +0530, Sameer Pujar wrote:
> This reverts following commit 69125b4b9440 ("reset: tegra-bpmp:
> Revert
> Handle errors in BPMP response").
>
> The Tegra194 HDA reset failure is fixed by commit d278dc9151a0
> ("ALSA:
> hda/tegra: Fix Tegra194 HDA reset failure"). The temporary revert of
> original commit c045ceb5a145 ("reset: tegra-bpmp: Handle errors in
> BPMP
> response") can be removed now.
>
> Signed-off-by: Sameer Pujar <[email protected]>
> ---
>  drivers/reset/tegra/reset-bpmp.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/reset/tegra/reset-bpmp.c
> b/drivers/reset/tegra/reset-bpmp.c
> index 24d3395..4c5bba5 100644
> --- a/drivers/reset/tegra/reset-bpmp.c
> +++ b/drivers/reset/tegra/reset-bpmp.c
> @@ -20,6 +20,7 @@ static int tegra_bpmp_reset_common(struct
> reset_controller_dev *rstc,
>         struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc);
>         struct mrq_reset_request request;
>         struct tegra_bpmp_message msg;
> +       int err;
>  
>         memset(&request, 0, sizeof(request));
>         request.cmd = command;
> @@ -30,7 +31,13 @@ static int tegra_bpmp_reset_common(struct
> reset_controller_dev *rstc,
>         msg.tx.data = &request;
>         msg.tx.size = sizeof(request);
>  
> -       return tegra_bpmp_transfer(bpmp, &msg);
> +       err = tegra_bpmp_transfer(bpmp, &msg);
> +       if (err)
> +               return err;
> +       if (msg.rx.ret)
> +               return -EINVAL;
> +
> +       return 0;
>  }
>  
>  static int tegra_bpmp_reset_module(struct reset_controller_dev
> *rstc,

Thank you, applied to reset/fixes.

regards
Philipp