Re: [PATCH] platform: set of_node in platform_device_register_full()

From: Måns Rullgård
Date: Mon Feb 18 2019 - 06:03:39 EST


"Rafael J. Wysocki" <rafael@xxxxxxxxxx> writes:

> On Sat, Feb 16, 2019 at 5:50 PM Mans Rullgard <mans@xxxxxxxxx> wrote:
>>
>> If the provided fwnode is an OF node, set dev.of_node as well.
>>
>> Signed-off-by: Mans Rullgard <mans@xxxxxxxxx>
>> ---
>> 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));
>
> of_node_get() generally does a kobject_get() on the node's kobject, so
> when is that reference dropped? Or if it doesn't need to be dropped
> at all, why is this the case?

platform_device_release() calls of_device_node_put().

--
Måns Rullgård