Message ID | 1565984527-5272-2-git-send-email-skomatineni@nvidia.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | SC7 entry and exit support for Tegra210 | expand |
On Fri, Aug 16, 2019 at 9:42 PM Sowjanya Komatineni <skomatineni@nvidia.com> wrote: > > pmx_writel uses writel which inserts write barrier before the > register write. > > This patch has fix to replace writel with writel_relaxed followed > by a readback and memory barrier to ensure write operation is > completed for successful pinctrl change. > > Acked-by: Thierry Reding <treding@nvidia.com> > Reviewed-by: Dmitry Osipenko <digetx@gmail.com> > Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com> Took out the previous patches and applied this instead. Yours, Linus Walleij
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.c b/drivers/pinctrl/tegra/pinctrl-tegra.c index e3a237534281..5e3c00137d71 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra.c @@ -32,7 +32,9 @@ static inline u32 pmx_readl(struct tegra_pmx *pmx, u32 bank, u32 reg) static inline void pmx_writel(struct tegra_pmx *pmx, u32 val, u32 bank, u32 reg) { - writel(val, pmx->regs[bank] + reg); + writel_relaxed(val, pmx->regs[bank] + reg); + /* make sure pinmux register write completed */ + pmx_readl(pmx, bank, reg); } static int tegra_pinctrl_get_groups_count(struct pinctrl_dev *pctldev)