The special handling code for getting shared mode status is wrong because it needs to check info->shared_mode->lp_mode_req for both regulators that shared the same mode register.
In set_mode(), current code ensures we won't set mode to REGULATOR_MODE_IDLE if only one of the regulator requests to set idle. In get_mode(), we can just remove the special handling code for shared mode. Read the register value always returns correct status no matter the regulator has shared mode register or not. Signed-off-by: Axel Lin <axel....@ingics.com> --- drivers/regulator/ab8500.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c index 9ebd131..acdffc5 100644 --- a/drivers/regulator/ab8500.c +++ b/drivers/regulator/ab8500.c @@ -456,14 +456,6 @@ static unsigned int ab8500_regulator_get_mode(struct regulator_dev *rdev) return -EINVAL; } - /* Need special handling for shared mode */ - if (info->shared_mode) { - if (info->shared_mode->lp_mode_req) - return REGULATOR_MODE_IDLE; - else - return REGULATOR_MODE_NORMAL; - } - if (info->mode_mask) { /* Dedicated register for handling mode */ ret = abx500_get_register_interruptible(info->dev, -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/