]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: staging: rkisp1: rsz: set default format if the given format is not RKISP1_ISP...
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Thu, 18 Jun 2020 11:35:18 +0000 (13:35 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 11:15:05 +0000 (13:15 +0200)
[ Upstream commit 206003b18bb264521607440752814ccff59f91f3 ]

When setting the sink format of the 'rkisp1_resizer'
the format should be supported by 'rkisp1_isp' on
the video source pad. This patch checks this condition
and sets the format to default if the condition is false.

Fixes: 56e3b29f9f6b "media: staging: rkisp1: add streaming paths"
Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Acked-by: Helen Koike <helen.koike@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/media/rkisp1/rkisp1-common.h
drivers/staging/media/rkisp1/rkisp1-isp.c
drivers/staging/media/rkisp1/rkisp1-resizer.c

index 0c4fe503adc901b814bdb1564e14d454aecee0f1..12bd9d05050db3c3226a160ba0a0a8673d97d6fb 100644 (file)
@@ -22,6 +22,9 @@
 #include "rkisp1-regs.h"
 #include "uapi/rkisp1-config.h"
 
+#define RKISP1_ISP_SD_SRC BIT(0)
+#define RKISP1_ISP_SD_SINK BIT(1)
+
 #define RKISP1_ISP_MAX_WIDTH           4032
 #define RKISP1_ISP_MAX_HEIGHT          3024
 #define RKISP1_ISP_MIN_WIDTH           32
index abfedb604303fe7ec28b51cd852fe6b64f28f801..b21a67aea433c1b06b25d6d4776fe343f2750306 100644 (file)
@@ -23,9 +23,6 @@
 
 #define RKISP1_ISP_DEV_NAME    RKISP1_DRIVER_NAME "_isp"
 
-#define RKISP1_ISP_SD_SRC BIT(0)
-#define RKISP1_ISP_SD_SINK BIT(1)
-
 /*
  * NOTE: MIPI controller and input MUX are also configured in this file.
  * This is because ISP Subdev describes not only ISP submodule (input size,
index e188944941b58ba5c84ffd9aaab905a701dbe02c..a2b35961bc8b772fd7fa7eb6bab2ab09fcef920b 100644 (file)
@@ -542,7 +542,7 @@ static void rkisp1_rsz_set_sink_fmt(struct rkisp1_resizer *rsz,
                                            which);
        sink_fmt->code = format->code;
        mbus_info = rkisp1_isp_mbus_info_get(sink_fmt->code);
-       if (!mbus_info) {
+       if (!mbus_info || !(mbus_info->direction & RKISP1_ISP_SD_SRC)) {
                sink_fmt->code = RKISP1_DEF_FMT;
                mbus_info = rkisp1_isp_mbus_info_get(sink_fmt->code);
        }