Messages in this thread | | | Date | Mon, 22 Jun 2020 09:54:42 +0530 | From | mansur@codeauro ... | Subject | Re: [PATCH] venus: core: add shutdown callback for venus |
| |
Hi Stan,
> On 2020-06-13 17:43, Stanimir Varbanov wrote: >> Hi Mansur, >> >> Thanks for the patch! >> >> How you test this? Is it enough to start playback and issue reboot >> (did >> you test with reboot -f) ? Yes, I have tested it with "reboot -f" and started video playback (YouTube browser and local video) and issue reboot command.
>> On 6/13/20 1:33 PM, Mansur Alisha Shaik wrote: >>> After the SMMU translation is disabled in the >>> arm-smmu shutdown callback during reboot, if >>> any subsystem are still alive then IOVAs they >>> are using will become PAs on bus, which may >>> lead to crash. >>> >>> Below are the consumers of smmu from venus >>> arm-smmu: consumer: aa00000.video-codec supplier=15000000.iommu >>> arm-smmu: consumer: video-firmware.0 supplier=15000000.iommu >>> >>> So implemented shutdown callback, which detach iommu maps. >>> >>> Change-Id: I0f0f331056e0b84b92f1d86f66618d4b1caaa24a >>> Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org> >>> --- >>> drivers/media/platform/qcom/venus/core.c | 9 +++++++++ >>> 1 file changed, 9 insertions(+) >>> >>> diff --git a/drivers/media/platform/qcom/venus/core.c >>> b/drivers/media/platform/qcom/venus/core.c >>> index 30d4b9e..acf798c 100644 >>> --- a/drivers/media/platform/qcom/venus/core.c >>> +++ b/drivers/media/platform/qcom/venus/core.c >>> @@ -371,6 +371,14 @@ static int venus_remove(struct platform_device >>> *pdev) >>> return ret; >>> } >>> >>> +static void venus_core_shutdown(struct platform_device *pdev) >>> +{ >>> + int ret; >>> + >>> + ret = venus_remove(pdev); >>> + WARN_ON(ret < 0); >>> +} >>> + >>> static __maybe_unused int venus_runtime_suspend(struct device *dev) >>> { >>> struct venus_core *core = dev_get_drvdata(dev); >>> @@ -628,6 +636,7 @@ static struct platform_driver qcom_venus_driver = >>> { >>> .of_match_table = venus_dt_match, >>> .pm = &venus_pm_ops, >>> }, >>> + .shutdown = venus_core_shutdown, >>> }; >>> module_platform_driver(qcom_venus_driver); >>> >>> Thank, Mansur
| |