Thread (28 messages) 28 messages, 6 authors, 2012-07-09

Re: [PATCH] pwm-backlight: add regulator and GPIO support

flat view

From: Sascha Hauer <s.hauer@pengutronix.de>
Date: 2012-07-05 08:02:46
Also in: linux-tegra, lkml

On Thu, Jul 05, 2012 at 04:43:27PM +0900, Alex Courbot wrote:
On 07/05/2012 03:47 PM, Sascha Hauer wrote:
quoted
quoted
I thought about just checking if devm_get_regulator returned -ENODEV
and happily continue if that was the case, assuming no regulator was
declared.
And that's the problem. The get_regulator won't return -ENODEV. It will
return -EPROBE_DEFER which tells you nothing about whether a regulator
will ever be available or not.

Having a flag in platform data would be fine with me, but I know other
people think differently.

BTW in devicetree this flag implicitely exists with the power-supply
property.
One could actually question whether the whole regulator/gpio thing
should be supported at all with platform data. The platform
interface can use the function hooks in order to implement whatever
behavior it wants when the light needs to be powered on and off. The
reason for introducing optional regulator/gpio parameters is because
the DT cannot use these. Since I have no plan to remove these
function hooks, making the regulator/gpio option available in
platform data might be redundant. Any thought about this?
sounds good.
quoted
Right now the regulator core will just return -EPROBE_DEFER in both
cases. This could easily be changed in the regulator core.
Could this be because the regulator core cannot make the difference
between a not-yet-available regulator and a missing one?
It could. In regulator_dev_lookup we have:

		if (node) {
			...
		} else {
			/*
			 * If we couldn't even get the node then it's
			 * not just that the device didn't register
			 * yet, there's no node and we'll never
			 * succeed.
			 */
			*ret = -ENODEV;
		}

So here the regulator core knows that there is no regulator and never
will be. All that needs to be done is to make _regulator_get look at
that value.
There may be some side effects if we just return ERR_PTR(-ENODEV) when
regulator_dev_lookup returns -ENODEV. Maybe Mark has some comments to
this.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help