]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: staging/ipu7: Call synchronous RPM suspend in probe failure
authorBingbu Cao <bingbu.cao@intel.com>
Tue, 23 Dec 2025 07:23:01 +0000 (15:23 +0800)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Tue, 13 Jan 2026 11:47:55 +0000 (12:47 +0100)
If firmware authentication failed during driver probe, driver call an
asynchronous API to suspend the psys device but the bus device will be
removed soon, thus runtime PM of bus device will be disabled soon, that
will cancel the suspend request, so use synchronous suspend to make
sure the runtime suspend before disabling its RPM.

IPU7 hardware has constraints that the PSYS device must be powered off
before ISYS, otherwise it will cause machine check error.

Cc: Stable@vger.kernel.org
Fixes: b7fe4c0019b1 ("media: staging/ipu7: add Intel IPU7 PCI device driver")
Signed-off-by: Bingbu Cao <bingbu.cao@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/staging/media/ipu7/ipu7.c

index 6c8c3eea44acb2d3e0564cc2cfa8e6b5abba588a..fa5a1867626f84f201dc79e186aeaaa8bfb52061 100644 (file)
@@ -2620,7 +2620,7 @@ out_ipu_bus_del_devices:
        if (!IS_ERR_OR_NULL(isp->isys) && !IS_ERR_OR_NULL(isp->isys->mmu))
                ipu7_mmu_cleanup(isp->isys->mmu);
        if (!IS_ERR_OR_NULL(isp->psys))
-               pm_runtime_put(&isp->psys->auxdev.dev);
+               pm_runtime_put_sync(&isp->psys->auxdev.dev);
        ipu7_bus_del_devices(pdev);
        release_firmware(isp->cpd_fw);
 buttress_exit: