Re: [PATCH] regulator: ab8500: Fix get_mode for shared mode regulators

From: Bengt Jönsson
Date: Mon Apr 15 2013 - 08:41:25 EST

On 04/15/2013 02:13 PM, Axel Lin wrote:
I guess what you don't like with the current approach is that the driver
returns REGULATOR_MODE_IDLE in some cases where the mode register is set to
LP. But I think, with patch applied, the control may be wrong in some cases
because the regulator framework will call get_mode and see that the mode is
already correct and not call set_mode so lp_mode_req will not get updated. I
I got your point now.

My point is get_mode() should always return "correct" status by
reading register value.
And as you mentioned, regulator_set_mode() did check current mode and won't call
set_mode callback if current mode is the same as the target mode.
And that is why this patch won't work.

However, Make get_mode() return "incorrect" status to avoid above
issue looks wrong to me.

I understand your point of view, but I think that the framework (as it is currently implemented) expects to get the requested mode of the regulator in this case, not the actual mode (in the shared mode register).The alternative could be to change the framework in some way.

Any ideas? Otherwise I propose to keep the code and maybe add a comment.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at