diff options
| author | Takashi Iwai <tiwai@suse.de> | 2017-11-01 17:43:20 +0100 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2017-11-01 17:43:20 +0100 |
| commit | a53a0ab8ff725672fcb47bb9a5ef75fce45679d0 (patch) | |
| tree | 75cdea78f27fdd569d72cea0b7837bbcc8d871f7 /drivers/usb/phy/phy-tegra-usb.c | |
| parent | 1f20f9ff57ca23b9f5502fca85ce3977e8496cb1 (diff) | |
| parent | b817d936248b9bcee8282e97fb1dda1b03c903fe (diff) | |
Merge tag 'asoc-fix-v4.14-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v4.14
A bunch of fixes here, mostly device specific ones (the biggest one
being the revert of the hotword support for rt5514), with a couple of
core fixes for potential issues with corrupted or otherwise invalid
topology files.
Diffstat (limited to 'drivers/usb/phy/phy-tegra-usb.c')
| -rw-r--r-- | drivers/usb/phy/phy-tegra-usb.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c index 5fe4a5704bde..ccc2bf5274b4 100644 --- a/drivers/usb/phy/phy-tegra-usb.c +++ b/drivers/usb/phy/phy-tegra-usb.c @@ -329,6 +329,14 @@ static void utmi_phy_clk_disable(struct tegra_usb_phy *phy) unsigned long val; void __iomem *base = phy->regs; + /* + * The USB driver may have already initiated the phy clock + * disable so wait to see if the clock turns off and if not + * then proceed with gating the clock. + */ + if (utmi_wait_register(base + USB_SUSP_CTRL, USB_PHY_CLK_VALID, 0) == 0) + return; + if (phy->is_legacy_phy) { val = readl(base + USB_SUSP_CTRL); val |= USB_SUSP_SET; @@ -351,6 +359,15 @@ static void utmi_phy_clk_enable(struct tegra_usb_phy *phy) unsigned long val; void __iomem *base = phy->regs; + /* + * The USB driver may have already initiated the phy clock + * enable so wait to see if the clock turns on and if not + * then proceed with ungating the clock. + */ + if (utmi_wait_register(base + USB_SUSP_CTRL, USB_PHY_CLK_VALID, + USB_PHY_CLK_VALID) == 0) + return; + if (phy->is_legacy_phy) { val = readl(base + USB_SUSP_CTRL); val |= USB_SUSP_CLR; |
