Message ID | 20201221095820.27192-1-stanimir.varbanov@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | venus: core: Fix platform driver shutdown | expand |
On Mon, Dec 21, 2020 at 5:58 PM Stanimir Varbanov <stanimir.varbanov@linaro.org> wrote: > > With TZ system reboot cannot finish successfully. To fix that > enable core clocks by runtime pm before TZ calls and disable > clocks after that. > > Fixes: 7399139be6b2 ("media: venus: core: add shutdown callback for venus") > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> It fixes reboot on Lenovo Yoga C630 laptop for me, so: Tested-by: Shawn Guo <shawn.guo@linaro.org>
On Mon, Dec 21, 2020 at 11:58:20AM +0200, Stanimir Varbanov wrote: > With TZ system reboot cannot finish successfully. To fix that > enable core clocks by runtime pm before TZ calls and disable > clocks after that. > > Fixes: 7399139be6b2 ("media: venus: core: add shutdown callback for venus") > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Hi Mauro, Could you help pick this fix up? Shawn > --- > drivers/media/platform/qcom/venus/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index bdd293faaad0..7233a7311757 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c > @@ -349,8 +349,10 @@ static void venus_core_shutdown(struct platform_device *pdev) > { > struct venus_core *core = platform_get_drvdata(pdev); > > + pm_runtime_get_sync(core->dev); > venus_shutdown(core); > venus_firmware_deinit(core); > + pm_runtime_put_sync(core->dev); > } > > static __maybe_unused int venus_runtime_suspend(struct device *dev) > -- > 2.17.1 >
On 1/19/21 9:40 AM, Shawn Guo wrote: > On Mon, Dec 21, 2020 at 11:58:20AM +0200, Stanimir Varbanov wrote: >> With TZ system reboot cannot finish successfully. To fix that >> enable core clocks by runtime pm before TZ calls and disable >> clocks after that. >> >> Fixes: 7399139be6b2 ("media: venus: core: add shutdown callback for venus") >> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > > Hi Mauro, > > Could you help pick this fix up? Shawn, it is part of linux-next already. > > Shawn > >> --- >> drivers/media/platform/qcom/venus/core.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c >> index bdd293faaad0..7233a7311757 100644 >> --- a/drivers/media/platform/qcom/venus/core.c >> +++ b/drivers/media/platform/qcom/venus/core.c >> @@ -349,8 +349,10 @@ static void venus_core_shutdown(struct platform_device *pdev) >> { >> struct venus_core *core = platform_get_drvdata(pdev); >> >> + pm_runtime_get_sync(core->dev); >> venus_shutdown(core); >> venus_firmware_deinit(core); >> + pm_runtime_put_sync(core->dev); >> } >> >> static __maybe_unused int venus_runtime_suspend(struct device *dev) >> -- >> 2.17.1 >>
On Tue, Jan 19, 2021 at 09:59:41AM +0200, Stanimir Varbanov wrote: > On 1/19/21 9:40 AM, Shawn Guo wrote: > > On Mon, Dec 21, 2020 at 11:58:20AM +0200, Stanimir Varbanov wrote: > >> With TZ system reboot cannot finish successfully. To fix that > >> enable core clocks by runtime pm before TZ calls and disable > >> clocks after that. > >> > >> Fixes: 7399139be6b2 ("media: venus: core: add shutdown callback for venus") > >> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > > > > Hi Mauro, > > > > Could you help pick this fix up? > > Shawn, it is part of linux-next already. Ha, sorry, I did not check linux-next. I sent the message because I see this fix is still missing after I rebase my Yoga C630 branch to 5.11-rc4. We will get this fix into 5.11, right? Shawn
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index bdd293faaad0..7233a7311757 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -349,8 +349,10 @@ static void venus_core_shutdown(struct platform_device *pdev) { struct venus_core *core = platform_get_drvdata(pdev); + pm_runtime_get_sync(core->dev); venus_shutdown(core); venus_firmware_deinit(core); + pm_runtime_put_sync(core->dev); } static __maybe_unused int venus_runtime_suspend(struct device *dev)
With TZ system reboot cannot finish successfully. To fix that enable core clocks by runtime pm before TZ calls and disable clocks after that. Fixes: 7399139be6b2 ("media: venus: core: add shutdown callback for venus") Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> --- drivers/media/platform/qcom/venus/core.c | 2 ++ 1 file changed, 2 insertions(+)