[PATCH v3 1/4] leds: Add of_led_get() and led_put()

Jean-Jacques Hiblot jjhiblot at ti.com
Fri Jul 12 13:52:36 UTC 2019


hi Pavel

On 10/07/2019 21:09, Pavel Machek wrote:
> On Wed 2019-07-10 14:39:29, Jean-Jacques Hiblot wrote:
>> From: Tomi Valkeinen <tomi.valkeinen at ti.com>
>>
>> This patch adds basic support for a kernel driver to get a LED device.
>> This will be used by the led-backlight driver.
>>
>> Only OF version is implemented for now, and the behavior is similar to
>> PWM's of_pwm_get() and pwm_put().
>>
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
>> Signed-off-by: Jean-Jacques Hiblot <jjhiblot at ti.com>
>>
>>
>> @@ -214,6 +215,55 @@ static int led_resume(struct device *dev)
>>   
>>   static SIMPLE_DEV_PM_OPS(leds_class_dev_pm_ops, led_suspend, led_resume);
>>   
>> +static int led_match_led_node(struct device *led_dev, const void *data)
>> +{
>> +	return led_dev->of_node == data ? 1 : 0;
>> +}
> Get rid of the "? 1 : 0"?
OK
>
>
>> +	led_node = of_parse_phandle(np, "leds", index);
>> +	if (!led_node)
>> +		return ERR_PTR(-ENOENT);
>> +	led_dev = class_find_device(leds_class, NULL, led_node,
>> +		led_match_led_node);
>> +	of_node_put(led_node);
>> +
>> +	if (!led_dev)
>> +		return ERR_PTR(-EPROBE_DEFER);
> Won't this defer probe "forever" when the driver is not available?

Yes it will.

However I don't see how we can fix this because we don't know for sure 
that the LED driver will not become available at a later time.

JJ



>


More information about the dri-devel mailing list