+++ /dev/null
-From bbdb89fbe61de5bacbb44ab919548fb84f1426d2 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Tue, 19 May 2020 11:46:47 +0100
-Subject: [PATCH] media: bcm2835-unicam: Retain packing information on
- 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
-@@ -980,8 +980,23 @@ static int unicam_g_fmt_vid_cap(struct f
- 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;