1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-02-15 04:42:02 +00:00
openmptcprouter/root/target/linux/bcm27xx/patches-5.15/950-0236-media-bcm2835-unicam-Retain-packing-information-on-G.patch

49 lines
1.5 KiB
Diff
Raw Normal View History

2022-04-22 15:00:47 +00:00
From ed07f6c8df98216c634d209400a33198c75f442a Mon Sep 17 00:00:00 2001
2021-11-24 17:32:01 +00:00
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Tue, 19 May 2020 11:46:47 +0100
2022-04-22 15:00:47 +00:00
Subject: [PATCH 236/828] media: bcm2835-unicam: Retain packing information on
2021-11-24 17:32:01 +00:00
G_FMT
The change to retrieve the pixel format always on g_fmt didn't
check whether the native or unpacked version of the format
had been requested, and always returned the packed one.
Correct this so that the packing setting is retained whereever
possible.
Fixes "9d59e89 media: bcm2835-unicam: Re-fetch mbus code from subdev
on a g_fmt call"
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
.../media/platform/bcm2835/bcm2835-unicam.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c
+++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c
2022-04-22 15:00:47 +00:00
@@ -974,8 +974,23 @@ static int unicam_g_fmt_vid_cap(struct f
2021-11-24 17:32:01 +00:00
if (!fmt)
return -EINVAL;
- node->fmt = fmt;
- node->v_fmt.fmt.pix.pixelformat = fmt->fourcc;
+ if (node->fmt != fmt) {
+ /*
+ * The sensor format has changed so the pixelformat needs to
+ * be updated. Try and retain the packed/unpacked choice if
+ * at all possible.
+ */
+ if (node->fmt->repacked_fourcc ==
+ node->v_fmt.fmt.pix.pixelformat)
+ /* Using the repacked format */
+ node->v_fmt.fmt.pix.pixelformat = fmt->repacked_fourcc;
+ else
+ /* Using the native format */
+ node->v_fmt.fmt.pix.pixelformat = fmt->fourcc;
+
+ node->fmt = fmt;
+ }
+
*f = node->v_fmt;
return 0;