Tomi, Thanks for the patch. On 3/19/20 2:50 AM, Tomi Valkeinen wrote: > IRQENABLE_SET registers are (usually) not meant to be read, only written > to. The current driver needlessly uses read-modify-write cycle to enable > IRQ bits. > > The read-modify-write has no bad side effects here, but it's still > better to clean this up by only using write. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> > Tested-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> Reviewed-by: Benoit Parrot <bparrot@xxxxxx> > --- > drivers/media/platform/ti-vpe/cal.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c > index 9dd6de14189b..76d55c76d938 100644 > --- a/drivers/media/platform/ti-vpe/cal.c > +++ b/drivers/media/platform/ti-vpe/cal.c > @@ -706,16 +706,16 @@ static void cal_quickdump_regs(struct cal_dev *dev) > */ > static void enable_irqs(struct cal_ctx *ctx) > { > + u32 val; > + > /* Enable IRQ_WDMA_END 0/1 */ > - reg_write_field(ctx->dev, > - CAL_HL_IRQENABLE_SET(2), > - CAL_HL_IRQ_ENABLE, > - CAL_HL_IRQ_MASK(ctx->csi2_port)); > + val = 0; > + set_field(&val, CAL_HL_IRQ_ENABLE, CAL_HL_IRQ_MASK(ctx->csi2_port)); > + reg_write(ctx->dev, CAL_HL_IRQENABLE_SET(2), val); > /* Enable IRQ_WDMA_START 0/1 */ > - reg_write_field(ctx->dev, > - CAL_HL_IRQENABLE_SET(3), > - CAL_HL_IRQ_ENABLE, > - CAL_HL_IRQ_MASK(ctx->csi2_port)); > + val = 0; > + set_field(&val, CAL_HL_IRQ_ENABLE, CAL_HL_IRQ_MASK(ctx->csi2_port)); > + reg_write(ctx->dev, CAL_HL_IRQENABLE_SET(3), val); > /* Todo: Add VC_IRQ and CSI2_COMPLEXIO_IRQ handling */ > reg_write(ctx->dev, CAL_CSI2_VC_IRQENABLE(1), 0xFF000000); > } >