<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/drivers/media/platform/atmel, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kobert.dev/pm24.git/atom?h=master</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2024-10-28T08:20:07Z</updated>
<entry>
<title>media: platform: drop vb2_ops_wait_prepare/finish</title>
<updated>2024-10-28T08:20:07Z</updated>
<author>
<name>Hans Verkuil</name>
<email>hverkuil@xs4all.nl</email>
</author>
<published>2024-10-14T15:06:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=4bf194e10e42aa0759eb5cc0173b76d3523654b4'/>
<id>urn:sha1:4bf194e10e42aa0759eb5cc0173b76d3523654b4</id>
<content type='text'>
Since commit 88785982a19d ("media: vb2: use lock if wait_prepare/finish
are NULL") it is no longer needed to set the wait_prepare/finish
vb2_ops callbacks as long as the lock field in vb2_queue is set.

Since the vb2_ops_wait_prepare/finish callbacks already rely on that field,
we can safely drop these callbacks.

This simplifies the code and this is a step towards the goal of deleting
these callbacks.

Signed-off-by: Hans Verkuil &lt;hverkuil@xs4all.nl&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt; # for meson-ge2d
Acked-by: Andrzej Pietrasiewicz &lt;andrzejtp2010@gmail.com&gt;
</content>
</entry>
<entry>
<title>media: Switch back to struct platform_driver::remove()</title>
<updated>2024-10-12T14:28:25Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@baylibre.com</email>
</author>
<published>2024-09-25T11:45:47Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=b8fc42dc065742bc68df6a61a2aff8cbe364fa17'/>
<id>urn:sha1:b8fc42dc065742bc68df6a61a2aff8cbe364fa17</id>
<content type='text'>
After commit 0edb555a65d1 ("platform: Make platform_driver::remove()
return void") .remove() is (again) the right callback to implement for
platform drivers.

Convert all platform drivers below drivers/media to use .remove(), with
the eventual goal to drop struct platform_driver::remove_new(). As
.remove() and .remove_new() have the same prototypes, conversion is done
by just changing the structure member name in the driver initializer.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@baylibre.com&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
</content>
</entry>
<entry>
<title>media: atmel-isi: use 'time_left' variable with wait_for_completion_timeout()</title>
<updated>2024-08-09T05:56:39Z</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa+renesas@sang-engineering.com</email>
</author>
<published>2024-08-05T21:51:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=64979ac2aa7773d3a77c861c8eb4c006f9033eec'/>
<id>urn:sha1:64979ac2aa7773d3a77c861c8eb4c006f9033eec</id>
<content type='text'>
There is a confusing pattern in the kernel to use a variable named
'timeout' to store the result of wait_for_completion_timeout() causing
patterns like:

        timeout = wait_for_completion_timeout(...)
        if (!timeout) return -ETIMEDOUT;

with all kinds of permutations. Use 'time_left' as a variable to make the
code self explaining.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
</content>
</entry>
<entry>
<title>media: platform: replace of_graph_get_next_endpoint()</title>
<updated>2024-02-23T13:33:32Z</updated>
<author>
<name>Kuninori Morimoto</name>
<email>kuninori.morimoto.gx@renesas.com</email>
</author>
<published>2024-02-20T01:16:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=5848915b912d7607dcf59ca6d89b81ef70a62d4f'/>
<id>urn:sha1:5848915b912d7607dcf59ca6d89b81ef70a62d4f</id>
<content type='text'>
From DT point of view, in general, drivers should be asking for a
specific port number because their function is fixed in the binding.

of_graph_get_next_endpoint() doesn't match to this concept.

Simply replace

	- of_graph_get_next_endpoint(xxx, NULL);
	+ of_graph_get_endpoint_by_regs(xxx, 0, -1);

Link: https://lore.kernel.org/r/20240202174941.GA310089-robh@kernel.org
Signed-off-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
</content>
</entry>
<entry>
<title>media: videobuf2: core: Rename min_buffers_needed field in vb2_queue</title>
<updated>2023-12-13T16:31:27Z</updated>
<author>
<name>Benjamin Gaignard</name>
<email>benjamin.gaignard@collabora.com</email>
</author>
<published>2023-12-11T13:32:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=80c2b40a51393add616a1fd186a1cc10bd676a3f'/>
<id>urn:sha1:80c2b40a51393add616a1fd186a1cc10bd676a3f</id>
<content type='text'>
Rename min_buffers_needed into min_queued_buffers and update
the documentation about it.

Signed-off-by: Benjamin Gaignard &lt;benjamin.gaignard@collabora.com&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
[hverkuil: Drop the change where min_queued_buffers + 1 buffers would be]
[hverkuil: allocated. Now this patch only renames this field instead of making]
[hverkuil: a functional change as well.]
[hverkuil: Renamed 3 remaining min_buffers_needed occurrences.]
</content>
</entry>
<entry>
<title>media: atmel-isi: Fix crash due to missing subdev in state</title>
<updated>2023-12-13T12:21:19Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2023-12-08T12:06:37Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=1545c2b92bdf408e860dea2cf958b65e17a0ce18'/>
<id>urn:sha1:1545c2b92bdf408e860dea2cf958b65e17a0ce18</id>
<content type='text'>
As a result of converting to the stream-aware state functions, commit
bc0e8d91feec ("media: v4l: subdev: Switch to stream-aware state
functions") caused the sd pointer of the state passed to the
v4l2_subdev_state_get_crop() function to be dereferenced. It however
missed that the atmel-isi driver creates the v4l2_subdev_state instance
on the stack (which it shouldn't do, but that's a separate problem),
without initializing the sd field. This results in a null pointer
dereference.

Fix it by initializing the sd field.

Fixes: bc0e8d91feec ("media: v4l: subdev: Switch to stream-aware state functions")
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
</content>
</entry>
<entry>
<title>media: v4l: subdev: Switch to stream-aware state functions</title>
<updated>2023-11-23T17:57:47Z</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@linux.intel.com</email>
</author>
<published>2023-10-13T07:37:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=bc0e8d91feec72b19199298dca470c5816a52105'/>
<id>urn:sha1:bc0e8d91feec72b19199298dca470c5816a52105</id>
<content type='text'>
Switch all drivers accessing sub-device state to use the stream-aware
functions. We will soon remove the old ones.

This patch has been generated using the following Coccinelle script:

---------8&lt;------------
@@
expression E1, E2, E3;

@@

- v4l2_subdev_get_pad_format(E1, E2, E3)
+ v4l2_subdev_state_get_format(E2, E3)

@@
expression E1, E2, E3;

@@

- v4l2_subdev_get_pad_crop(E1, E2, E3)
+ v4l2_subdev_state_get_crop(E2, E3)

@@
expression E1, E2, E3;

@@

- v4l2_subdev_get_pad_compose(E1, E2, E3)
+ v4l2_subdev_state_get_compose(E2, E3)

@@
expression E1, E2, E3;

@@

- v4l2_subdev_get_try_format(E1, E2, E3)
+ v4l2_subdev_state_get_format(E2, E3)

@@
expression E1, E2, E3;

@@

- v4l2_subdev_get_try_crop(E1, E2, E3)
+ v4l2_subdev_state_get_crop(E2, E3)

@@
expression E1, E2, E3;

@@

- v4l2_subdev_get_try_compose(E1, E2, E3)
+ v4l2_subdev_state_get_compose(E2, E3)
---------8&lt;------------

Additionally drivers/media/i2c/s5k5baf.c and
drivers/media/platform/samsung/s3c-camif/camif-capture.c have been
manually changed as Coccinelle didn't. Further local variables have been
removed as they became unused as a result of the other changes.

Also Coccinelle introduced indentation by space in files
drivers/media/i2c/st-mipid02.c and
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c. This has been also
corrected.

The diff from Coccinelle-generated changes are:

&gt; diff --git b/drivers/media/i2c/imx319.c a/drivers/media/i2c/imx319.c
&gt; index e549692ff478..420984382173 100644
&gt; --- b/drivers/media/i2c/imx319.c
&gt; +++ a/drivers/media/i2c/imx319.c
&gt; @@ -2001,7 +2001,6 @@ static int imx319_do_get_pad_format(struct imx319 *imx319,
&gt;  				    struct v4l2_subdev_format *fmt)
&gt;  {
&gt;  	struct v4l2_mbus_framefmt *framefmt;
&gt; -	struct v4l2_subdev *sd = &amp;imx319-&gt;sd;
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt;  		framefmt = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt; diff --git b/drivers/media/i2c/imx355.c a/drivers/media/i2c/imx355.c
&gt; index 96bdde685d65..e1b1d2fc79dd 100644
&gt; --- b/drivers/media/i2c/imx355.c
&gt; +++ a/drivers/media/i2c/imx355.c
&gt; @@ -1299,7 +1299,6 @@ static int imx355_do_get_pad_format(struct imx355 *imx355,
&gt;  				    struct v4l2_subdev_format *fmt)
&gt;  {
&gt;  	struct v4l2_mbus_framefmt *framefmt;
&gt; -	struct v4l2_subdev *sd = &amp;imx355-&gt;sd;
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt;  		framefmt = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt; diff --git b/drivers/media/i2c/ov08x40.c a/drivers/media/i2c/ov08x40.c
&gt; index ca799bbcfdb7..abbb0b774d43 100644
&gt; --- b/drivers/media/i2c/ov08x40.c
&gt; +++ a/drivers/media/i2c/ov08x40.c
&gt; @@ -2774,7 +2774,6 @@ static int ov08x40_do_get_pad_format(struct ov08x40 *ov08x,
&gt;  				     struct v4l2_subdev_format *fmt)
&gt;  {
&gt;  	struct v4l2_mbus_framefmt *framefmt;
&gt; -	struct v4l2_subdev *sd = &amp;ov08x-&gt;sd;
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt;  		framefmt = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt; diff --git b/drivers/media/i2c/ov13858.c a/drivers/media/i2c/ov13858.c
&gt; index 7816d9787c61..09387e335d80 100644
&gt; --- b/drivers/media/i2c/ov13858.c
&gt; +++ a/drivers/media/i2c/ov13858.c
&gt; @@ -1316,7 +1316,6 @@ static int ov13858_do_get_pad_format(struct ov13858 *ov13858,
&gt;  				     struct v4l2_subdev_format *fmt)
&gt;  {
&gt;  	struct v4l2_mbus_framefmt *framefmt;
&gt; -	struct v4l2_subdev *sd = &amp;ov13858-&gt;sd;
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt;  		framefmt = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt; diff --git b/drivers/media/i2c/ov13b10.c a/drivers/media/i2c/ov13b10.c
&gt; index 268cd4b03f9c..c06411d5ee2b 100644
&gt; --- b/drivers/media/i2c/ov13b10.c
&gt; +++ a/drivers/media/i2c/ov13b10.c
&gt; @@ -1001,7 +1001,6 @@ static int ov13b10_do_get_pad_format(struct ov13b10 *ov13b,
&gt;  				     struct v4l2_subdev_format *fmt)
&gt;  {
&gt;  	struct v4l2_mbus_framefmt *framefmt;
&gt; -	struct v4l2_subdev *sd = &amp;ov13b-&gt;sd;
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt;  		framefmt = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt; diff --git b/drivers/media/i2c/s5c73m3/s5c73m3-core.c a/drivers/media/i2c/s5c73m3/s5c73m3-core.c
&gt; index 47605e36bc60..8f9b5713daf7 100644
&gt; --- b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
&gt; +++ a/drivers/media/i2c/s5c73m3/s5c73m3-core.c
&gt; @@ -819,7 +819,6 @@ static void s5c73m3_oif_try_format(struct s5c73m3 *state,
&gt;  				   struct v4l2_subdev_format *fmt,
&gt;  				   const struct s5c73m3_frame_size **fs)
&gt;  {
&gt; -	struct v4l2_subdev *sd = &amp;state-&gt;sensor_sd;
&gt;  	u32 code;
&gt;
&gt;  	switch (fmt-&gt;pad) {
&gt; diff --git a/drivers/media/i2c/s5k5baf.c b/drivers/media/i2c/s5k5baf.c
&gt; index 67da2045f543..03ccfb0e1e11 100644
&gt; --- a/drivers/media/i2c/s5k5baf.c
&gt; +++ b/drivers/media/i2c/s5k5baf.c
&gt; @@ -1472,14 +1472,11 @@ static int s5k5baf_set_selection(struct v4l2_subdev *sd,
&gt;
&gt;  	if (sel-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt;  		rects = (struct v4l2_rect * []) {
&gt; -				&amp;s5k5baf_cis_rect,
&gt; -				v4l2_subdev_get_try_crop(sd, sd_state,
&gt; -							 PAD_CIS),
&gt; -				v4l2_subdev_get_try_compose(sd, sd_state,
&gt; -							    PAD_CIS),
&gt; -				v4l2_subdev_get_try_crop(sd, sd_state,
&gt; -							 PAD_OUT)
&gt; -			};
&gt; +			&amp;s5k5baf_cis_rect,
&gt; +			v4l2_subdev_state_get_crop(sd_state, PAD_CIS),
&gt; +			v4l2_subdev_state_get_compose(sd_state, PAD_CIS),
&gt; +			v4l2_subdev_state_get_crop(sd_state, PAD_OUT)
&gt; +		};
&gt;  		s5k5baf_set_rect_and_adjust(rects, rtype, &amp;sel-&gt;r);
&gt;  		return 0;
&gt;  	}
&gt; diff --git b/drivers/media/platform/samsung/s3c-camif/camif-capture.c a/drivers/media/platform/samsung/s3c-camif/camif-capture.c
&gt; index 295e083f38e8..be58260ea67e 100644
&gt; --- b/drivers/media/platform/samsung/s3c-camif/camif-capture.c
&gt; +++ a/drivers/media/platform/samsung/s3c-camif/camif-capture.c
&gt; @@ -1216,7 +1216,7 @@ static int s3c_camif_subdev_get_fmt(struct v4l2_subdev *sd,
&gt;  	struct v4l2_mbus_framefmt *mf = &amp;fmt-&gt;format;
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt; -		mf = v4l2_subdev_get_try_format(sd, sd_state, fmt-&gt;pad);
&gt; +		mf = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt;  		fmt-&gt;format = *mf;
&gt;  		return 0;
&gt;  	}
&gt; @@ -1305,7 +1305,7 @@ static int s3c_camif_subdev_set_fmt(struct v4l2_subdev *sd,
&gt;  	__camif_subdev_try_format(camif, mf, fmt-&gt;pad);
&gt;
&gt;  	if (fmt-&gt;which == V4L2_SUBDEV_FORMAT_TRY) {
&gt; -		mf = v4l2_subdev_get_try_format(sd, sd_state, fmt-&gt;pad);
&gt; +		mf = v4l2_subdev_state_get_format(sd_state, fmt-&gt;pad);
&gt;  		*mf = fmt-&gt;format;
&gt;  		mutex_unlock(&amp;camif-&gt;lock);
&gt;  		return 0;
&gt; diff --git b/drivers/media/platform/ti/cal/cal-camerarx.c a/drivers/media/platform/ti/cal/cal-camerarx.c
&gt; index cea454ed9c20..61433744c6c4 100644
&gt; --- b/drivers/media/platform/ti/cal/cal-camerarx.c
&gt; +++ a/drivers/media/platform/ti/cal/cal-camerarx.c
&gt; @@ -621,8 +621,6 @@ static int cal_camerarx_sd_enum_mbus_code(struct v4l2_subdev *sd,
&gt;  					  struct v4l2_subdev_state *state,
&gt;  					  struct v4l2_subdev_mbus_code_enum *code)
&gt;  {
&gt; -	struct cal_camerarx *phy = to_cal_camerarx(sd);
&gt; -
&gt;  	/* No transcoding, source and sink codes must match. */
&gt;  	if (cal_rx_pad_is_source(code-&gt;pad)) {
&gt;  		struct v4l2_mbus_framefmt *fmt;
&gt; diff --git b/drivers/staging/media/imx/imx-ic-prp.c a/drivers/staging/media/imx/imx-ic-prp.c
&gt; index dd558fac6477..61d69f19657e 100644
&gt; --- b/drivers/staging/media/imx/imx-ic-prp.c
&gt; +++ a/drivers/staging/media/imx/imx-ic-prp.c
&gt; @@ -82,8 +82,6 @@ static struct v4l2_mbus_framefmt *
&gt;  __prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,
&gt;  	      unsigned int pad, enum v4l2_subdev_format_whence which)
&gt;  {
&gt; -	struct imx_ic_priv *ic_priv = priv-&gt;ic_priv;
&gt; -
&gt;  	if (which == V4L2_SUBDEV_FORMAT_TRY)
&gt;  		return v4l2_subdev_state_get_format(sd_state, pad);
&gt;  	else
&gt; diff --git b/drivers/staging/media/imx/imx-ic-prpencvf.c a/drivers/staging/media/imx/imx-ic-prpencvf.c
&gt; index 02db7dbb884b..ec73c901079e 100644
&gt; --- b/drivers/staging/media/imx/imx-ic-prpencvf.c
&gt; +++ a/drivers/staging/media/imx/imx-ic-prpencvf.c
&gt; @@ -790,8 +790,6 @@ static struct v4l2_mbus_framefmt *
&gt;  __prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,
&gt;  	      unsigned int pad, enum v4l2_subdev_format_whence which)
&gt;  {
&gt; -	struct imx_ic_priv *ic_priv = priv-&gt;ic_priv;
&gt; -
&gt;  	if (which == V4L2_SUBDEV_FORMAT_TRY)
&gt;  		return v4l2_subdev_state_get_format(sd_state, pad);
&gt;  	else
&gt; diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
&gt; index 9c9361354c00..b08a249b5fdd 100644
&gt; --- a/drivers/media/i2c/st-mipid02.c
&gt; +++ b/drivers/media/i2c/st-mipid02.c
&gt; @@ -751,7 +751,7 @@ static void mipid02_set_fmt_source(struct v4l2_subdev *sd,
&gt;  		format-&gt;format = bridge-&gt;fmt;
&gt;  	else
&gt;  		format-&gt;format = *v4l2_subdev_state_get_format(sd_state,
&gt; -						               MIPID02_SINK_0);
&gt; +							       MIPID02_SINK_0);
&gt;
&gt;  	/* but code may need to be converted */
&gt;  	format-&gt;format.code = serial_to_parallel_code(format-&gt;format.code);
&gt; diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
&gt; index 117912d3bfbd..96353648c032 100644
&gt; --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
&gt; +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
&gt; @@ -319,7 +319,7 @@ static void rkisp1_isp_start(struct rkisp1_isp *isp,
&gt;  	rkisp1_write(rkisp1, RKISP1_CIF_ISP_CTRL, val);
&gt;
&gt;  	src_fmt = v4l2_subdev_state_get_format(sd_state,
&gt; -				               RKISP1_ISP_PAD_SOURCE_VIDEO);
&gt; +					       RKISP1_ISP_PAD_SOURCE_VIDEO);
&gt;  	src_info = rkisp1_mbus_info_get_by_code(src_fmt-&gt;code);
&gt;
&gt;  	if (src_info-&gt;pixel_enc != V4L2_PIXEL_ENC_BAYER)
&gt; @@ -475,9 +475,9 @@ static void rkisp1_isp_set_src_fmt(struct rkisp1_isp *isp,
&gt;  	sink_fmt = v4l2_subdev_state_get_format(sd_state,
&gt;  						RKISP1_ISP_PAD_SINK_VIDEO);
&gt;  	src_fmt = v4l2_subdev_state_get_format(sd_state,
&gt; -				               RKISP1_ISP_PAD_SOURCE_VIDEO);
&gt; +					       RKISP1_ISP_PAD_SOURCE_VIDEO);
&gt;  	src_crop = v4l2_subdev_state_get_crop(sd_state,
&gt; -				              RKISP1_ISP_PAD_SOURCE_VIDEO);
&gt; +					      RKISP1_ISP_PAD_SOURCE_VIDEO);
&gt;
&gt;  	/*
&gt;  	 * Media bus code. The ISP can operate in pass-through mode (Bayer in,

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Reviewed-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: atmel-isi: Use accessors for pad config 'try_*' fields</title>
<updated>2023-11-23T17:20:38Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2023-10-23T21:40:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=f9c12d6783580f22f283bfc733fdd6c41a0c690d'/>
<id>urn:sha1:f9c12d6783580f22f283bfc733fdd6c41a0c690d</id>
<content type='text'>
The 'try_*' fields of the v4l2_subdev_pad_config structure are meant to
be accessed through helper functions. Replace direct access with usage
of the v4l2_subdev_get_pad_format(), v4l2_subdev_get_pad_crop() and
v4l2_subdev_get_pad_compose() helpers.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: v4l: async: Set v4l2_device and subdev in async notifier init</title>
<updated>2023-08-10T05:58:32Z</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@linux.intel.com</email>
</author>
<published>2023-02-23T15:24:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=b8ec754ae4c563f6aab8c0cb47aeb2eae67f1da3'/>
<id>urn:sha1:b8ec754ae4c563f6aab8c0cb47aeb2eae67f1da3</id>
<content type='text'>
Set the v4l2_device already in async notifier init, so struct device
related to it will be available before the notifier is registered. This
requires separating notifier initialisation into two functions, one that
takes v4l2_device as its argument, v4l2_async_nf_init and
v4l2_async_subdev_nf_init, for sub-device notifiers. Registering the
notifier will use a single function, v4l2_async_nf_register.

This is done in order to make struct device available earlier, during
construction of the async connections, for sensible debug prints.

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Tested-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt; # imx6qp
Tested-by: Niklas Söderlund &lt;niklas.soderlund@ragnatech.se&gt; # rcar + adv746x
Tested-by: Aishwarya Kothari &lt;aishwarya.kothari@toradex.com&gt; # Apalis i.MX6Q with TC358743
Tested-by: Lad Prabhakar &lt;prabhakar.mahadev-lad.rj@bp.renesas.com&gt; # Renesas RZ/G2L SMARC
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connection</title>
<updated>2023-07-28T08:44:25Z</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@linux.intel.com</email>
</author>
<published>2023-02-16T13:54:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=adb2dcd5f2d49d3ba3171160fabd4be0d4b2a86c'/>
<id>urn:sha1:adb2dcd5f2d49d3ba3171160fabd4be0d4b2a86c</id>
<content type='text'>
Rename v4l2_async_subdev as v4l2_async_connection, in order to
differentiate between the sub-devices and their connections: one
sub-device can have many connections but the V4L2 async framework has so
far allowed just a single one. Connections in this context will later
translate into either MC ancillary or data links.

This patch prepares changing that relation by changing existing users of
v4l2_async_subdev to switch to v4l2_async_connection. Async sub-devices
themselves will not be needed anymore

Additionally, __v4l2_async_nf_add_subdev() has been renamed
__v4l2_async_nf_add_connection().

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Tested-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt; # imx6qp
Tested-by: Niklas Söderlund &lt;niklas.soderlund@ragnatech.se&gt; # rcar + adv746x
Tested-by: Aishwarya Kothari &lt;aishwarya.kothari@toradex.com&gt; # Apalis i.MX6Q with TC358743
Tested-by: Lad Prabhakar &lt;prabhakar.mahadev-lad.rj@bp.renesas.com&gt; # Renesas RZ/G2L SMARC
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
</feed>
