The use of pm_runtime_get_sync() is buggy with no use of put_noidle on
error.
Use pm_runtime_resume_and_get() instead.
Signed-off-by: Pierre-Louis Bossart <[email protected]>
Reviewed-by: Bard Liao <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Reviewed-by: Ranjani Sridharan <[email protected]>
---
sound/soc/ti/davinci-mcasp.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sound/soc/ti/davinci-mcasp.c b/sound/soc/ti/davinci-mcasp.c
index e2aab4729f3ab..0201000b619f6 100644
--- a/sound/soc/ti/davinci-mcasp.c
+++ b/sound/soc/ti/davinci-mcasp.c
@@ -2111,8 +2111,7 @@ static int davinci_mcasp_gpio_request(struct gpio_chip *chip, unsigned offset)
}
/* Do not change the PIN yet */
-
- return pm_runtime_get_sync(mcasp->dev);
+ return pm_runtime_resume_and_get(mcasp->dev);
}
static void davinci_mcasp_gpio_free(struct gpio_chip *chip, unsigned offset)
--
2.34.1
Hi Pierre,
On 17/06/2022 01:04, Pierre-Louis Bossart wrote:
> The use of pm_runtime_get_sync() is buggy with no use of put_noidle on
> error.
>
> Use pm_runtime_resume_and_get() instead.
Thanks for the fix,
Acked-by: Peter Ujfalusi <[email protected]>
>
> Signed-off-by: Pierre-Louis Bossart <[email protected]>
> Reviewed-by: Bard Liao <[email protected]>
> Reviewed-by: Kai Vehmanen <[email protected]>
> Reviewed-by: Ranjani Sridharan <[email protected]>
> ---
> sound/soc/ti/davinci-mcasp.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/sound/soc/ti/davinci-mcasp.c b/sound/soc/ti/davinci-mcasp.c
> index e2aab4729f3ab..0201000b619f6 100644
> --- a/sound/soc/ti/davinci-mcasp.c
> +++ b/sound/soc/ti/davinci-mcasp.c
> @@ -2111,8 +2111,7 @@ static int davinci_mcasp_gpio_request(struct gpio_chip *chip, unsigned offset)
> }
>
> /* Do not change the PIN yet */
> -
> - return pm_runtime_get_sync(mcasp->dev);
> + return pm_runtime_resume_and_get(mcasp->dev);
> }
>
> static void davinci_mcasp_gpio_free(struct gpio_chip *chip, unsigned offset)
--
Péter