From: Jacek Anaszewski <j.anaszewski@samsung.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: linux-media@vger.kernel.org, linux-leds@vger.kernel.org,
cooloney@gmail.com, g.liakhovetski@gmx.de,
s.nawrocki@samsung.com, laurent.pinchart@ideasonboard.com,
mchehab@osg.samsung.com
Subject: Re: [PATCH 4/5] leds: aat1290: Pass dev and dev->of_node to v4l2_flash_init()
Date: Wed, 20 May 2015 12:37:03 +0200 [thread overview]
Message-ID: <555C63CF.2020304@samsung.com> (raw)
In-Reply-To: <555C582E.8000807@samsung.com>
On 05/20/2015 11:47 AM, Jacek Anaszewski wrote:
> Hi Sakari,
>
> On 05/20/2015 01:04 AM, Sakari Ailus wrote:
>> Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
>> ---
>> drivers/leds/leds-aat1290.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/leds/leds-aat1290.c b/drivers/leds/leds-aat1290.c
>> index c656a2d..71bf6bb 100644
>> --- a/drivers/leds/leds-aat1290.c
>> +++ b/drivers/leds/leds-aat1290.c
>> @@ -524,9 +524,8 @@ static int aat1290_led_probe(struct
>> platform_device *pdev)
>> led_cdev->dev->of_node = sub_node;
>>
>> /* Create V4L2 Flash subdev. */
>> - led->v4l2_flash = v4l2_flash_init(fled_cdev,
>> - &v4l2_flash_ops,
>> - &v4l2_sd_cfg);
>> + led->v4l2_flash = v4l2_flash_init(dev, NULL, fled_cdev,
>> + &v4l2_flash_ops, &v4l2_sd_cfg);
>
> Here the first argument should be led_cdev->dev, not dev, which is
> &pdev->dev, whereas led_cdev->dev is returned by
> device_create_with_groups (it takes dev as a parent) called from
> led_classdev_register.
The reason for this is the fact that pdev->dev has its of_node
field initialized, which makes v4l2_async trying to match
subdev by parent node of a LED device, not by sub-LED related
DT node.
From your patches it looks like you want to guarantee that
v4l2_subdev's dev field will point to the struct device
related to the LED controller, not to the sub-LED.
If so, then the second argument of v4l2_flash_init mustn't
be NULL.
I am however wondering if in case of LEDs the struct v4l2_subdev's dev
field couldn't be made pointing to sub-LEDs related struct device,
which would allow for avoiding the modifications in v4l2-async.
of_node field of struct device returned by device_create_with_groups
is NULL, and basically the remaining fields are copied from the parent.
In my approach I was just assigning to it the sub-LED related of_node.
>> if (IS_ERR(led->v4l2_flash)) {
>> ret = PTR_ERR(led->v4l2_flash);
>> goto error_v4l2_flash_init;
>>
>
>
--
Best Regards,
Jacek Anaszewski
next prev parent reply other threads:[~2015-05-20 10:37 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-19 23:04 [PATCH 0/5] V4L2 flash API wrapper improvements Sakari Ailus
2015-05-19 23:04 ` [PATCH 1/5] v4l: async: Add a pointer to of_node to struct v4l2_subdev, match it Sakari Ailus
2015-05-20 14:20 ` Jacek Anaszewski
2015-05-23 18:47 ` Laurent Pinchart
2015-05-31 21:54 ` Sakari Ailus
2015-05-31 22:24 ` [PATCH v1.1 " Sakari Ailus
2015-06-02 2:47 ` Laurent Pinchart
2015-06-09 8:05 ` Sakari Ailus
2015-06-10 21:27 ` [PATCH v1.2 " Sakari Ailus
2015-06-11 19:18 ` [PATCH v1.3 " Sakari Ailus
2015-06-11 19:27 ` Laurent Pinchart
2015-06-12 6:41 ` Sakari Ailus
2015-06-15 18:34 ` Bryan Wu
2015-05-19 23:04 ` [PATCH 2/5] v4l: flash: Make v4l2_flash_init() and v4l2_flash_release() functions always Sakari Ailus
2015-05-23 18:40 ` Laurent Pinchart
2015-05-19 23:04 ` [PATCH 3/5] v4l: flash: Pass struct device and device_node to v4l2_flash_init() Sakari Ailus
2015-05-19 23:04 ` [PATCH 4/5] leds: aat1290: Pass dev and dev->of_node " Sakari Ailus
2015-05-20 9:47 ` Jacek Anaszewski
2015-05-20 10:19 ` Sakari Ailus
2015-05-20 10:37 ` Jacek Anaszewski [this message]
2015-05-20 12:27 ` Sakari Ailus
2015-05-20 13:47 ` Jacek Anaszewski
2015-05-20 14:31 ` Sakari Ailus
2015-05-21 8:54 ` Jacek Anaszewski
2015-05-21 10:06 ` Sakari Ailus
2015-05-21 12:13 ` Jacek Anaszewski
2015-05-21 13:14 ` Sakari Ailus
2015-05-19 23:04 ` [PATCH 5/5] leds: max77693: " Sakari Ailus
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=555C63CF.2020304@samsung.com \
--to=j.anaszewski@samsung.com \
--cc=cooloney@gmail.com \
--cc=g.liakhovetski@gmx.de \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-leds@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@osg.samsung.com \
--cc=s.nawrocki@samsung.com \
--cc=sakari.ailus@iki.fi \
/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.