On 6/18/20 8:35 AM, Dafna Hirschfeld wrote: > 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@xxxxxxxxxxxxx> > Reviewed-by: Tomasz Figa <tfiga@xxxxxxxxxxxx> Acked-by: Helen Koike <helen.koike@xxxxxxxxxxxxx> > --- > drivers/staging/media/rkisp1/rkisp1-common.h | 3 +++ > drivers/staging/media/rkisp1/rkisp1-isp.c | 3 --- > drivers/staging/media/rkisp1/rkisp1-resizer.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/media/rkisp1/rkisp1-common.h b/drivers/staging/media/rkisp1/rkisp1-common.h > index 0c4fe503adc9..12bd9d05050d 100644 > --- a/drivers/staging/media/rkisp1/rkisp1-common.h > +++ b/drivers/staging/media/rkisp1/rkisp1-common.h > @@ -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 > diff --git a/drivers/staging/media/rkisp1/rkisp1-isp.c b/drivers/staging/media/rkisp1/rkisp1-isp.c > index abfedb604303..b21a67aea433 100644 > --- a/drivers/staging/media/rkisp1/rkisp1-isp.c > +++ b/drivers/staging/media/rkisp1/rkisp1-isp.c > @@ -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, > diff --git a/drivers/staging/media/rkisp1/rkisp1-resizer.c b/drivers/staging/media/rkisp1/rkisp1-resizer.c > index d64c064bdb1d..137298b77341 100644 > --- a/drivers/staging/media/rkisp1/rkisp1-resizer.c > +++ b/drivers/staging/media/rkisp1/rkisp1-resizer.c > @@ -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); > } >