]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
accel/ivpu: Add sched_mode module param
authorWachowski, Karol <karol.wachowski@intel.com>
Mon, 13 May 2024 12:04:21 +0000 (14:04 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 15 May 2024 05:41:44 +0000 (07:41 +0200)
This param will be used to enable/disable HWS (hardware scheduler).
The HWS is a FW side feature and may not be available on all
HW generations and FW versions.

Signed-off-by: Wachowski, Karol <karol.wachowski@intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240513120431.3187212-3-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_drv.c
drivers/accel/ivpu/ivpu_drv.h
drivers/accel/ivpu/ivpu_hw.h
drivers/accel/ivpu/ivpu_hw_37xx.c
drivers/accel/ivpu/ivpu_hw_40xx.c

index 51d3f1a55d024cf5600ebd833bdf8ef5ee0627c1..8d80052182f0194aa13a9253fd99f8df037edcf5 100644 (file)
@@ -51,6 +51,10 @@ u8 ivpu_pll_max_ratio = U8_MAX;
 module_param_named(pll_max_ratio, ivpu_pll_max_ratio, byte, 0644);
 MODULE_PARM_DESC(pll_max_ratio, "Maximum PLL ratio used to set NPU frequency");
 
+int ivpu_sched_mode;
+module_param_named(sched_mode, ivpu_sched_mode, int, 0444);
+MODULE_PARM_DESC(sched_mode, "Scheduler mode: 0 - Default scheduler, 1 - Force HW scheduler");
+
 bool ivpu_disable_mmu_cont_pages;
 module_param_named(disable_mmu_cont_pages, ivpu_disable_mmu_cont_pages, bool, 0644);
 MODULE_PARM_DESC(disable_mmu_cont_pages, "Disable MMU contiguous pages optimization");
index bb4374d0eaecc9a25d2f6b28056aa5d8d762bd15..71b87455e22b0bf2f4a71f5bb314c8ae9c2090d2 100644 (file)
@@ -158,6 +158,7 @@ struct ivpu_file_priv {
 extern int ivpu_dbg_mask;
 extern u8 ivpu_pll_min_ratio;
 extern u8 ivpu_pll_max_ratio;
+extern int ivpu_sched_mode;
 extern bool ivpu_disable_mmu_cont_pages;
 
 #define IVPU_TEST_MODE_FW_TEST            BIT(0)
index 094c659d2800b127bf1c616e34973673c1f55061..d247a2e9949611e0295c0e5fed6b40ac13b76d09 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * Copyright (C) 2020-2023 Intel Corporation
+ * Copyright (C) 2020-2024 Intel Corporation
  */
 
 #ifndef __IVPU_HW_H__
@@ -59,6 +59,7 @@ struct ivpu_hw_info {
                u32 profiling_freq;
        } pll;
        u32 tile_fuse;
+       u32 sched_mode;
        u32 sku;
        u16 config;
        int dma_bits;
index bd25e2d9fb0f45a35d9ef9ca7ca16f14aa151521..ce664b6515aa0e34cde3b8a2f0abba95b9f0c091 100644 (file)
@@ -589,6 +589,7 @@ static int ivpu_hw_37xx_info_init(struct ivpu_device *vdev)
        hw->tile_fuse = TILE_FUSE_ENABLE_BOTH;
        hw->sku = TILE_SKU_BOTH;
        hw->config = WP_CONFIG_2_TILE_4_3_RATIO;
+       hw->sched_mode = ivpu_sched_mode;
 
        ivpu_pll_init_frequency_ratios(vdev);
 
index b0b88d4c89264a0a95f18edc9b140d720c89279d..186cd87079c22b64ab5f3cd552c3f76ebfcce90c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (C) 2020-2023 Intel Corporation
+ * Copyright (C) 2020-2024 Intel Corporation
  */
 
 #include "ivpu_drv.h"
@@ -724,6 +724,7 @@ static int ivpu_hw_40xx_info_init(struct ivpu_device *vdev)
        else
                ivpu_dbg(vdev, MISC, "Fuse: All %d tiles enabled\n", TILE_MAX_NUM);
 
+       hw->sched_mode = ivpu_sched_mode;
        hw->tile_fuse = tile_disable;
        hw->pll.profiling_freq = PLL_PROFILING_FREQ_DEFAULT;