video: rockchip: rga3: "reg" debug log add iommu readback register printing

Update driver version to 1.3.10

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I79b641e8b41d43c451988f278596f229e9e0fd2c
This commit is contained in:
Yu Qiaowei
2025-05-29 10:47:49 +08:00
committed by Tao Huang
parent 8bfa454c23
commit 0e7abd67ec
5 changed files with 50 additions and 1 deletions

View File

@@ -8,6 +8,7 @@
#define RGA2_CSC_REG_BASE 0x060
#define RGA2_OTHER_REG_BASE 0x090
#define RGA2_CMD_REG_BASE 0x100
#define RGA2_IOMMU_REG_BASE 0xf00
/* sys reg */
#define RGA2_SYS_CTRL 0x000

View File

@@ -6,6 +6,7 @@
#define RGA3_SYS_REG_BASE 0x000
#define RGA3_CMD_REG_BASE 0x100
#define RGA3_IOMMU_REG_BASE 0xf00
/* sys reg */
#define RGA3_SYS_CTRL 0x000

View File

@@ -88,7 +88,7 @@
#define DRIVER_MAJOR_VERISON 1
#define DRIVER_MINOR_VERSION 3
#define DRIVER_REVISION_VERSION 9
#define DRIVER_REVISION_VERSION 10
#define DRIVER_PATCH_VERSION
#define DRIVER_VERSION (STR(DRIVER_MAJOR_VERISON) "." STR(DRIVER_MINOR_VERSION) \

View File

@@ -3035,6 +3035,27 @@ static void rga2_dump_read_back_cmd_reg(struct rga_job *job, struct rga_schedule
cmd_reg[2 + i * 4], cmd_reg[3 + i * 4]);
}
static void rga2_dump_read_back_iommu_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
{
int i;
unsigned long flags;
uint32_t cmd_reg[12] = {0};
spin_lock_irqsave(&scheduler->irq_lock, flags);
for (i = 0; i < 12; i++)
cmd_reg[i] = rga_read(RGA2_IOMMU_REG_BASE + i * 4, scheduler);
spin_unlock_irqrestore(&scheduler->irq_lock, flags);
rga_job_log(job, "IOMMU_READ_BACK_REG\n");
for (i = 0; i < 3; i++)
rga_job_log(job, "0x%04x : %.8x %.8x %.8x %.8x\n",
RGA2_IOMMU_REG_BASE + i * 0x10,
cmd_reg[0 + i * 4], cmd_reg[1 + i * 4],
cmd_reg[2 + i * 4], cmd_reg[3 + i * 4]);
}
static void rga2_dump_read_back_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
{
rga2_dump_read_back_sys_reg(job, scheduler);
@@ -3042,6 +3063,7 @@ static void rga2_dump_read_back_reg(struct rga_job *job, struct rga_scheduler_t
if (scheduler->data->version > 0)
rga2_dump_read_back_other_reg(job, scheduler);
rga2_dump_read_back_cmd_reg(job, scheduler);
rga2_dump_read_back_iommu_reg(job, scheduler);
}
static void rga2_set_pre_intr_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
@@ -3132,6 +3154,7 @@ static int rga2_set_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
RGA2_CMD_REG_BASE + i * 0x10,
cmd[0 + i * 4], cmd[1 + i * 4],
cmd[2 + i * 4], cmd[3 + i * 4]);
rga2_dump_read_back_iommu_reg(scheduler->running_job, scheduler);
}
spin_lock_irqsave(&scheduler->irq_lock, flags);

View File

@@ -2089,6 +2089,27 @@ static void rga3_dump_read_back_reg(struct rga_job *job, struct rga_scheduler_t
cmd_reg[2 + i * 4], cmd_reg[3 + i * 4]);
}
static void rga3_dump_read_back_iommu_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
{
int i;
unsigned long flags;
uint32_t cmd_reg[12] = {0};
spin_lock_irqsave(&scheduler->irq_lock, flags);
for (i = 0; i < 12; i++)
cmd_reg[i] = rga_read(RGA3_IOMMU_REG_BASE + i * 4, scheduler);
spin_unlock_irqrestore(&scheduler->irq_lock, flags);
rga_job_log(job, "IOMMU_READ_BACK_REG\n");
for (i = 0; i < 3; i++)
rga_job_log(job, "0x%04x : %.8x %.8x %.8x %.8x\n",
RGA3_IOMMU_REG_BASE + i * 0x10,
cmd_reg[0 + i * 4], cmd_reg[1 + i * 4],
cmd_reg[2 + i * 4], cmd_reg[3 + i * 4]);
}
static int rga3_set_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
{
int i;
@@ -2117,6 +2138,8 @@ static int rga3_set_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
RGA3_CMD_REG_BASE + i * 0x10,
cmd[0 + i * 4], cmd[1 + i * 4],
cmd[2 + i * 4], cmd[3 + i * 4]);
rga3_dump_read_back_iommu_reg(job, scheduler);
}
/* All CMD finish int */
@@ -2151,6 +2174,7 @@ static int rga3_set_reg(struct rga_job *job, struct rga_scheduler_t *scheduler)
if (DEBUGGER_EN(REG)) {
rga3_dump_read_back_sys_reg(job, scheduler);
rga3_dump_read_back_reg(job, scheduler);
rga3_dump_read_back_iommu_reg(job, scheduler);
}
return 0;