On 3/23/26 02:50, Karol Wachowski wrote:
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: <[email protected]> # v6.19+

Signed-off-by: Karol Wachowski <[email protected]>
---
  drivers/accel/ivpu/ivpu_drv.h | 1 +
  drivers/accel/ivpu/ivpu_hw.c  | 6 ++++--
  2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/accel/ivpu/ivpu_drv.h b/drivers/accel/ivpu/ivpu_drv.h
index 5b34b6f50e69..f1b6155065ff 100644
--- a/drivers/accel/ivpu/ivpu_drv.h
+++ b/drivers/accel/ivpu/ivpu_drv.h
@@ -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
diff --git a/drivers/accel/ivpu/ivpu_hw.c b/drivers/accel/ivpu/ivpu_hw.c
index d69cd0d93569..d4a9bcda4100 100644
--- a/drivers/accel/ivpu/ivpu_hw.c
+++ b/drivers/accel/ivpu/ivpu_hw.c
@@ -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))
Reviewed-by: Lizhi.hou <[email protected]>
                vdev->wa.disable_clock_relinquish = true;
if (ivpu_test_mode & IVPU_TEST_MODE_CLK_RELINQ_ENABLE)

Reply via email to