Commit 41ca33d8 authored by Wachowski, Karol's avatar Wachowski, Karol Committed by Jacek Lawrynowicz

accel/ivpu: Add sched_mode module param

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: default avatarWachowski, Karol <karol.wachowski@intel.com>
Signed-off-by: default avatarJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240513120431.3187212-3-jacek.lawrynowicz@linux.intel.com
parent 9fbfe981
...@@ -51,6 +51,10 @@ u8 ivpu_pll_max_ratio = U8_MAX; ...@@ -51,6 +51,10 @@ u8 ivpu_pll_max_ratio = U8_MAX;
module_param_named(pll_max_ratio, ivpu_pll_max_ratio, byte, 0644); 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"); 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; bool ivpu_disable_mmu_cont_pages;
module_param_named(disable_mmu_cont_pages, ivpu_disable_mmu_cont_pages, bool, 0644); 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"); MODULE_PARM_DESC(disable_mmu_cont_pages, "Disable MMU contiguous pages optimization");
......
...@@ -158,6 +158,7 @@ struct ivpu_file_priv { ...@@ -158,6 +158,7 @@ struct ivpu_file_priv {
extern int ivpu_dbg_mask; extern int ivpu_dbg_mask;
extern u8 ivpu_pll_min_ratio; extern u8 ivpu_pll_min_ratio;
extern u8 ivpu_pll_max_ratio; extern u8 ivpu_pll_max_ratio;
extern int ivpu_sched_mode;
extern bool ivpu_disable_mmu_cont_pages; extern bool ivpu_disable_mmu_cont_pages;
#define IVPU_TEST_MODE_FW_TEST BIT(0) #define IVPU_TEST_MODE_FW_TEST BIT(0)
......
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* Copyright (C) 2020-2023 Intel Corporation * Copyright (C) 2020-2024 Intel Corporation
*/ */
#ifndef __IVPU_HW_H__ #ifndef __IVPU_HW_H__
...@@ -59,6 +59,7 @@ struct ivpu_hw_info { ...@@ -59,6 +59,7 @@ struct ivpu_hw_info {
u32 profiling_freq; u32 profiling_freq;
} pll; } pll;
u32 tile_fuse; u32 tile_fuse;
u32 sched_mode;
u32 sku; u32 sku;
u16 config; u16 config;
int dma_bits; int dma_bits;
......
...@@ -589,6 +589,7 @@ static int ivpu_hw_37xx_info_init(struct ivpu_device *vdev) ...@@ -589,6 +589,7 @@ static int ivpu_hw_37xx_info_init(struct ivpu_device *vdev)
hw->tile_fuse = TILE_FUSE_ENABLE_BOTH; hw->tile_fuse = TILE_FUSE_ENABLE_BOTH;
hw->sku = TILE_SKU_BOTH; hw->sku = TILE_SKU_BOTH;
hw->config = WP_CONFIG_2_TILE_4_3_RATIO; hw->config = WP_CONFIG_2_TILE_4_3_RATIO;
hw->sched_mode = ivpu_sched_mode;
ivpu_pll_init_frequency_ratios(vdev); ivpu_pll_init_frequency_ratios(vdev);
......
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /*
* Copyright (C) 2020-2023 Intel Corporation * Copyright (C) 2020-2024 Intel Corporation
*/ */
#include "ivpu_drv.h" #include "ivpu_drv.h"
...@@ -724,6 +724,7 @@ static int ivpu_hw_40xx_info_init(struct ivpu_device *vdev) ...@@ -724,6 +724,7 @@ static int ivpu_hw_40xx_info_init(struct ivpu_device *vdev)
else else
ivpu_dbg(vdev, MISC, "Fuse: All %d tiles enabled\n", TILE_MAX_NUM); 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->tile_fuse = tile_disable;
hw->pll.profiling_freq = PLL_PROFILING_FREQ_DEFAULT; hw->pll.profiling_freq = PLL_PROFILING_FREQ_DEFAULT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment