accel/ivpu: Fix WARN in ivpu_ipc_send_receive_internal()
authorJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Tue, 10 Dec 2024 13:09:39 +0000 (14:09 +0100)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Thu, 19 Dec 2024 12:16:59 +0000 (13:16 +0100)
Move pm_runtime_set_active() to ivpu_pm_init() so when
ivpu_ipc_send_receive_internal() is executed before ivpu_pm_enable()
it already has correct runtime state, even if last resume was
not successful.

Fixes: 8ed520ff4682 ("accel/ivpu: Move set autosuspend delay to HW specific code")
Cc: stable@vger.kernel.org # v6.7+
Reviewed-by: Karol Wachowski <karol.wachowski@intel.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241210130939.1575610-4-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_pm.c

index dbc0711e28d138d5a6d1617e58abb6d8163eca07..949f4233946c637a563d83e79d83f14e8a9d54aa 100644 (file)
@@ -378,6 +378,7 @@ void ivpu_pm_init(struct ivpu_device *vdev)
 
        pm_runtime_use_autosuspend(dev);
        pm_runtime_set_autosuspend_delay(dev, delay);
+       pm_runtime_set_active(dev);
 
        ivpu_dbg(vdev, PM, "Autosuspend delay = %d\n", delay);
 }
@@ -392,7 +393,6 @@ void ivpu_pm_enable(struct ivpu_device *vdev)
 {
        struct device *dev = vdev->drm.dev;
 
-       pm_runtime_set_active(dev);
        pm_runtime_allow(dev);
        pm_runtime_mark_last_busy(dev);
        pm_runtime_put_autosuspend(dev);