Thread (117 messages) 117 messages, 9 authors, 2015-09-16

Re: [PATCH v4 7/8] hwmon: pwm-fan: Read PWM FAN configuration from device tree

From: Guenter Roeck <linux@roeck-us.net>
Date: 2015-02-23 17:01:04
Also in: linux-pm, linux-samsung-soc, lkml

On Mon, Feb 23, 2015 at 05:51:22PM +0100, Lukasz Majewski wrote:
Hi Guenter,
quoted
On Mon, Feb 23, 2015 at 05:13:36PM +0100, Lukasz Majewski wrote:
quoted
Hi Guenter,
[ ... ]
quoted
quoted
If devicetree is not configured, of_property_count_elems_of_size
returns -ENOSYS, which is returned, causing the driver to fail
loading.
Has of_property_count_elems_of_size() returns -ENOSYS?

Maybe something has changed, but in my linux-vanila (3.19-rc4)
at ./drivers/of/base.c it returns -EINVAL, -ENODATA or number of
elements.

Have I missed something?
Hi Lukasz,

Yes, you have. Check include/linux/of.h, line 484, in latest mainline.
Ok. Now I got it.

The above situation shouldn't happen if I put of_find_property() check
on the very beginning of this function (it returns NULL when DT support
is not compiled).
Correct.
The function would look as follows:

int 
pwm_fan_of_get_cooling_data(struct device *dev, struct pwm_fan_ctx
*ctx) 
{       
        struct device_node *np = dev->of_node;
	int num, i, ret;

	if (!of_find_property(np, "cooling-levels", NULL))
		return 0;

	ret = of_property_count_u32_elems(np, "cooling-levels");
	if (ret <= 0) {
		dev_err(dev, "Wrong data!\n");
		return ret;
This should probably be something like 

		return ret ? : -EINVAL;

or ret == 0 is not an error, and you should not display an error message
in that case.

Thanks,
Guenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help