accel/ivpu: Add disable clock relinquish workaround for NVL-A0
Subsystems (3)
Karol Wachowski
maintainerPATCH 1/1 accel/ivpu: Add disable clock relinquish workaround for NVL-A0
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.
--- drivers/accel/ivpu/ivpu_drv.h | 1 + drivers/accel/ivpu/ivpu_hw.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-)
drivers/accel/ivpu/ivpu_drv.h +1 -0
@@ -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
drivers/accel/ivpu/ivpu_hw.c +4 -2
@@ -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 )
Signature · 1 line
2.43.0
Quoted 30 lines · Karol Wachowski
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(-)drivers/accel/ivpu/ivpu_drv.h +1
-0@@ -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 2drivers/accel/ivpu/ivpu_hw.c +0
-0
drivers/accel/ivpu/ivpu_hw.c static void wa_init(struct ivpu_device *vdev) · line 76
Quoted 9 lines
drivers/accel/ivpu/ivpu_hw.c +4
-2@@ -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 ))
Quoted 3 lines
drivers/accel/ivpu/ivpu_hw.c +0
-0vdev->wa.disable_clock_relinquish = true;if (ivpu_test_mode &IVPU_TEST_MODE_CLK_RELINQ_ENABLE )
Quoted 33 lines · Lizhi Hou
Quoted 31 lines · Karol Wachowski
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(-)drivers/accel/ivpu/ renamed from drivers/accel/ivpu/ivpu_drv.h +0
-0
ivpu_drv.h
index5b34b6f50e69..f1b6155065ff100644drivers/accel/ivpu/ivpu_drv.h +1
-0@@ -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 2drivers/accel/ivpu/ivpu_hw.c +0
-0@@ -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=
Quoted 8 lines
Quoted 7 lines
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]>
Thank you, applied to drm-misc-fixes.
Karol
Quoted 3 lines
Quoted 2 lines
vdev->wa.disable_clock_relinquish= true; if (ivpu_test_mode&IVPU_TEST_MODE_CLK_RELINQ_ENABLE)