]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
accel/ivpu: Add disable clock relinquish workaround for NVL-A0
authorKarol Wachowski <karol.wachowski@linux.intel.com>
Mon, 23 Mar 2026 09:50:29 +0000 (10:50 +0100)
committerKarol Wachowski <karol.wachowski@linux.intel.com>
Tue, 24 Mar 2026 08:29:28 +0000 (09:29 +0100)
Turn on disable clock relinquish workaround for Nova Lake A0.
Without this workaround NPU may not power off correctly after
inference, leading to unexpected system behavior.

Fixes: 550f4dd2cedd ("accel/ivpu: Add support for Nova Lake's NPU")
Cc: <stable@vger.kernel.org> # v6.19+
Reviewed-by: Lizhi.hou <lizhi.hou@amd.com>
Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Link: https://patch.msgid.link/20260323095029.64613-1-karol.wachowski@linux.intel.com
drivers/accel/ivpu/ivpu_drv.h
drivers/accel/ivpu/ivpu_hw.c

index 5b34b6f50e696aee8a265dde159c394055edb330..f1b6155065ff3a34dbe787ed430ed92f72a913c3 100644 (file)
@@ -35,6 +35,7 @@
 #define IVPU_HW_IP_60XX 60
 
 #define IVPU_HW_IP_REV_LNL_B0 4
+#define IVPU_HW_IP_REV_NVL_A0 0
 
 #define IVPU_HW_BTRS_MTL 1
 #define IVPU_HW_BTRS_LNL 2
index d69cd0d935694aa6749163988516cd7e8545ac2c..d4a9bcda4100fb81ac1630d6ec8bf9b83c296deb 100644 (file)
@@ -70,8 +70,10 @@ static void wa_init(struct ivpu_device *vdev)
        if (ivpu_hw_btrs_gen(vdev) == IVPU_HW_BTRS_MTL)
                vdev->wa.interrupt_clear_with_0 = ivpu_hw_btrs_irqs_clear_with_0_mtl(vdev);
 
-       if (ivpu_device_id(vdev) == PCI_DEVICE_ID_LNL &&
-           ivpu_revision(vdev) < IVPU_HW_IP_REV_LNL_B0)
+       if ((ivpu_device_id(vdev) == PCI_DEVICE_ID_LNL &&
+            ivpu_revision(vdev) < IVPU_HW_IP_REV_LNL_B0) ||
+           (ivpu_device_id(vdev) == PCI_DEVICE_ID_NVL &&
+            ivpu_revision(vdev) == IVPU_HW_IP_REV_NVL_A0))
                vdev->wa.disable_clock_relinquish = true;
 
        if (ivpu_test_mode & IVPU_TEST_MODE_CLK_RELINQ_ENABLE)