summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_r1_wb.c2
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c9
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_util.c2
3 files changed, 8 insertions, 5 deletions
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_r1_wb.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_r1_wb.c
index 2cf22ae6a3ed..e0f44be222d6 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_r1_wb.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_r1_wb.c
@@ -316,7 +316,7 @@ static int sde_mdp_wb_wait4comp(struct sde_mdp_ctl *ctl, void *arg)
{
struct sde_mdp_writeback_ctx *ctx;
int rc = 0;
- u64 rot_time;
+ u64 rot_time = 0;
u32 status, mask, isr;
ctx = (struct sde_mdp_writeback_ctx *) ctl->priv_data;
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
index 9b08c4fe0989..13d593c46824 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
@@ -1566,8 +1566,8 @@ static int sde_hw_rotator_kickoff(struct sde_rot_hw_resource *hw,
if (!ctx) {
SDEROT_ERR("Cannot locate rotator ctx from sesison id:%d\n",
entry->item.session_id);
+ return -EINVAL;
}
- WARN_ON(ctx == NULL);
ret = sde_smmu_ctrl(1);
if (IS_ERR_VALUE(ret)) {
@@ -1609,8 +1609,8 @@ static int sde_hw_rotator_wait4done(struct sde_rot_hw_resource *hw,
if (!ctx) {
SDEROT_ERR("Cannot locate rotator ctx from sesison id:%d\n",
entry->item.session_id);
+ return -EINVAL;
}
- WARN_ON(ctx == NULL);
ret = rot->ops.wait_rotator_done(ctx, ctx->q_id, 0);
@@ -1745,8 +1745,10 @@ static irqreturn_t sde_hw_rotator_regdmairq_handler(int irq, void *ptr)
q_id = ROT_QUEUE_LOW_PRIORITY;
ts = (ts >> SDE_REGDMA_SWTS_SHIFT) &
SDE_REGDMA_SWTS_MASK;
+ } else {
+ SDEROT_ERR("unknown ISR status: isr=0x%X\n", isr);
+ goto done_isr_handle;
}
-
ctx = rot->rotCtx[q_id][ts & SDE_HW_ROT_REGDMA_SEG_MASK];
/*
@@ -1766,6 +1768,7 @@ static irqreturn_t sde_hw_rotator_regdmairq_handler(int irq, void *ptr)
[ts & SDE_HW_ROT_REGDMA_SEG_MASK];
};
+done_isr_handle:
spin_unlock(&rot->rotisr_lock);
ret = IRQ_HANDLED;
} else if (isr & REGDMA_INT_ERR_MASK) {
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_util.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_util.c
index 44f7af089ee9..eed177ea5bab 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_util.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_util.c
@@ -586,7 +586,7 @@ void sde_rot_ubwc_data_calc_offset(struct sde_mdp_data *data, u16 x, u16 y,
struct sde_mdp_plane_sizes *ps, struct sde_mdp_format_params *fmt)
{
u16 macro_w, micro_w, micro_h;
- u32 offset;
+ u32 offset = 0;
int ret;
ret = sde_rot_get_ubwc_micro_dim(fmt->format, &micro_w, &micro_h);