Message ID | 20231113145731.89796-1-alain.volmat@foss.st.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Sakari Ailus |
Headers |
Received: from ny.mirrors.kernel.org ([147.75.199.223]) by www.linuxtv.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <linux-media+bounces-258-patchwork=linuxtv.org@vger.kernel.org>) id 1r2YO8-006WDx-OE for patchwork@linuxtv.org; Mon, 13 Nov 2023 14:58:09 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 1BF9E1C20878 for <patchwork@linuxtv.org>; Mon, 13 Nov 2023 14:58:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B9B622111A; Mon, 13 Nov 2023 14:58:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="X6Nd/GUt" X-Original-To: linux-media@vger.kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A5921D69A for <linux-media@vger.kernel.org>; Mon, 13 Nov 2023 14:57:59 +0000 (UTC) Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62668132; Mon, 13 Nov 2023 06:57:57 -0800 (PST) Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 3ADB72Xl018219; Mon, 13 Nov 2023 15:57:47 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:content-type; s=selector1; bh=leYW5zo NQ+ApABUs14mu1OjZ7G1VzudQ+i7kL1VaH9Y=; b=X6Nd/GUtFsddjGOAuGw+JSn CA9LzJfviWzSLHi9EE3Iz8OnaJgcLbGFndBuhT0VZGsBTuWspFErBRFF25aG9Gw1 +aH977PuOnXxCjhee8RRwCVJOPPx124SwrsmCsBpG6sVuDuLjo9clfHIMHhqvaCv T0awNCvTGqa4NOhViOvu8eVJAzH/4VvCJ3VPsQSU93gmicCSUFYX5TMDA5ga4SVI Nnf4YaOqv1iZGHHiNecYAg2EO8GbtoOphTJeoZgTcqY4cn49f9Z+L9WScERcoMz+ 7vUMjEg+1AWDQOk+dRmaD4bPqlPXeZm6SFEdpMyhJfveCuP4jMGq7wCFBtLRp6w= = Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3ua1cgypa3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Nov 2023 15:57:47 +0100 (CET) Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 44CA910005B; Mon, 13 Nov 2023 15:57:46 +0100 (CET) Received: from Webmail-eu.st.com (shfdag1node1.st.com [10.75.129.69]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 3AC6D21ED28; Mon, 13 Nov 2023 15:57:46 +0100 (CET) Received: from localhost (10.129.178.213) by SHFDAG1NODE1.st.com (10.75.129.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 13 Nov 2023 15:57:46 +0100 From: Alain Volmat <alain.volmat@foss.st.com> To: Benjamin Mugnier <benjamin.mugnier@foss.st.com>, Sylvain Petinot <sylvain.petinot@foss.st.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Sakari Ailus <sakari.ailus@linux.intel.com>, Daniel Scally <dan.scally@ideasonboard.com> CC: <stable@vger.kernel.org>, Jacopo Mondi <jacopo.mondi@ideasonboard.com>, Alain Volmat <alain.volmat@foss.st.com>, <linux-media@vger.kernel.org>, <linux-kernel@vger.kernel.org> Subject: [PATCH] media: i2c: st-mipid02: correct format propagation Date: Mon, 13 Nov 2023 15:57:30 +0100 Message-ID: <20231113145731.89796-1-alain.volmat@foss.st.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: <linux-media.vger.kernel.org> List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.129.178.213] X-ClientProxiedBy: SHFCAS1NODE2.st.com (10.75.129.73) To SHFDAG1NODE1.st.com (10.75.129.69) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-13_05,2023-11-09_01,2023-05-22_02 X-LSpam-Score: -4.8 (----) X-LSpam-Report: No, score=-4.8 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_MED=-2.3 autolearn=ham autolearn_force=no |
Series |
media: i2c: st-mipid02: correct format propagation
|
|
Commit Message
Alain Volmat
Nov. 13, 2023, 2:57 p.m. UTC
Use a copy of the struct v4l2_subdev_format when propagating
format from the sink to source pad in order to avoid impacting the
sink format returned to the application.
Thanks to Jacopo Mondi for pointing the issue.
Fixes: 6c01e6f3f27b ("media: st-mipid02: Propagate format from sink to source pad")
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Cc: stable@vger.kernel.org
---
drivers/media/i2c/st-mipid02.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
Comments
Hello Alain On Mon, Nov 13, 2023 at 03:57:30PM +0100, Alain Volmat wrote: > Use a copy of the struct v4l2_subdev_format when propagating > format from the sink to source pad in order to avoid impacting the > sink format returned to the application. > > Thanks to Jacopo Mondi for pointing the issue. > ;) > Fixes: 6c01e6f3f27b ("media: st-mipid02: Propagate format from sink to source pad") > Signed-off-by: Alain Volmat <alain.volmat@foss.st.com> > Cc: stable@vger.kernel.org > --- > drivers/media/i2c/st-mipid02.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c > index fa27638edc07..dab14787116b 100644 > --- a/drivers/media/i2c/st-mipid02.c > +++ b/drivers/media/i2c/st-mipid02.c > @@ -770,6 +770,7 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, > struct v4l2_subdev_format *format) > { > struct mipid02_dev *bridge = to_mipid02_dev(sd); > + struct v4l2_subdev_format source_fmt; > struct v4l2_mbus_framefmt *fmt; > > format->format.code = get_fmt_code(format->format.code); > @@ -781,8 +782,12 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, > > *fmt = format->format; > > - /* Propagate the format change to the source pad */ > - mipid02_set_fmt_source(sd, sd_state, format); > + /* > + * Propagate the format change to the source pad, taking > + * care not to update the format pointer given back to user > + */ > + source_fmt = *format; > + mipid02_set_fmt_source(sd, sd_state, &source_fmt); Looks good! Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Thanks j > } > > static int mipid02_set_fmt(struct v4l2_subdev *sd, > -- > 2.25.1 >
Hello Alain, Thanks a lot ! On 11/13/23 15:57, Alain Volmat wrote: > Use a copy of the struct v4l2_subdev_format when propagating > format from the sink to source pad in order to avoid impacting the > sink format returned to the application. > > Thanks to Jacopo Mondi for pointing the issue. Reviewed-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com> > Fixes: 6c01e6f3f27b ("media: st-mipid02: Propagate format from sink to source pad") > Signed-off-by: Alain Volmat <alain.volmat@foss.st.com> > Cc: stable@vger.kernel.org > --- > drivers/media/i2c/st-mipid02.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c > index fa27638edc07..dab14787116b 100644 > --- a/drivers/media/i2c/st-mipid02.c > +++ b/drivers/media/i2c/st-mipid02.c > @@ -770,6 +770,7 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, > struct v4l2_subdev_format *format) > { > struct mipid02_dev *bridge = to_mipid02_dev(sd); > + struct v4l2_subdev_format source_fmt; > struct v4l2_mbus_framefmt *fmt; > > format->format.code = get_fmt_code(format->format.code); > @@ -781,8 +782,12 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, > > *fmt = format->format; > > - /* Propagate the format change to the source pad */ > - mipid02_set_fmt_source(sd, sd_state, format); > + /* > + * Propagate the format change to the source pad, taking > + * care not to update the format pointer given back to user > + */ > + source_fmt = *format; > + mipid02_set_fmt_source(sd, sd_state, &source_fmt); > } > > static int mipid02_set_fmt(struct v4l2_subdev *sd,
Hi Alain On 13/11/2023 14:57, Alain Volmat wrote: > Use a copy of the struct v4l2_subdev_format when propagating > format from the sink to source pad in order to avoid impacting the > sink format returned to the application. > > Thanks to Jacopo Mondi for pointing the issue. > > Fixes: 6c01e6f3f27b ("media: st-mipid02: Propagate format from sink to source pad") > Signed-off-by: Alain Volmat <alain.volmat@foss.st.com> > Cc: stable@vger.kernel.org > --- Oops - sorry about that! Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> > drivers/media/i2c/st-mipid02.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c > index fa27638edc07..dab14787116b 100644 > --- a/drivers/media/i2c/st-mipid02.c > +++ b/drivers/media/i2c/st-mipid02.c > @@ -770,6 +770,7 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, > struct v4l2_subdev_format *format) > { > struct mipid02_dev *bridge = to_mipid02_dev(sd); > + struct v4l2_subdev_format source_fmt; > struct v4l2_mbus_framefmt *fmt; > > format->format.code = get_fmt_code(format->format.code); > @@ -781,8 +782,12 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, > > *fmt = format->format; > > - /* Propagate the format change to the source pad */ > - mipid02_set_fmt_source(sd, sd_state, format); > + /* > + * Propagate the format change to the source pad, taking > + * care not to update the format pointer given back to user > + */ > + source_fmt = *format; > + mipid02_set_fmt_source(sd, sd_state, &source_fmt); > } > > static int mipid02_set_fmt(struct v4l2_subdev *sd,
diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c index fa27638edc07..dab14787116b 100644 --- a/drivers/media/i2c/st-mipid02.c +++ b/drivers/media/i2c/st-mipid02.c @@ -770,6 +770,7 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, struct v4l2_subdev_format *format) { struct mipid02_dev *bridge = to_mipid02_dev(sd); + struct v4l2_subdev_format source_fmt; struct v4l2_mbus_framefmt *fmt; format->format.code = get_fmt_code(format->format.code); @@ -781,8 +782,12 @@ static void mipid02_set_fmt_sink(struct v4l2_subdev *sd, *fmt = format->format; - /* Propagate the format change to the source pad */ - mipid02_set_fmt_source(sd, sd_state, format); + /* + * Propagate the format change to the source pad, taking + * care not to update the format pointer given back to user + */ + source_fmt = *format; + mipid02_set_fmt_source(sd, sd_state, &source_fmt); } static int mipid02_set_fmt(struct v4l2_subdev *sd,