From: "Måns Rullgård" <mans@mansr.com>
To: Johan Hovold <johan@kernel.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] platform: set of_node in platform_device_register_full()
Date: Wed, 20 Feb 2019 12:12:34 +0000 [thread overview]
Message-ID: <yw1ximxewte5.fsf@mansr.com> (raw)
In-Reply-To: <20190220115117.GK4072@localhost> (Johan Hovold's message of "Wed, 20 Feb 2019 12:51:17 +0100")
Johan Hovold <johan@kernel.org> writes:
> On Wed, Feb 20, 2019 at 11:35:06AM +0000, Mans Rullgard wrote:
>> If the provided fwnode is an OF node, set dev.of_node as well.
>>
>> Some drivers are just shims that create extra "glue" devices with the
>> DT device as parent and have the real driver bind to these. In these
>> cases, the glue device needs to get a reference to the original DT node
>> in order for the main driver to access properties and child nodes.
>>
>> For example, the sunxi-musb driver creates such a glue device using
>> platform_device_register_full(). Consequently, devices attached to
>> this USB interface don't get associated with DT nodes, if present,
>> the way they do with EHCI.
>>
>> This change will allow sunxi-musb and similar driver to easily
>> propagate the DT node to child devices as required.
>
> Just a drive-by comment, didn't look to closely at this patch, but this
> all sounds familiar.
>
> Note that if both platform devices are bound to drivers you may end up
> with some resources like pinctrl which are handled automatically by
> driver core at probe time to be requested twice (and failing the second
> time).
>
> Take a look at 4e75e1d7dac9 ("driver core: add helper to reuse a
> device-tree node"), which provides a means to avoid this, and
> 49484abd93ab ("USB: musb: dsps: propagate device-tree node").
Thanks, and ugh. So we should be setting the of_node_reused flag when
this is the case. It's easy for the musb-dsps driver since it doesn't
use platform_device_register_full() and can do this before the
device_add() call. How can we convey that this flag needs to be set?
>> Signed-off-by: Mans Rullgard <mans@mansr.com>
>> ---
>> drivers/base/platform.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
>> index dff82a3c2caa..853a1d0e5845 100644
>> --- a/drivers/base/platform.c
>> +++ b/drivers/base/platform.c
>> @@ -512,6 +512,7 @@ struct platform_device *platform_device_register_full(
>>
>> pdev->dev.parent = pdevinfo->parent;
>> pdev->dev.fwnode = pdevinfo->fwnode;
>> + pdev->dev.of_node = of_node_get(to_of_node(pdev->dev.fwnode));
>>
>> if (pdevinfo->dma_mask) {
>> /*
>
> Johan
--
Måns Rullgård
next prev parent reply other threads:[~2019-02-20 12:12 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-16 16:45 [PATCH] platform: set of_node in platform_device_register_full() Mans Rullgard
2019-02-17 21:36 ` Rafael J. Wysocki
2019-02-18 11:03 ` Måns Rullgård
2019-02-20 9:50 ` Rafael J. Wysocki
2019-02-20 10:41 ` Måns Rullgård
2019-02-20 10:51 ` Rafael J. Wysocki
2019-02-20 11:02 ` Måns Rullgård
2019-02-20 11:08 ` Rafael J. Wysocki
2019-02-20 11:35 ` Mans Rullgard
2019-02-20 11:51 ` Johan Hovold
2019-02-20 12:12 ` Måns Rullgård [this message]
2019-02-20 12:18 ` Rafael J. Wysocki
2019-02-20 12:26 ` Måns Rullgård
2019-02-20 21:50 ` Rafael J. Wysocki
2019-02-20 11:53 ` Måns Rullgård
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=yw1ximxewte5.fsf@mansr.com \
--to=mans@mansr.com \
--cc=gregkh@linuxfoundation.org \
--cc=johan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael@kernel.org \
/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.