Commit 8b5cec3c authored by Karol Wachowski's avatar Karol Wachowski Committed by Stanislaw Gruszka

accel/ivpu: Change test_mode module param to bitmask

Change meaning of test_mode module parameter from integer value
to bitmask allowing setting different test features with corresponding
bits.
Signed-off-by: default avatarKarol Wachowski <karol.wachowski@linux.intel.com>
Reviewed-by: default avatarStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Reviewed-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: default avatarStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231028133415.1169975-7-stanislaw.gruszka@linux.intel.com
parent 61ab485f
...@@ -39,7 +39,7 @@ MODULE_PARM_DESC(dbg_mask, "Driver debug mask. See IVPU_DBG_* macros."); ...@@ -39,7 +39,7 @@ MODULE_PARM_DESC(dbg_mask, "Driver debug mask. See IVPU_DBG_* macros.");
int ivpu_test_mode; int ivpu_test_mode;
module_param_named_unsafe(test_mode, ivpu_test_mode, int, 0644); module_param_named_unsafe(test_mode, ivpu_test_mode, int, 0644);
MODULE_PARM_DESC(test_mode, "Test mode: 0 - disabled , 1 - fw unit test, 2 - null hw, 3 - null submission"); MODULE_PARM_DESC(test_mode, "Test mode mask. See IVPU_TEST_MODE_* macros.");
u8 ivpu_pll_min_ratio; u8 ivpu_pll_min_ratio;
module_param_named(pll_min_ratio, ivpu_pll_min_ratio, byte, 0644); module_param_named(pll_min_ratio, ivpu_pll_min_ratio, byte, 0644);
...@@ -315,7 +315,7 @@ static int ivpu_wait_for_ready(struct ivpu_device *vdev) ...@@ -315,7 +315,7 @@ static int ivpu_wait_for_ready(struct ivpu_device *vdev)
unsigned long timeout; unsigned long timeout;
int ret; int ret;
if (ivpu_test_mode == IVPU_TEST_MODE_FW_TEST) if (ivpu_test_mode & IVPU_TEST_MODE_FW_TEST)
return 0; return 0;
ivpu_ipc_consumer_add(vdev, &cons, IVPU_IPC_CHAN_BOOT_MSG); ivpu_ipc_consumer_add(vdev, &cons, IVPU_IPC_CHAN_BOOT_MSG);
......
...@@ -147,10 +147,9 @@ extern u8 ivpu_pll_min_ratio; ...@@ -147,10 +147,9 @@ extern u8 ivpu_pll_min_ratio;
extern u8 ivpu_pll_max_ratio; extern u8 ivpu_pll_max_ratio;
extern bool ivpu_disable_mmu_cont_pages; extern bool ivpu_disable_mmu_cont_pages;
#define IVPU_TEST_MODE_DISABLED 0 #define IVPU_TEST_MODE_FW_TEST BIT(0)
#define IVPU_TEST_MODE_FW_TEST 1 #define IVPU_TEST_MODE_NULL_HW BIT(1)
#define IVPU_TEST_MODE_NULL_HW 2 #define IVPU_TEST_MODE_NULL_SUBMISSION BIT(2)
#define IVPU_TEST_MODE_NULL_SUBMISSION 3
extern int ivpu_test_mode; extern int ivpu_test_mode;
struct ivpu_file_priv *ivpu_file_priv_get(struct ivpu_file_priv *file_priv); struct ivpu_file_priv *ivpu_file_priv_get(struct ivpu_file_priv *file_priv);
......
...@@ -196,7 +196,7 @@ static int ivpu_cmdq_push_job(struct ivpu_cmdq *cmdq, struct ivpu_job *job) ...@@ -196,7 +196,7 @@ static int ivpu_cmdq_push_job(struct ivpu_cmdq *cmdq, struct ivpu_job *job)
entry->batch_buf_addr = job->cmd_buf_vpu_addr; entry->batch_buf_addr = job->cmd_buf_vpu_addr;
entry->job_id = job->job_id; entry->job_id = job->job_id;
entry->flags = 0; entry->flags = 0;
if (unlikely(ivpu_test_mode == IVPU_TEST_MODE_NULL_SUBMISSION)) if (unlikely(ivpu_test_mode & IVPU_TEST_MODE_NULL_SUBMISSION))
entry->flags = VPU_JOB_FLAGS_NULL_SUBMISSION_MASK; entry->flags = VPU_JOB_FLAGS_NULL_SUBMISSION_MASK;
wmb(); /* Ensure that tail is updated after filling entry */ wmb(); /* Ensure that tail is updated after filling entry */
header->tail = next_entry; header->tail = next_entry;
...@@ -404,7 +404,7 @@ static int ivpu_direct_job_submission(struct ivpu_job *job) ...@@ -404,7 +404,7 @@ static int ivpu_direct_job_submission(struct ivpu_job *job)
job->job_id, job->cmd_buf_vpu_addr, file_priv->ctx.id, job->job_id, job->cmd_buf_vpu_addr, file_priv->ctx.id,
job->engine_idx, cmdq->jobq->header.tail); job->engine_idx, cmdq->jobq->header.tail);
if (ivpu_test_mode == IVPU_TEST_MODE_NULL_HW) { if (ivpu_test_mode & IVPU_TEST_MODE_NULL_HW) {
ivpu_job_done(vdev, job->job_id, VPU_JSM_STATUS_SUCCESS); ivpu_job_done(vdev, job->job_id, VPU_JSM_STATUS_SUCCESS);
cmdq->jobq->header.head = cmdq->jobq->header.tail; cmdq->jobq->header.head = cmdq->jobq->header.tail;
wmb(); /* Flush WC buffer for jobq header */ wmb(); /* Flush WC buffer for jobq header */
......
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