diff mbox series

media: exynos4-is: don't rely on the v4l2_async_subdev internals

Message ID 20220923094201.18047-1-m.szyprowski@samsung.com (mailing list archive)
State Accepted
Commit f98a5c2e1c4396488c27274ba82afc11725a4bcc
Headers show
Series media: exynos4-is: don't rely on the v4l2_async_subdev internals | expand

Commit Message

Marek Szyprowski Sept. 23, 2022, 9:42 a.m. UTC
Commit 1f391df44607 ("media: v4l2-async: Use endpoints in
__v4l2_async_nf_add_fwnode_remote()") changed the data that is stored in
the v4l2_async_subdev internals from the fwnode pointer to the parent
device to the fwnode pointer to the matched endpoint. This broke the
sensor matching code, which relied on the particular fwnode data in the
v4l2_async_subdev internals. Fix this by simply matching the
v4l2_async_subdev pointer, which is already available there.

Reported-by: Daniel Scally <djrscally@gmail.com>
Fixes: fa91f1056f17 ("[media] exynos4-is: Add support for asynchronous subdevices registration")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
 drivers/media/platform/samsung/exynos4-is/media-dev.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Daniel Scally Sept. 23, 2022, 8:35 p.m. UTC | #1
Hi Marek

On 23/09/2022 10:42, Marek Szyprowski wrote:
> Commit 1f391df44607 ("media: v4l2-async: Use endpoints in
> __v4l2_async_nf_add_fwnode_remote()") changed the data that is stored in
> the v4l2_async_subdev internals from the fwnode pointer to the parent
> device to the fwnode pointer to the matched endpoint. This broke the
> sensor matching code, which relied on the particular fwnode data in the
> v4l2_async_subdev internals. Fix this by simply matching the
> v4l2_async_subdev pointer, which is already available there.
>
> Reported-by: Daniel Scally <djrscally@gmail.com>
> Fixes: fa91f1056f17 ("[media] exynos4-is: Add support for asynchronous subdevices registration")
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---


Yeah that makes more sense to me:


Reviewed-by: Daniel Scally <djrscally@gmail.com>

>   drivers/media/platform/samsung/exynos4-is/media-dev.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/media/platform/samsung/exynos4-is/media-dev.c b/drivers/media/platform/samsung/exynos4-is/media-dev.c
> index 52b43ea04030..412213b0c384 100644
> --- a/drivers/media/platform/samsung/exynos4-is/media-dev.c
> +++ b/drivers/media/platform/samsung/exynos4-is/media-dev.c
> @@ -1380,9 +1380,7 @@ static int subdev_notifier_bound(struct v4l2_async_notifier *notifier,
>   
>   	/* Find platform data for this sensor subdev */
>   	for (i = 0; i < ARRAY_SIZE(fmd->sensor); i++)
> -		if (fmd->sensor[i].asd &&
> -		    fmd->sensor[i].asd->match.fwnode ==
> -		    of_fwnode_handle(subdev->dev->of_node))
> +		if (fmd->sensor[i].asd == asd)
>   			si = &fmd->sensor[i];
>   
>   	if (si == NULL)
On 23.09.2022 11:42, Marek Szyprowski wrote:
> Commit 1f391df44607 ("media: v4l2-async: Use endpoints in
> __v4l2_async_nf_add_fwnode_remote()") changed the data that is stored in
> the v4l2_async_subdev internals from the fwnode pointer to the parent
> device to the fwnode pointer to the matched endpoint. This broke the
> sensor matching code, which relied on the particular fwnode data in the
> v4l2_async_subdev internals. Fix this by simply matching the
> v4l2_async_subdev pointer, which is already available there.
> 
> Reported-by: Daniel Scally <djrscally@gmail.com>
> Fixes: fa91f1056f17 ("[media] exynos4-is: Add support for asynchronous subdevices registration")
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Marek Szyprowski Nov. 8, 2022, 2:14 p.m. UTC | #3
On 05.10.2022 16:47, Sylwester Nawrocki wrote:
> On 23.09.2022 11:42, Marek Szyprowski wrote:
>> Commit 1f391df44607 ("media: v4l2-async: Use endpoints in
>> __v4l2_async_nf_add_fwnode_remote()") changed the data that is stored in
>> the v4l2_async_subdev internals from the fwnode pointer to the parent
>> device to the fwnode pointer to the matched endpoint. This broke the
>> sensor matching code, which relied on the particular fwnode data in the
>> v4l2_async_subdev internals. Fix this by simply matching the
>> v4l2_async_subdev pointer, which is already available there.
>>
>> Reported-by: Daniel Scally <djrscally@gmail.com>
>> Fixes: fa91f1056f17 ("[media] exynos4-is: Add support for asynchronous subdevices registration")
>> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>

Gentle ping for merging this fix.

Best regards
Sakari Ailus Nov. 9, 2022, 9:29 a.m. UTC | #4
Hi Marek,

On Tue, Nov 08, 2022 at 03:14:14PM +0100, Marek Szyprowski wrote:
> On 05.10.2022 16:47, Sylwester Nawrocki wrote:
> > On 23.09.2022 11:42, Marek Szyprowski wrote:
> >> Commit 1f391df44607 ("media: v4l2-async: Use endpoints in
> >> __v4l2_async_nf_add_fwnode_remote()") changed the data that is stored in
> >> the v4l2_async_subdev internals from the fwnode pointer to the parent
> >> device to the fwnode pointer to the matched endpoint. This broke the
> >> sensor matching code, which relied on the particular fwnode data in the
> >> v4l2_async_subdev internals. Fix this by simply matching the
> >> v4l2_async_subdev pointer, which is already available there.
> >>
> >> Reported-by: Daniel Scally <djrscally@gmail.com>
> >> Fixes: fa91f1056f17 ("[media] exynos4-is: Add support for asynchronous subdevices registration")
> >> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> > Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> 
> Gentle ping for merging this fix.

It's in my PR to Mauro:

<URL:https://patchwork.linuxtv.org/project/linux-media/patch/Y1uVp8hHo7DYUK82@valkosipuli.retiisi.eu/>
Marek Szyprowski Nov. 9, 2022, 10:30 a.m. UTC | #5
On 09.11.2022 10:29, Sakari Ailus wrote:
> On Tue, Nov 08, 2022 at 03:14:14PM +0100, Marek Szyprowski wrote:
>> On 05.10.2022 16:47, Sylwester Nawrocki wrote:
>>> On 23.09.2022 11:42, Marek Szyprowski wrote:
>>>> Commit 1f391df44607 ("media: v4l2-async: Use endpoints in
>>>> __v4l2_async_nf_add_fwnode_remote()") changed the data that is stored in
>>>> the v4l2_async_subdev internals from the fwnode pointer to the parent
>>>> device to the fwnode pointer to the matched endpoint. This broke the
>>>> sensor matching code, which relied on the particular fwnode data in the
>>>> v4l2_async_subdev internals. Fix this by simply matching the
>>>> v4l2_async_subdev pointer, which is already available there.
>>>>
>>>> Reported-by: Daniel Scally <djrscally@gmail.com>
>>>> Fixes: fa91f1056f17 ("[media] exynos4-is: Add support for asynchronous subdevices registration")
>>>> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
>>> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
>> Gentle ping for merging this fix.
> It's in my PR to Mauro:

Thanks for pointing this. I missed that. Sorry for the noise.

Best regards
diff mbox series

Patch

diff --git a/drivers/media/platform/samsung/exynos4-is/media-dev.c b/drivers/media/platform/samsung/exynos4-is/media-dev.c
index 52b43ea04030..412213b0c384 100644
--- a/drivers/media/platform/samsung/exynos4-is/media-dev.c
+++ b/drivers/media/platform/samsung/exynos4-is/media-dev.c
@@ -1380,9 +1380,7 @@  static int subdev_notifier_bound(struct v4l2_async_notifier *notifier,
 
 	/* Find platform data for this sensor subdev */
 	for (i = 0; i < ARRAY_SIZE(fmd->sensor); i++)
-		if (fmd->sensor[i].asd &&
-		    fmd->sensor[i].asd->match.fwnode ==
-		    of_fwnode_handle(subdev->dev->of_node))
+		if (fmd->sensor[i].asd == asd)
 			si = &fmd->sensor[i];
 
 	if (si == NULL)