Message ID | 20200319075023.22151-8-tomi.valkeinen@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | CAL fixes and improvements | expand |
Tomi, Thanks for the patch. On 3/19/20 2:50 AM, Tomi Valkeinen wrote: > The driver does not print any errors on ComplexIO reset timeout or when > waiting for stop-state, making it difficult to debug and notice > problems. > > Add error prints for these cases. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> > Tested-by: Tomi Valkeinen <tomi.valkeinen@ti.com> > --- > drivers/media/platform/ti-vpe/cal.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c > index 838215a3f230..b070c56f8d80 100644 > --- a/drivers/media/platform/ti-vpe/cal.c > +++ b/drivers/media/platform/ti-vpe/cal.c > @@ -844,6 +844,11 @@ static void csi2_wait_for_phy(struct cal_ctx *ctx) > reg_read(ctx->dev, CAL_CSI2_COMPLEXIO_CFG(ctx->csi2_port)), i, > (i >= 250) ? "(timeout)" : ""); > > + if (reg_read_field(ctx->dev, CAL_CSI2_COMPLEXIO_CFG(ctx->csi2_port), > + CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_MASK) != > + CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETCOMPLETED) > + ctx_err(ctx, "Timeout waiting for Complex IO reset done\n"); > + Since you are promoting these from debug to error event then removing the related ctx_dbg statement would make sense then. I was using these as debug statement before but they are now useless if an error trace is generated instead. > /* 4. G. Wait for all enabled lane to reach stop state */ > for (i = 0; i < 10; i++) { > if (reg_read_field(ctx->dev, > @@ -857,6 +862,9 @@ static void csi2_wait_for_phy(struct cal_ctx *ctx) > ctx->csi2_port, > reg_read(ctx->dev, CAL_CSI2_TIMING(ctx->csi2_port)), > (i >= 10) ? "(timeout)" : ""); Same here. But with that, Reviewed-by: Benoit Parrot <bparrot@ti.com> > + if (reg_read_field(ctx->dev, CAL_CSI2_TIMING(ctx->csi2_port), > + CAL_CSI2_TIMING_FORCE_RX_MODE_IO1_MASK) != 0) > + ctx_err(ctx, "Timeout waiting for stop state\n"); > > ctx_dbg(1, ctx, "CSI2_%d_REG1 = 0x%08x (Bit(31,28) should be set!)\n", > (ctx->csi2_port - 1), reg_read(ctx->cc, CAL_CSI2_PHY_REG1)); >
diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c index 838215a3f230..b070c56f8d80 100644 --- a/drivers/media/platform/ti-vpe/cal.c +++ b/drivers/media/platform/ti-vpe/cal.c @@ -844,6 +844,11 @@ static void csi2_wait_for_phy(struct cal_ctx *ctx) reg_read(ctx->dev, CAL_CSI2_COMPLEXIO_CFG(ctx->csi2_port)), i, (i >= 250) ? "(timeout)" : ""); + if (reg_read_field(ctx->dev, CAL_CSI2_COMPLEXIO_CFG(ctx->csi2_port), + CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_MASK) != + CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETCOMPLETED) + ctx_err(ctx, "Timeout waiting for Complex IO reset done\n"); + /* 4. G. Wait for all enabled lane to reach stop state */ for (i = 0; i < 10; i++) { if (reg_read_field(ctx->dev, @@ -857,6 +862,9 @@ static void csi2_wait_for_phy(struct cal_ctx *ctx) ctx->csi2_port, reg_read(ctx->dev, CAL_CSI2_TIMING(ctx->csi2_port)), (i >= 10) ? "(timeout)" : ""); + if (reg_read_field(ctx->dev, CAL_CSI2_TIMING(ctx->csi2_port), + CAL_CSI2_TIMING_FORCE_RX_MODE_IO1_MASK) != 0) + ctx_err(ctx, "Timeout waiting for stop state\n"); ctx_dbg(1, ctx, "CSI2_%d_REG1 = 0x%08x (Bit(31,28) should be set!)\n", (ctx->csi2_port - 1), reg_read(ctx->cc, CAL_CSI2_PHY_REG1));