Message ID | 1490256207-10061-2-git-send-email-m.szyprowski@samsung.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Thu, Mar 23, 2017 at 09:03:22AM +0100, Marek Szyprowski wrote: > When pin controller device is a part of power domain, there is no guarantee > that the power domain was not turned off and then on during boot process > before probing of the pin control driver. If it happened, then pin control > driver should ensure that pad retention is turned off during its probe call. > > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> > --- > drivers/pinctrl/samsung/pinctrl-exynos.c | 5 +++++ > 1 file changed, 5 insertions(+) > Thanks, applied. Let it settle for one day so auto-builders will catch up and then I will provide a stable tag for Lee (MFD). Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index f9b49967f512..fa8bdd9ae198 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c @@ -777,6 +777,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata) { struct samsung_retention_ctrl *ctrl; struct regmap *pmu_regs; + int i; ctrl = devm_kzalloc(drvdata->dev, sizeof(*ctrl), GFP_KERNEL); if (!ctrl) @@ -794,6 +795,10 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata) ctrl->enable = exynos_retention_enable; ctrl->disable = exynos_retention_disable; + /* Ensure that retention is disabled on driver init */ + for (i = 0; i < ctrl->nr_regs; i++) + regmap_write(pmu_regs, ctrl->regs[i], ctrl->value); + return ctrl; }