All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Benoit Parrot <bparrot@ti.com>, Pratyush Yadav <p.yadav@ti.com>,
	Lokesh Vutla <lokeshvutla@ti.com>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH 14/28] media: ti-vpe: cal: catch VC errors
Date: Thu, 29 Apr 2021 02:44:01 +0300	[thread overview]
Message-ID: <YInzQTnAknPWN5RN@pendragon.ideasonboard.com> (raw)
In-Reply-To: <0e4bcb84-8acf-2bb2-85be-fb96599b3c3c@ideasonboard.com>

Hi Tomi,

On Mon, Apr 19, 2021 at 02:19:01PM +0300, Tomi Valkeinen wrote:
> On 18/04/2021 15:38, Laurent Pinchart wrote:
> > On Mon, Apr 12, 2021 at 02:34:43PM +0300, Tomi Valkeinen wrote:
> >> CAL driver currently ignores VC related errors. To help catch error
> >> conditions, enable all the VC error interrupts and handle them in the
> >> interrupt handler by printing an error.
> >>
> >> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> >> ---
> >>   drivers/media/platform/ti-vpe/cal-camerarx.c | 23 ++++++++++++++++----
> >>   drivers/media/platform/ti-vpe/cal.c          |  9 ++++++++
> >>   2 files changed, 28 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/media/platform/ti-vpe/cal-camerarx.c b/drivers/media/platform/ti-vpe/cal-camerarx.c
> >> index 974fcbb19547..0354f311c5d2 100644
> >> --- a/drivers/media/platform/ti-vpe/cal-camerarx.c
> >> +++ b/drivers/media/platform/ti-vpe/cal-camerarx.c
> >> @@ -226,24 +226,39 @@ static void cal_camerarx_enable_irqs(struct cal_camerarx *phy)
> >>   		CAL_CSI2_COMPLEXIO_IRQ_FIFO_OVR_MASK |
> >>   		CAL_CSI2_COMPLEXIO_IRQ_SHORT_PACKET_MASK |
> >>   		CAL_CSI2_COMPLEXIO_IRQ_ECC_NO_CORRECTION_MASK;
> >> -
> >> -	/* Enable CIO error IRQs. */
> >> +	const u32 vc_err_mask =
> >> +		CAL_CSI2_VC_IRQ_CS_IRQ_MASK(0) |
> >> +		CAL_CSI2_VC_IRQ_CS_IRQ_MASK(1) |
> >> +		CAL_CSI2_VC_IRQ_CS_IRQ_MASK(2) |
> >> +		CAL_CSI2_VC_IRQ_CS_IRQ_MASK(3) |
> >> +		CAL_CSI2_VC_IRQ_ECC_CORRECTION_IRQ_MASK(0) |
> >> +		CAL_CSI2_VC_IRQ_ECC_CORRECTION_IRQ_MASK(1) |
> >> +		CAL_CSI2_VC_IRQ_ECC_CORRECTION_IRQ_MASK(2) |
> >> +		CAL_CSI2_VC_IRQ_ECC_CORRECTION_IRQ_MASK(3);
> >> +
> >> +	/* Enable CIO & VC error IRQs. */
> >>   	cal_write(phy->cal, CAL_HL_IRQENABLE_SET(0),
> >> -		  CAL_HL_IRQ_CIO_MASK(phy->instance));
> >> +		  CAL_HL_IRQ_CIO_MASK(phy->instance) | CAL_HL_IRQ_VC_MASK(phy->instance));
> > 
> > Line wrap ? Same in multiple places below. I know there's no strict 80
> > columns limit anymore, but I don't think longer lines help with
> > readability in this patch (not to mention the coding style inconsistency
> > with the rest of the driver).
> 
> Well, I disagree, but I guess that's in the eye of the beholder.
> 
> If we have a coding style with strict 80 column limit, then there are 
> other places I need to start fixing too. My personal coding style is 
> such that around 80 columns I start thinking about splitting if it can 
> be done without any messiness, around 100 I seriously try to split it, 
> and around 120 I think it's broken.

It then all depends on your messiness gauge :-) For the code above,

 	cal_write(phy->cal, CAL_HL_IRQENABLE_SET(0),
		  CAL_HL_IRQ_CIO_MASK(phy->instance) |
		  CAL_HL_IRQ_VC_MASK(phy->instance));

doesn't seem messy at all to me (quite the contrary actually).

> I can change this and the other similar line, the end result is only 
> slightly messier, but...
> 
> >> +
> >> +			if (status & CAL_HL_IRQ_VC_MASK(i)) {
> >> +				u32 vc_stat = cal_read(cal, CAL_CSI2_VC_IRQSTATUS(i));
> >> +
> >> +				dev_err_ratelimited(cal->dev,
> >> +						    "CIO%u VC error: %#08x\n", i, vc_stat);
> >> +
> >> +				cal_write(cal, CAL_CSI2_VC_IRQSTATUS(i), vc_stat);
> >> +			}
> 
> ...especially for this part sticking to 80 columns uglifies the code.
> 
> u32 vc_stat =
> 	cal_read(cal,
> 		 CAL_CSI2_VC_IRQSTATUS(i));
> 
> or
> 
> u32 cio_stat = cal_read(cal,
> 	CAL_CSI2_COMPLEXIO_IRQSTATUS(i));

That would be messy, and I think it should either stay as-is, or the
function should be refactored with code broken out in multiple functions
(probably overkill for this specific example).

The next line, however, I would have written as

				dev_err_ratelimited(cal->dev,
						    "CIO%u VC error: %#08x\n",
						    i, vc_stat);

> I could split parts to a separate function, but I don't think the end 
> result would be better.
> 
> I think we discuss the 80-column problem almost in every series. Maybe 
> we need to agree to some clear predefined rules to avoid future 
> discussions about this? =)

So all we need is a metric that measure code mess, right ? :-)

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2021-04-28 23:44 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-12 11:34 [PATCH 00/28] media: ti-vpe: cal: prepare for multistream support Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 01/28] media: ti-vpe: cal: add g/s_parm for legacy API Tomi Valkeinen
2021-04-17 23:01   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 02/28] media: ti-vpe: cal: fix error handling in cal_camerarx_create Tomi Valkeinen
2021-04-17 23:05   ` Laurent Pinchart
2021-04-19  8:24     ` Tomi Valkeinen
2021-04-19  8:31       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 03/28] media: ti-vpe: cal: remove unused cal_camerarx->dev field Tomi Valkeinen
2021-04-18  0:43   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 04/28] media: ti-vpe: cal: rename "sensor" to "source" Tomi Valkeinen
2021-04-17 23:18   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 05/28] media: ti-vpe: cal: move global config from cal_ctx_wr_dma_config to runtime resume Tomi Valkeinen
2021-04-17 23:27   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 06/28] media: ti-vpe: cal: use v4l2_get_link_freq Tomi Valkeinen
2021-04-18 11:48   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 07/28] media: ti-vpe: cal: add cal_ctx_prepare/unprepare Tomi Valkeinen
2021-04-18 13:30   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 08/28] media: ti-vpe: cal: change index and cport to u8 Tomi Valkeinen
2021-04-18 11:55   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 09/28] media: ti-vpe: cal: Add PPI context Tomi Valkeinen
2021-04-18 12:17   ` Laurent Pinchart
2021-04-19  9:01     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 10/28] media: ti-vpe: cal: Add pixel processing context Tomi Valkeinen
2021-04-18 12:20   ` Laurent Pinchart
2021-04-18 12:23     ` Laurent Pinchart
2021-04-19  9:17     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 11/28] media: ti-vpe: cal: rename cal_ctx->index to dma_ctx Tomi Valkeinen
2021-04-18 12:22   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 12/28] media: ti-vpe: cal: rename CAL_HL_IRQ_MASK Tomi Valkeinen
2021-04-18 12:29   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 13/28] media: ti-vpe: cal: clean up CAL_CSI2_VC_IRQ_* macros Tomi Valkeinen
2021-04-18 12:32   ` Laurent Pinchart
2021-04-19 10:29     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 14/28] media: ti-vpe: cal: catch VC errors Tomi Valkeinen
2021-04-18 12:38   ` Laurent Pinchart
2021-04-19 11:19     ` Tomi Valkeinen
2021-04-28 23:44       ` Laurent Pinchart [this message]
2021-04-12 11:34 ` [PATCH 15/28] media: ti-vpe: cal: remove wait when stopping camerarx Tomi Valkeinen
2021-04-18 12:46   ` Laurent Pinchart
2021-04-19 11:29     ` Tomi Valkeinen
2021-04-28 23:57       ` Laurent Pinchart
2021-05-04  7:56         ` Tomi Valkeinen
2021-06-04 13:44         ` Laurent Pinchart
2021-06-07 10:41           ` Tomi Valkeinen
2021-06-09 12:31             ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 16/28] media: ti-vpe: cal: disable ppi and pix proc at ctx_stop Tomi Valkeinen
2021-04-18 12:49   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 17/28] media: ti-vpe: cal: allocate pix proc dynamically Tomi Valkeinen
2021-04-18 12:59   ` Laurent Pinchart
2021-04-19 11:45     ` Tomi Valkeinen
2021-04-29  0:04       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 18/28] media: ti-vpe: cal: add 'use_pix_proc' field Tomi Valkeinen
2021-04-18 13:00   ` Laurent Pinchart
2021-04-19 11:53     ` Tomi Valkeinen
2021-04-29  0:07       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 19/28] media: ti-vpe: cal: add cal_ctx_wr_dma_enable and fix a race Tomi Valkeinen
2021-04-18 13:04   ` Laurent Pinchart
2021-04-19 12:02     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 20/28] media: ti-vpe: cal: add vc and datatype fields to cal_ctx Tomi Valkeinen
2021-04-18 13:06   ` Laurent Pinchart
2021-04-19 12:07     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 21/28] media: ti-vpe: cal: fix cal_ctx_v4l2_register error handling Tomi Valkeinen
2021-04-18 13:09   ` Laurent Pinchart
2021-04-20 10:50     ` Tomi Valkeinen
2021-04-20 11:17       ` Tomi Valkeinen
2021-04-29  0:10         ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 22/28] media: ti-vpe: cal: set field always to V4L2_FIELD_NONE Tomi Valkeinen
2021-04-18 13:14   ` Laurent Pinchart
2021-04-19 12:34     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 23/28] media: ti-vpe: cal: fix typo in a comment Tomi Valkeinen
2021-04-18 13:14   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 24/28] media: ti-vpe: cal: add mbus_code support to cal_mc_enum_fmt_vid_cap Tomi Valkeinen
2021-04-18 13:17   ` Laurent Pinchart
2021-04-19 12:50     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 25/28] media: ti-vpe: cal: rename non-MC funcs to cal_legacy_* Tomi Valkeinen
2021-04-18 13:18   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 26/28] media: ti-vpe: cal: init ctx->v_fmt correctly in MC mode Tomi Valkeinen
2021-04-18 13:21   ` Laurent Pinchart
2021-04-19 13:01     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 27/28] media: ti-vpe: cal: remove cal_camerarx->fmtinfo Tomi Valkeinen
2021-04-18 13:24   ` Laurent Pinchart
2021-04-19 13:08     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 28/28] media: ti-vpe: cal: support 8 DMA contexts Tomi Valkeinen
2021-04-18 13:29   ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YInzQTnAknPWN5RN@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=bparrot@ti.com \
    --cc=linux-media@vger.kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=p.yadav@ti.com \
    --cc=tomi.valkeinen@ideasonboard.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.