accel/ivpu: Add debug Kconfig option
authorMaciej Falkowski <maciej.falkowski@linux.intel.com>
Thu, 17 Oct 2024 14:58:15 +0000 (16:58 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 30 Oct 2024 09:23:49 +0000 (10:23 +0100)
Add CONFIG_DRM_ACCEL_IVPU_DEBUG option that:
 - Adds -DDEBUG that enables printk regardless of the kernel config
 - Enables unsafe module params (that are now disabled by default)

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/20241017145817.121590-10-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/Kconfig
drivers/accel/ivpu/Makefile
drivers/accel/ivpu/ivpu_drv.c
drivers/accel/ivpu/ivpu_fw.c
drivers/accel/ivpu/ivpu_pm.c

index e4d418b44626ed55d7f66bb0c6ccfd51835b9898..9e055b5ce03d22b89b79233b55caed24dfd00ead 100644 (file)
@@ -16,3 +16,12 @@ config DRM_ACCEL_IVPU
          and Deep Learning applications.
 
          If "M" is selected, the module will be called intel_vpu.
+
+config DRM_ACCEL_IVPU_DEBUG
+       bool "Intel NPU debug mode"
+       depends on DRM_ACCEL_IVPU
+       help
+         Choose this option to enable additional
+         debug features for the Intel NPU driver:
+         - Always print debug messages regardless of dyndbg config,
+         - Enable unsafe module params.
index e73937c86d9adc987f3fee970235831248ce3ca1..1029e0bab0615f359ebf5d78c0d4b0b22815a705 100644 (file)
@@ -24,4 +24,6 @@ intel_vpu-$(CONFIG_DEV_COREDUMP) += ivpu_coredump.o
 
 obj-$(CONFIG_DRM_ACCEL_IVPU) += intel_vpu.o
 
+subdir-ccflags-$(CONFIG_DRM_ACCEL_IVPU_DEBUG) += -DDEBUG
+
 CFLAGS_ivpu_trace_points.o = -I$(src)
index f5a8d93fe2a57b8c15ca61d1228588690b693c09..ca2bf47ce2484a8e7ecca0f936e5a3438b22ff81 100644 (file)
@@ -43,8 +43,10 @@ module_param_named(dbg_mask, ivpu_dbg_mask, int, 0644);
 MODULE_PARM_DESC(dbg_mask, "Driver debug mask. See IVPU_DBG_* macros.");
 
 int ivpu_test_mode;
+#if IS_ENABLED(CONFIG_DRM_ACCEL_IVPU_DEBUG)
 module_param_named_unsafe(test_mode, ivpu_test_mode, int, 0644);
 MODULE_PARM_DESC(test_mode, "Test mode mask. See IVPU_TEST_MODE_* macros.");
+#endif
 
 u8 ivpu_pll_min_ratio;
 module_param_named(pll_min_ratio, ivpu_pll_min_ratio, byte, 0644);
index be367465e7df4c40f5c2d3c9d5c76ed8e427dddf..d358cf0b0f97207355e449817a71456ab521ce7a 100644 (file)
 #define IVPU_FOCUS_PRESENT_TIMER_MS 1000
 
 static char *ivpu_firmware;
+#if IS_ENABLED(CONFIG_DRM_ACCEL_IVPU_DEBUG)
 module_param_named_unsafe(firmware, ivpu_firmware, charp, 0644);
 MODULE_PARM_DESC(firmware, "NPU firmware binary in /lib/firmware/..");
+#endif
 
 static struct {
        int gen;
index e567df79a6129cb2c4429f97446f392aaccadc82..dbc0711e28d138d5a6d1617e58abb6d8163eca07 100644 (file)
 #include "vpu_boot_api.h"
 
 static bool ivpu_disable_recovery;
+#if IS_ENABLED(CONFIG_DRM_ACCEL_IVPU_DEBUG)
 module_param_named_unsafe(disable_recovery, ivpu_disable_recovery, bool, 0644);
 MODULE_PARM_DESC(disable_recovery, "Disables recovery when NPU hang is detected");
+#endif
 
 static unsigned long ivpu_tdr_timeout_ms;
 module_param_named(tdr_timeout_ms, ivpu_tdr_timeout_ms, ulong, 0644);