Loading drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +2 −1 Original line number Diff line number Diff line Loading @@ -1502,7 +1502,8 @@ static void sde_hw_rotator_free_rotctx(struct sde_hw_rotator *rot, ctx->q_id, ctx->timestamp, atomic_read(&ctx->hwres->num_active)); rot->rotCtx[ctx->q_id][sde_hw_rotator_get_regdma_ctxidx(ctx)] = NULL; /* Clear rotator context from lookup purpose */ sde_hw_rotator_clr_ctx(ctx); devm_kfree(&rot->pdev->dev, ctx); } Loading drivers/media/platform/msm/sde/rotator/sde_rotator_r3_internal.h +22 −0 Original line number Diff line number Diff line Loading @@ -345,10 +345,32 @@ static inline void sde_hw_rotator_put_ctx(struct sde_hw_rotator_context *ctx) { struct sde_hw_rotator *rot = ctx->rot; u32 idx = sde_hw_rotator_get_regdma_ctxidx(ctx); unsigned long flags; spin_lock_irqsave(&rot->rotisr_lock, flags); rot->rotCtx[ctx->q_id][idx] = ctx; spin_unlock_irqrestore(&rot->rotisr_lock, flags); SDEROT_DBG("rotCtx[%d][%d] <== ctx:%p | session-id:%d\n", ctx->q_id, idx, ctx, ctx->session_id); } /** * sde_hw_rotator_clr_ctx(): Clearing rotator context according to its * timestamp. */ static inline void sde_hw_rotator_clr_ctx(struct sde_hw_rotator_context *ctx) { struct sde_hw_rotator *rot = ctx->rot; u32 idx = sde_hw_rotator_get_regdma_ctxidx(ctx); unsigned long flags; spin_lock_irqsave(&rot->rotisr_lock, flags); rot->rotCtx[ctx->q_id][idx] = NULL; spin_unlock_irqrestore(&rot->rotisr_lock, flags); SDEROT_DBG("rotCtx[%d][%d] <== null | session-id:%d\n", ctx->q_id, idx, ctx->session_id); } #endif /*_SDE_ROTATOR_R3_INTERNAL_H */ Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +2 −1 Original line number Diff line number Diff line Loading @@ -1502,7 +1502,8 @@ static void sde_hw_rotator_free_rotctx(struct sde_hw_rotator *rot, ctx->q_id, ctx->timestamp, atomic_read(&ctx->hwres->num_active)); rot->rotCtx[ctx->q_id][sde_hw_rotator_get_regdma_ctxidx(ctx)] = NULL; /* Clear rotator context from lookup purpose */ sde_hw_rotator_clr_ctx(ctx); devm_kfree(&rot->pdev->dev, ctx); } Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_r3_internal.h +22 −0 Original line number Diff line number Diff line Loading @@ -345,10 +345,32 @@ static inline void sde_hw_rotator_put_ctx(struct sde_hw_rotator_context *ctx) { struct sde_hw_rotator *rot = ctx->rot; u32 idx = sde_hw_rotator_get_regdma_ctxidx(ctx); unsigned long flags; spin_lock_irqsave(&rot->rotisr_lock, flags); rot->rotCtx[ctx->q_id][idx] = ctx; spin_unlock_irqrestore(&rot->rotisr_lock, flags); SDEROT_DBG("rotCtx[%d][%d] <== ctx:%p | session-id:%d\n", ctx->q_id, idx, ctx, ctx->session_id); } /** * sde_hw_rotator_clr_ctx(): Clearing rotator context according to its * timestamp. */ static inline void sde_hw_rotator_clr_ctx(struct sde_hw_rotator_context *ctx) { struct sde_hw_rotator *rot = ctx->rot; u32 idx = sde_hw_rotator_get_regdma_ctxidx(ctx); unsigned long flags; spin_lock_irqsave(&rot->rotisr_lock, flags); rot->rotCtx[ctx->q_id][idx] = NULL; spin_unlock_irqrestore(&rot->rotisr_lock, flags); SDEROT_DBG("rotCtx[%d][%d] <== null | session-id:%d\n", ctx->q_id, idx, ctx->session_id); } #endif /*_SDE_ROTATOR_R3_INTERNAL_H */