]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
accel/ivpu: Add test mode flag for disabling timeouts
authorMaciej Falkowski <maciej.falkowski@linux.intel.com>
Tue, 11 Jun 2024 12:04:27 +0000 (14:04 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Fri, 14 Jun 2024 07:14:36 +0000 (09:14 +0200)
Add new test mode flag that will disable all timeouts
defined in timeout fields of struct ivpu_device.
Remove also reschedule_suspend field as it is unused.

Signed-off-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240611120433.1012423-11-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_drv.h
drivers/accel/ivpu/ivpu_hw.c

index d340bd8d66eb5b3668d763f87d9ef6076b0a0501..63f13b697eed719367c57f699041fd7d2b9c8337 100644 (file)
@@ -150,7 +150,6 @@ struct ivpu_device {
                int boot;
                int jsm;
                int tdr;
-               int reschedule_suspend;
                int autosuspend;
                int d0i3_entry_msg;
        } timeout;
@@ -188,6 +187,7 @@ extern bool ivpu_force_snoop;
 #define IVPU_TEST_MODE_D0I3_MSG_ENABLE    BIT(5)
 #define IVPU_TEST_MODE_PREEMPTION_DISABLE BIT(6)
 #define IVPU_TEST_MODE_HWS_EXTRA_EVENTS          BIT(7)
+#define IVPU_TEST_MODE_DISABLE_TIMEOUTS   BIT(8)
 extern int ivpu_test_mode;
 
 struct ivpu_file_priv *ivpu_file_priv_get(struct ivpu_file_priv *file_priv);
index 09398a17c710268663dc69f379c94cbe37958008..a4a13ac670475f905d249901f4f1fbb10efba28e 100644 (file)
@@ -77,25 +77,28 @@ static void wa_init(struct ivpu_device *vdev)
 
 static void timeouts_init(struct ivpu_device *vdev)
 {
-       if (ivpu_is_fpga(vdev)) {
+       if (ivpu_test_mode & IVPU_TEST_MODE_DISABLE_TIMEOUTS) {
+               vdev->timeout.boot = -1;
+               vdev->timeout.jsm = -1;
+               vdev->timeout.tdr = -1;
+               vdev->timeout.autosuspend = -1;
+               vdev->timeout.d0i3_entry_msg = -1;
+       } else if (ivpu_is_fpga(vdev)) {
                vdev->timeout.boot = 100000;
                vdev->timeout.jsm = 50000;
                vdev->timeout.tdr = 2000000;
-               vdev->timeout.reschedule_suspend = 1000;
                vdev->timeout.autosuspend = -1;
                vdev->timeout.d0i3_entry_msg = 500;
        } else if (ivpu_is_simics(vdev)) {
                vdev->timeout.boot = 50;
                vdev->timeout.jsm = 500;
                vdev->timeout.tdr = 10000;
-               vdev->timeout.reschedule_suspend = 10;
                vdev->timeout.autosuspend = -1;
                vdev->timeout.d0i3_entry_msg = 100;
        } else {
                vdev->timeout.boot = 1000;
                vdev->timeout.jsm = 500;
                vdev->timeout.tdr = 2000;
-               vdev->timeout.reschedule_suspend = 10;
                vdev->timeout.autosuspend = 10;
                vdev->timeout.d0i3_entry_msg = 5;
        }