mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] media: av7110: refactor deeply nested PTS loops
@ 2026-06-20  5:46 André Moreira
  2026-07-15  8:14 ` Hans Verkuil
  0 siblings, 1 reply; 2+ messages in thread
From: André Moreira @ 2026-06-20  5:46 UTC (permalink / raw)
  To: mchehab, gregkh
  Cc: linux-media, linux-staging, linux-kernel, André Moreira

Extract the deeply nested loops handling PTS flags in the MPEG-1
block into a separate helper function `av7110_ipack_m1_pts()`.

This fixes a checkpatch warning regarding too many leading tabs and
improves code readability without changing the underlying parser logic.

Signed-off-by: André Moreira <andrem.33333@gmail.com>
---
 drivers/staging/media/av7110/av7110_ipack.c | 35 +++++++++++----------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/media/av7110/av7110_ipack.c b/drivers/staging/media/av7110/av7110_ipack.c
index 4be6e225f08e8..a3e69a737e97d 100644
--- a/drivers/staging/media/av7110/av7110_ipack.c
+++ b/drivers/staging/media/av7110/av7110_ipack.c
@@ -136,6 +136,22 @@ static void write_ipack(struct ipack *p, const u8 *data, int count)
 	}
 }
 
+static int av7110_ipack_m1_pts(struct ipack *p, const u8 *buf,
+			       int c, int count, int max_which)
+{
+	while (c < count && p->which < max_which) {
+		if (p->which < 7)
+			p->pts[p->which - 2] = buf[c];
+
+		write_ipack(p, buf + c, 1);
+		c++;
+		p->found++;
+		p->which++;
+		p->hlength++;
+	}
+	return c;
+}
+
 int av7110_ipack_instant_repack(const u8 *buf, int count, struct ipack *p)
 {
 	int l;
@@ -335,26 +351,11 @@ int av7110_ipack_instant_repack(const u8 *buf, int count, struct ipack *p)
 				return count;
 			if (p->which > 2) {
 				if ((p->flag2 & PTS_DTS_FLAGS) == PTS_ONLY) {
-					while (c < count && p->which < 7) {
-						p->pts[p->which - 2] = buf[c];
-						write_ipack(p, buf + c, 1);
-						c++;
-						p->found++;
-						p->which++;
-						p->hlength++;
-					}
+					c = av7110_ipack_m1_pts(p, buf, c, count, 7);
 					if (c == count)
 						return count;
 				} else if ((p->flag2 & PTS_DTS_FLAGS) == PTS_DTS) {
-					while (c < count && p->which < 12) {
-						if (p->which < 7)
-							p->pts[p->which - 2] = buf[c];
-						write_ipack(p, buf + c, 1);
-						c++;
-						p->found++;
-						p->which++;
-						p->hlength++;
-					}
+					c = av7110_ipack_m1_pts(p, buf, c, count, 12);
 					if (c == count)
 						return count;
 				}
-- 
2.43.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] media: av7110: refactor deeply nested PTS loops
  2026-06-20  5:46 [PATCH] media: av7110: refactor deeply nested PTS loops André Moreira
@ 2026-07-15  8:14 ` Hans Verkuil
  0 siblings, 0 replies; 2+ messages in thread
From: Hans Verkuil @ 2026-07-15  8:14 UTC (permalink / raw)
  To: André Moreira, mchehab, gregkh
  Cc: linux-media, linux-staging, linux-kernel

On 20/06/2026 07:46, André Moreira wrote:
> Extract the deeply nested loops handling PTS flags in the MPEG-1
> block into a separate helper function `av7110_ipack_m1_pts()`.
> 
> This fixes a checkpatch warning regarding too many leading tabs and
> improves code readability without changing the underlying parser logic.
> 
> Signed-off-by: André Moreira <andrem.33333@gmail.com>
> ---
>  drivers/staging/media/av7110/av7110_ipack.c | 35 +++++++++++----------
>  1 file changed, 18 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/staging/media/av7110/av7110_ipack.c b/drivers/staging/media/av7110/av7110_ipack.c
> index 4be6e225f08e8..a3e69a737e97d 100644
> --- a/drivers/staging/media/av7110/av7110_ipack.c
> +++ b/drivers/staging/media/av7110/av7110_ipack.c
> @@ -136,6 +136,22 @@ static void write_ipack(struct ipack *p, const u8 *data, int count)
>  	}
>  }
>  
> +static int av7110_ipack_m1_pts(struct ipack *p, const u8 *buf,
> +			       int c, int count, int max_which)
> +{
> +	while (c < count && p->which < max_which) {
> +		if (p->which < 7)
> +			p->pts[p->which - 2] = buf[c];
> +
> +		write_ipack(p, buf + c, 1);
> +		c++;
> +		p->found++;
> +		p->which++;
> +		p->hlength++;
> +	}
> +	return c;
> +}
> +
>  int av7110_ipack_instant_repack(const u8 *buf, int count, struct ipack *p)
>  {
>  	int l;
> @@ -335,26 +351,11 @@ int av7110_ipack_instant_repack(const u8 *buf, int count, struct ipack *p)
>  				return count;
>  			if (p->which > 2) {
>  				if ((p->flag2 & PTS_DTS_FLAGS) == PTS_ONLY) {
> -					while (c < count && p->which < 7) {
> -						p->pts[p->which - 2] = buf[c];
> -						write_ipack(p, buf + c, 1);
> -						c++;
> -						p->found++;
> -						p->which++;
> -						p->hlength++;
> -					}
> +					c = av7110_ipack_m1_pts(p, buf, c, count, 7);
>  					if (c == count)
>  						return count;
>  				} else if ((p->flag2 & PTS_DTS_FLAGS) == PTS_DTS) {
> -					while (c < count && p->which < 12) {
> -						if (p->which < 7)
> -							p->pts[p->which - 2] = buf[c];
> -						write_ipack(p, buf + c, 1);
> -						c++;
> -						p->found++;
> -						p->which++;
> -						p->hlength++;
> -					}
> +					c = av7110_ipack_m1_pts(p, buf, c, count, 12);
>  					if (c == count)
>  						return count;
>  				}

Hmm, I think I'll just keep the code as-is. Creating a separate function for this makes
the repack function actually harder to understand.

Regards,

	Hans

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-07-15  8:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-20  5:46 [PATCH] media: av7110: refactor deeply nested PTS loops André Moreira
2026-07-15  8:14 ` Hans Verkuil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox