[PATCH] of: platform: don't fail of_find_device_by_node() if no driver bound

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Oct 4 23:53:15 PDT 2023


Hello Sascha,

On 26.09.23 13:38, Sascha Hauer wrote:
> On Thu, Sep 14, 2023 at 09:30:18AM +0200, Ahmad Fatoum wrote:
>> of_find_device_by_node() may be called by a driver following
>> of_platform_populate in order to bind the children to drivers.
>> It's thus wrong to return NULL when a device has been found, but no
>> driver was registered. That also aligns the function with the
>> expectation resulting from its name: A device is found and devices may
>> be bound or not.
> 
> I hesitated applying this one because I am not sure if some users expect
> to have a driver bound when of_find_device_by_node() returns a valid
> pointer.
> 
> I applied it now, let's see what happens.

I ran into this porting the CAAM driver to work on i.MX8M. I don't know
if existing drivers are affected, but it's the correct thing to do.

> 
> Sascha
> 
>>
>> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
>> ---
>>  drivers/of/platform.c | 6 ++----
>>  1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
>> index bd5f2ad82c6b..1f79a539f541 100644
>> --- a/drivers/of/platform.c
>> +++ b/drivers/of/platform.c
>> @@ -23,11 +23,9 @@
>>  struct device *of_find_device_by_node(struct device_node *np)
>>  {
>>  	struct device *dev;
>> -	int ret;
>>  
>> -	ret = of_device_ensure_probed(np);
>> -	if (ret)
>> -		return NULL;
>> +	/* Not having a driver is not an error here */
>> +	(void)of_device_ensure_probed(np);
>>  
>>  	if (deep_probe_is_supported())
>>  		return np->dev;
>> -- 
>> 2.39.2
>>
>>
>>
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list