All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: "Tomasz Figa" <tfiga@chromium.org>,
	"Marek Szyprowski" <m.szyprowski@samsung.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Shuah Khan" <skhan@linuxfoundation.org>,
	"Kieran Bingham" <kieran.bingham@ideasonboard.com>,
	"Daniel Almeida" <daniel.almeida@collabora.com>,
	"Andy Walls" <awalls@md.metrocast.net>,
	"Yong Zhi" <yong.zhi@intel.com>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Bingbu Cao" <bingbu.cao@intel.com>,
	"Dan Scally" <djrscally@gmail.com>,
	"Tianshu Qiu" <tian.shu.qiu@intel.com>,
	"Martin Tuma" <martin.tuma@digiteqautomotive.com>,
	"Bluecherry Maintainers" <maintainers@bluecherrydvr.com>,
	"Andrey Utkin" <andrey_utkin@fastmail.com>,
	"Ismael Luceno" <ismael@iodev.co.uk>,
	"Ezequiel Garcia" <ezequiel@vanguardiasur.com.ar>,
	"Corentin Labbe" <clabbe@baylibre.com>,
	"Michael Krufky" <mkrufky@linuxtv.org>,
	"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
	"Matt Ranostay" <matt@ranostay.sg>,
	"Michael Tretter" <m.tretter@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Jerome Brunet" <jbrunet@baylibre.com>,
	"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
	"Ming Qian" <ming.qian@nxp.com>, "Zhou Peng" <eagle.zhou@nxp.com>,
	"Eddie James" <eajames@linux.ibm.com>,
	"Joel Stanley" <joel@jms.id.au>,
	"Andrew Jeffery" <andrew@codeconstruct.com.au>,
	"Eugen Hristev" <eugen.hristev@collabora.com>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
	"Raspberry Pi Kernel Maintenance" <kernel-list@raspberrypi.com>,
	"Florian Fainelli" <florian.fainelli@broadcom.com>,
	"Broadcom internal kernel review list"
	<bcm-kernel-feedback-list@broadcom.com>,
	"Ray Jui" <rjui@broadcom.com>,
	"Scott Branden" <sbranden@broadcom.com>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Nas Chung" <nas.chung@chipsnmedia.com>,
	"Jackson Lee" <jackson.lee@chipsnmedia.com>,
	"Devarsh Thakkar" <devarsht@ti.com>,
	"Bin Liu" <bin.liu@mediatek.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Minghsiu Tsai" <minghsiu.tsai@mediatek.com>,
	"Houlong Wei" <houlong.wei@mediatek.com>,
	"Andrew-CT Chen" <andrew-ct.chen@mediatek.com>,
	"Tiffany Lin" <tiffany.lin@mediatek.com>,
	"Yunfei Dong" <yunfei.dong@mediatek.com>,
	"Joseph Liu" <kwliu@nuvoton.com>,
	"Marvin Lin" <kflin@nuvoton.com>,
	"Dmitry Osipenko" <digetx@gmail.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Xavier Roumegue" <xavier.roumegue@oss.nxp.com>,
	"Mirela Rabulea" <mirela.rabulea@nxp.com>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Rui Miguel Silva" <rmfrfs@gmail.com>,
	"Martin Kepplinger" <martink@posteo.de>,
	"Purism Kernel Team" <kernel@puri.sm>,
	"Robert Foss" <rfoss@kernel.org>,
	"Todor Tomov" <todor.too@gmail.com>,
	"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
	"Stanimir Varbanov" <stanimir.k.varbanov@gmail.com>,
	"Vikash Garodia" <quic_vgarodia@quicinc.com>,
	"Jacopo Mondi" <jacopo.mondi@ideasonboard.com>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Fabrizio Castro" <fabrizio.castro.jz@renesas.com>,
	"Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>,
	"Mikhail Ulyanov" <mikhail.ulyanov@cogentembedded.com>,
	"Jacob Chen" <jacob-chen@iotwrt.com>,
	"Heiko Stuebner" <heiko@sntech.de>,
	"Dafna Hirschfeld" <dafna@fastmail.com>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Alim Akhtar" <alim.akhtar@samsung.com>,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	"Łukasz Stelmach" <l.stelmach@samsung.com>,
	"Andrzej Pietrasiewicz" <andrzejtp2010@gmail.com>,
	"Jacek Anaszewski" <jacek.anaszewski@gmail.com>,
	"Andrzej Hajda" <andrzej.hajda@intel.com>,
	"Fabien Dessenne" <fabien.dessenne@foss.st.com>,
	"Hugues Fruchet" <hugues.fruchet@foss.st.com>,
	"Jean-Christophe Trotin" <jean-christophe.trotin@foss.st.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Alain Volmat" <alain.volmat@foss.st.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Yong Deng" <yong.deng@magewell.com>,
	"Paul Kocialkowski" <paul.kocialkowski@bootlin.com>,
	"Benoit Parrot" <bparrot@ti.com>,
	"Jai Luthra" <jai.luthra@linux.dev>,
	"Michal Simek" <michal.simek@amd.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Steve Longerbeam" <slongerbeam@gmail.com>,
	"Jack Zhu" <jack.zhu@starfivetech.com>,
	"Changhuang Liang" <changhuang.liang@starfivetech.com>,
	"Sowjanya Komatineni" <skomatineni@nvidia.com>,
	"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
	linux-media@vger.kernel.org
Subject: Re: [PATCHv2 01/10] media: videobuf2-core: update vb2_thread if wait_finish/prepare are NULL
Date: Fri, 18 Oct 2024 06:14:03 +0200	[thread overview]
Message-ID: <20241018061403.318ce951@foz.lan> (raw)
In-Reply-To: <8ec79f05-b4a4-4a60-b10f-9ce2dd55bde2@xs4all.nl>

Em Thu, 17 Oct 2024 17:09:23 +0200
Hans Verkuil <hverkuil@xs4all.nl> escreveu:

> The vb2_thread is used for DVB support. This will queue and dequeue buffers
> automatically.
> 
> It calls wait_finish/prepare around vb2_core_dqbuf() and vb2_core_qbuf(),
> but that assumes all drivers have these ops set. But that will change
> due to commit 88785982a19d ("media: vb2: use lock if wait_prepare/finish
> are NULL").
> 
> So instead just check if the callback is available, and if not, use
> q->lock, just as __vb2_wait_for_done_vb() does.
> 
> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>

LGTM.

Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

> ---
> I'm just updating this patch, not the others in this series.
> 
> Changes since v1:
> - move the locking code inside the 'if (!threadio->stop)'
> - do the same for vb2_core_qbuf()
> ---
>  .../media/common/videobuf2/videobuf2-core.c   | 26 ++++++++++++++-----
>  1 file changed, 20 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
> index d064e0664851..d2275c878ea9 100644
> --- a/drivers/media/common/videobuf2/videobuf2-core.c
> +++ b/drivers/media/common/videobuf2/videobuf2-core.c
> @@ -3218,10 +3218,17 @@ static int vb2_thread(void *data)
>  				continue;
>  			prequeue--;
>  		} else {
> -			call_void_qop(q, wait_finish, q);
> -			if (!threadio->stop)
> +			if (!threadio->stop) {
> +				if (q->ops->wait_finish)
> +					call_void_qop(q, wait_finish, q);
> +				else if (q->lock)
> +					mutex_lock(q->lock);
>  				ret = vb2_core_dqbuf(q, &index, NULL, 0);
> -			call_void_qop(q, wait_prepare, q);
> +				if (q->ops->wait_prepare)
> +					call_void_qop(q, wait_prepare, q);
> +				else if (q->lock)
> +					mutex_unlock(q->lock);
> +			}
>  			dprintk(q, 5, "file io: vb2_dqbuf result: %d\n", ret);
>  			if (!ret)
>  				vb = vb2_get_buffer(q, index);
> @@ -3233,12 +3240,19 @@ static int vb2_thread(void *data)
>  		if (vb->state != VB2_BUF_STATE_ERROR)
>  			if (threadio->fnc(vb, threadio->priv))
>  				break;
> -		call_void_qop(q, wait_finish, q);
>  		if (copy_timestamp)
>  			vb->timestamp = ktime_get_ns();
> -		if (!threadio->stop)
> +		if (!threadio->stop) {
> +			if (q->ops->wait_finish)
> +				call_void_qop(q, wait_finish, q);
> +			else if (q->lock)
> +				mutex_lock(q->lock);
>  			ret = vb2_core_qbuf(q, vb, NULL, NULL);
> -		call_void_qop(q, wait_prepare, q);
> +			if (q->ops->wait_prepare)
> +				call_void_qop(q, wait_prepare, q);
> +			else if (q->lock)
> +				mutex_unlock(q->lock);
> +		}
>  		if (ret || threadio->stop)
>  			break;
>  	}



Thanks,
Mauro

  reply	other threads:[~2024-10-18  4:14 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-14 15:06 [PATCH 00/10] media: start work to remove wait_prepare/finish callbacks Hans Verkuil
2024-10-14 15:06 ` [PATCH 01/10] media: videobuf2-core: update vb2_thread if wait_finish/prepare are NULL Hans Verkuil
2024-10-14 19:15   ` Laurent Pinchart
2024-10-15  6:56     ` Hans Verkuil
2024-10-16  8:20       ` Laurent Pinchart
2024-10-17 14:38   ` Mauro Carvalho Chehab
2024-10-17 14:51     ` Hans Verkuil
2024-10-17 15:09   ` [PATCHv2 " Hans Verkuil
2024-10-18  4:14     ` Mauro Carvalho Chehab [this message]
2024-10-14 15:06 ` [PATCH 02/10] media: test-drivers: drop vb2_ops_wait_prepare/finish Hans Verkuil
2024-10-15 15:17   ` Shuah
2024-10-14 15:06 ` [PATCH 03/10] media: pci: " Hans Verkuil
2024-10-19 11:51   ` Sakari Ailus
2024-10-14 15:06 ` [PATCH 04/10] media: usb: " Hans Verkuil
2024-10-14 15:06 ` [PATCH 05/10] media: video-i2c: " Hans Verkuil
2024-10-19 11:49   ` Sakari Ailus
2024-10-14 15:06 ` [PATCH 06/10] media: rtl2832_sdr: " Hans Verkuil
2024-12-11  4:23   ` Arthur Marsh
2024-10-14 15:06 ` [PATCH 07/10] media: platform: " Hans Verkuil
2024-10-15  8:01   ` Neil Armstrong
2024-10-19 21:10   ` Andrzej Pietrasiewicz
2024-10-27 12:53   ` Andrzej Pietrasiewicz
2024-10-14 15:06 ` [PATCH 08/10] media: common: saa7146: " Hans Verkuil
2024-10-14 15:06 ` [PATCH 09/10] staging: media: " Hans Verkuil
2024-10-15  8:00   ` Neil Armstrong
2024-10-16  7:50   ` Luca Ceresoli
2024-10-14 15:06 ` [PATCH 10/10] media: samples: v4l2-pci-skeleton.c: " Hans Verkuil
2024-10-14 15:13 ` [PATCH 00/10] media: start work to remove wait_prepare/finish callbacks Hans Verkuil
2024-10-14 19:16 ` Laurent Pinchart
2024-10-15 15:13 ` Shuah
2024-10-15 15:23   ` Hans Verkuil
2024-10-16 15:00     ` Shuah
2024-10-16 15:11     ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241018061403.318ce951@foz.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=alain.volmat@foss.st.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alim.akhtar@samsung.com \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=andrew@codeconstruct.com.au \
    --cc=andrey_utkin@fastmail.com \
    --cc=andrzej.hajda@intel.com \
    --cc=andrzejtp2010@gmail.com \
    --cc=andy@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=awalls@md.metrocast.net \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bin.liu@mediatek.com \
    --cc=bingbu.cao@intel.com \
    --cc=bparrot@ti.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=changhuang.liang@starfivetech.com \
    --cc=clabbe@baylibre.com \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=dafna@fastmail.com \
    --cc=daniel.almeida@collabora.com \
    --cc=devarsht@ti.com \
    --cc=digetx@gmail.com \
    --cc=djrscally@gmail.com \
    --cc=eagle.zhou@nxp.com \
    --cc=eajames@linux.ibm.com \
    --cc=eugen.hristev@collabora.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=fabien.dessenne@foss.st.com \
    --cc=fabrizio.castro.jz@renesas.com \
    --cc=festevam@gmail.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=heiko@sntech.de \
    --cc=houlong.wei@mediatek.com \
    --cc=hugues.fruchet@foss.st.com \
    --cc=hverkuil@xs4all.nl \
    --cc=ismael@iodev.co.uk \
    --cc=jacek.anaszewski@gmail.com \
    --cc=jack.zhu@starfivetech.com \
    --cc=jackson.lee@chipsnmedia.com \
    --cc=jacob-chen@iotwrt.com \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jai.luthra@linux.dev \
    --cc=jbrunet@baylibre.com \
    --cc=jean-christophe.trotin@foss.st.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=joel@jms.id.au \
    --cc=jonathanh@nvidia.com \
    --cc=kernel-list@raspberrypi.com \
    --cc=kernel@pengutronix.de \
    --cc=kernel@puri.sm \
    --cc=kflin@nuvoton.com \
    --cc=khilman@baylibre.com \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=krzk@kernel.org \
    --cc=kwliu@nuvoton.com \
    --cc=l.stelmach@samsung.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=m.szyprowski@samsung.com \
    --cc=m.tretter@pengutronix.de \
    --cc=maintainers@bluecherrydvr.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=martin.tuma@digiteqautomotive.com \
    --cc=martink@posteo.de \
    --cc=matt@ranostay.sg \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=michal.simek@amd.com \
    --cc=mikhail.ulyanov@cogentembedded.com \
    --cc=ming.qian@nxp.com \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=mirela.rabulea@nxp.com \
    --cc=mkrufky@linuxtv.org \
    --cc=mripard@kernel.org \
    --cc=nas.chung@chipsnmedia.com \
    --cc=neil.armstrong@linaro.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=p.zabel@pengutronix.de \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=quic_vgarodia@quicinc.com \
    --cc=rfoss@kernel.org \
    --cc=rjui@broadcom.com \
    --cc=rmfrfs@gmail.com \
    --cc=s.hauer@pengutronix.de \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=samuel@sholland.org \
    --cc=sbranden@broadcom.com \
    --cc=shawnguo@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=skomatineni@nvidia.com \
    --cc=slongerbeam@gmail.com \
    --cc=stanimir.k.varbanov@gmail.com \
    --cc=tfiga@chromium.org \
    --cc=thierry.reding@gmail.com \
    --cc=tian.shu.qiu@intel.com \
    --cc=tiffany.lin@mediatek.com \
    --cc=todor.too@gmail.com \
    --cc=wens@csie.org \
    --cc=xavier.roumegue@oss.nxp.com \
    --cc=yong.deng@magewell.com \
    --cc=yong.zhi@intel.com \
    --cc=yunfei.dong@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.