diff options
Diffstat (limited to 'drivers/usb/dwc3')
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c21516aef5e4..852bde5cc139 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c | |||
@@ -1894,30 +1894,30 @@ static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc) | |||
1894 | dwc->setup_packet_pending = false; | 1894 | dwc->setup_packet_pending = false; |
1895 | } | 1895 | } |
1896 | 1896 | ||
1897 | static void dwc3_gadget_usb3_phy_power(struct dwc3 *dwc, int on) | 1897 | static void dwc3_gadget_usb3_phy_suspend(struct dwc3 *dwc, int suspend) |
1898 | { | 1898 | { |
1899 | u32 reg; | 1899 | u32 reg; |
1900 | 1900 | ||
1901 | reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); | 1901 | reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); |
1902 | 1902 | ||
1903 | if (on) | 1903 | if (suspend) |
1904 | reg &= ~DWC3_GUSB3PIPECTL_SUSPHY; | ||
1905 | else | ||
1906 | reg |= DWC3_GUSB3PIPECTL_SUSPHY; | 1904 | reg |= DWC3_GUSB3PIPECTL_SUSPHY; |
1905 | else | ||
1906 | reg &= ~DWC3_GUSB3PIPECTL_SUSPHY; | ||
1907 | 1907 | ||
1908 | dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); | 1908 | dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); |
1909 | } | 1909 | } |
1910 | 1910 | ||
1911 | static void dwc3_gadget_usb2_phy_power(struct dwc3 *dwc, int on) | 1911 | static void dwc3_gadget_usb2_phy_suspend(struct dwc3 *dwc, int suspend) |
1912 | { | 1912 | { |
1913 | u32 reg; | 1913 | u32 reg; |
1914 | 1914 | ||
1915 | reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); | 1915 | reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); |
1916 | 1916 | ||
1917 | if (on) | 1917 | if (suspend) |
1918 | reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; | ||
1919 | else | ||
1920 | reg |= DWC3_GUSB2PHYCFG_SUSPHY; | 1918 | reg |= DWC3_GUSB2PHYCFG_SUSPHY; |
1919 | else | ||
1920 | reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; | ||
1921 | 1921 | ||
1922 | dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); | 1922 | dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); |
1923 | } | 1923 | } |
@@ -1962,9 +1962,9 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc) | |||
1962 | /* after reset -> Default State */ | 1962 | /* after reset -> Default State */ |
1963 | dwc->dev_state = DWC3_DEFAULT_STATE; | 1963 | dwc->dev_state = DWC3_DEFAULT_STATE; |
1964 | 1964 | ||
1965 | /* Enable PHYs */ | 1965 | /* Resume PHYs */ |
1966 | dwc3_gadget_usb2_phy_power(dwc, true); | 1966 | dwc3_gadget_usb2_phy_suspend(dwc, false); |
1967 | dwc3_gadget_usb3_phy_power(dwc, true); | 1967 | dwc3_gadget_usb3_phy_suspend(dwc, false); |
1968 | 1968 | ||
1969 | if (dwc->gadget.speed != USB_SPEED_UNKNOWN) | 1969 | if (dwc->gadget.speed != USB_SPEED_UNKNOWN) |
1970 | dwc3_disconnect_gadget(dwc); | 1970 | dwc3_disconnect_gadget(dwc); |
@@ -2010,16 +2010,16 @@ static void dwc3_update_ram_clk_sel(struct dwc3 *dwc, u32 speed) | |||
2010 | dwc3_writel(dwc->regs, DWC3_GCTL, reg); | 2010 | dwc3_writel(dwc->regs, DWC3_GCTL, reg); |
2011 | } | 2011 | } |
2012 | 2012 | ||
2013 | static void dwc3_gadget_disable_phy(struct dwc3 *dwc, u8 speed) | 2013 | static void dwc3_gadget_phy_suspend(struct dwc3 *dwc, u8 speed) |
2014 | { | 2014 | { |
2015 | switch (speed) { | 2015 | switch (speed) { |
2016 | case USB_SPEED_SUPER: | 2016 | case USB_SPEED_SUPER: |
2017 | dwc3_gadget_usb2_phy_power(dwc, false); | 2017 | dwc3_gadget_usb2_phy_suspend(dwc, true); |
2018 | break; | 2018 | break; |
2019 | case USB_SPEED_HIGH: | 2019 | case USB_SPEED_HIGH: |
2020 | case USB_SPEED_FULL: | 2020 | case USB_SPEED_FULL: |
2021 | case USB_SPEED_LOW: | 2021 | case USB_SPEED_LOW: |
2022 | dwc3_gadget_usb3_phy_power(dwc, false); | 2022 | dwc3_gadget_usb3_phy_suspend(dwc, true); |
2023 | break; | 2023 | break; |
2024 | } | 2024 | } |
2025 | } | 2025 | } |
@@ -2082,8 +2082,8 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc) | |||
2082 | break; | 2082 | break; |
2083 | } | 2083 | } |
2084 | 2084 | ||
2085 | /* Disable unneded PHY */ | 2085 | /* Suspend unneded PHY */ |
2086 | dwc3_gadget_disable_phy(dwc, dwc->gadget.speed); | 2086 | dwc3_gadget_phy_suspend(dwc, dwc->gadget.speed); |
2087 | 2087 | ||
2088 | dep = dwc->eps[0]; | 2088 | dep = dwc->eps[0]; |
2089 | ret = __dwc3_gadget_ep_enable(dep, &dwc3_gadget_ep0_desc, NULL); | 2089 | ret = __dwc3_gadget_ep_enable(dep, &dwc3_gadget_ep0_desc, NULL); |