From: Vladimir Yakovlev <vovchkir@xxxxxxxxx> Get access to the reset and reset the Coda HW before getting interrupt because sometimes after hot boot(reboot) irq can remain from previous session. Co-developed-by: Sergey Khimich <serghox@xxxxxxxxx> Signed-off-by: Sergey Khimich <serghox@xxxxxxxxx> Signed-off-by: Vladimir Yakovlev <vovchkir@xxxxxxxxx> --- .../platform/chips-media/coda/coda-common.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/chips-media/coda/coda-common.c b/drivers/media/platform/chips-media/coda/coda-common.c index b240091cdc9d..33c7e8398f31 100644 --- a/drivers/media/platform/chips-media/coda/coda-common.c +++ b/drivers/media/platform/chips-media/coda/coda-common.c @@ -3177,6 +3177,15 @@ static int coda_probe(struct platform_device *pdev) if (IS_ERR(dev->regs_base)) return PTR_ERR(dev->regs_base); + dev->rstc = devm_reset_control_array_get_optional_exclusive(&pdev->dev); + if (IS_ERR(dev->rstc)) { + ret = PTR_ERR(dev->rstc); + dev_err(&pdev->dev, "failed get reset control: %d\n", ret); + return ret; + } + + reset_control_reset(dev->rstc); + /* IRQ */ irq = platform_get_irq_byname(pdev, "bit"); if (irq < 0) @@ -3209,13 +3218,6 @@ static int coda_probe(struct platform_device *pdev) } } - dev->rstc = devm_reset_control_array_get_optional_exclusive(&pdev->dev); - if (IS_ERR(dev->rstc)) { - ret = PTR_ERR(dev->rstc); - dev_err(&pdev->dev, "failed get reset control: %d\n", ret); - return ret; - } - /* Get IRAM pool from device tree */ pool = of_gen_pool_get(np, "iram", 0); if (!pool) { -- 2.30.2