From: kernel test robot <lkp@intel.com> To: Matthias Kaehlcke <mka@chromium.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Alan Stern <stern@rowland.harvard.edu>, Rob Herring <robh+dt@kernel.org>, Frank Rowand <frowand.list@gmail.com>, Mathias Nyman <mathias.nyman@intel.com>, Felipe Balbi <balbi@kernel.org> Cc: kbuild-all@lists.01.org, Michal Simek <monstr@monstr.eu>, linux-usb@vger.kernel.org, Peter Chen <peter.chen@kernel.org>, Bastien Nocera <hadess@hadess.net> Subject: Re: [PATCH v14 4/6] usb: Specify dependencies on USB_XHCI_PLATFORM with 'depends on' Date: Wed, 21 Jul 2021 08:46:17 +0800 [thread overview] Message-ID: <202107210812.LLUZpfu9-lkp@intel.com> (raw) In-Reply-To: <20210719152055.v14.4.If248f05613bbb06a44eb0b0909be5d97218f417b@changeid> [-- Attachment #1: Type: text/plain, Size: 16425 bytes --] Hi Matthias, I love your patch! Yet something to improve: [auto build test ERROR on usb/usb-testing] [also build test ERROR on robh/for-next driver-core/driver-core-testing linus/master v5.14-rc2 next-20210720] [cannot apply to char-misc/char-misc-testing] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Matthias-Kaehlcke/usb-misc-Add-onboard_usb_hub-driver/20210720-144614 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: i386-randconfig-a003-20210720 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/1ac4caccda0f2e6904b0e1462bc9735c690d719f git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthias-Kaehlcke/usb-misc-Add-onboard_usb_hub-driver/20210720-144614 git checkout 1ac4caccda0f2e6904b0e1462bc9735c690d719f # save the attached .config to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): ld: drivers/usb/dwc3/core.o: in function `dwc3_resume_common': >> drivers/usb/dwc3/core.c:1853: undefined reference to `dwc3_gadget_resume' ld: drivers/usb/dwc3/core.o: in function `dwc3_runtime_resume': >> drivers/usb/dwc3/core.c:1912: undefined reference to `dwc3_gadget_process_pending_events' ld: drivers/usb/dwc3/core.o: in function `dwc3_suspend_common': >> drivers/usb/dwc3/core.c:1750: undefined reference to `dwc3_gadget_suspend' vim +1853 drivers/usb/dwc3/core.c fe8abf332b8f66 Masahiro Yamada 2018-05-16 1739 c4a5153e87fdf6 Manu Gautam 2018-01-18 1740 static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) 7415f17c9560c9 Felipe Balbi 2012-04-30 1741 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1742 unsigned long flags; bcb128777af5e9 Manu Gautam 2018-05-09 1743 u32 reg; 7415f17c9560c9 Felipe Balbi 2012-04-30 1744 689bf72c6e0dc9 Manu Gautam 2017-09-27 1745 switch (dwc->current_dr_role) { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1746 case DWC3_GCTL_PRTCAP_DEVICE: 0227cc84c44417 Li Jun 2020-02-20 1747 if (pm_runtime_suspended(dwc->dev)) 0227cc84c44417 Li Jun 2020-02-20 1748 break; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1749 spin_lock_irqsave(&dwc->lock, flags); 7415f17c9560c9 Felipe Balbi 2012-04-30 @1750 dwc3_gadget_suspend(dwc); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1751 spin_unlock_irqrestore(&dwc->lock, flags); 41a91c606e7d2b Marek Szyprowski 2019-03-27 1752 synchronize_irq(dwc->irq_gadget); 689bf72c6e0dc9 Manu Gautam 2017-09-27 1753 dwc3_core_exit(dwc); 51f5d49ad6f011 Felipe Balbi 2016-05-16 1754 break; 689bf72c6e0dc9 Manu Gautam 2017-09-27 1755 case DWC3_GCTL_PRTCAP_HOST: bcb128777af5e9 Manu Gautam 2018-05-09 1756 if (!PMSG_IS_AUTO(msg)) { c4a5153e87fdf6 Manu Gautam 2018-01-18 1757 dwc3_core_exit(dwc); c4a5153e87fdf6 Manu Gautam 2018-01-18 1758 break; bcb128777af5e9 Manu Gautam 2018-05-09 1759 } bcb128777af5e9 Manu Gautam 2018-05-09 1760 bcb128777af5e9 Manu Gautam 2018-05-09 1761 /* Let controller to suspend HSPHY before PHY driver suspends */ bcb128777af5e9 Manu Gautam 2018-05-09 1762 if (dwc->dis_u2_susphy_quirk || bcb128777af5e9 Manu Gautam 2018-05-09 1763 dwc->dis_enblslpm_quirk) { bcb128777af5e9 Manu Gautam 2018-05-09 1764 reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); bcb128777af5e9 Manu Gautam 2018-05-09 1765 reg |= DWC3_GUSB2PHYCFG_ENBLSLPM | bcb128777af5e9 Manu Gautam 2018-05-09 1766 DWC3_GUSB2PHYCFG_SUSPHY; bcb128777af5e9 Manu Gautam 2018-05-09 1767 dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); bcb128777af5e9 Manu Gautam 2018-05-09 1768 bcb128777af5e9 Manu Gautam 2018-05-09 1769 /* Give some time for USB2 PHY to suspend */ bcb128777af5e9 Manu Gautam 2018-05-09 1770 usleep_range(5000, 6000); bcb128777af5e9 Manu Gautam 2018-05-09 1771 } bcb128777af5e9 Manu Gautam 2018-05-09 1772 bcb128777af5e9 Manu Gautam 2018-05-09 1773 phy_pm_runtime_put_sync(dwc->usb2_generic_phy); bcb128777af5e9 Manu Gautam 2018-05-09 1774 phy_pm_runtime_put_sync(dwc->usb3_generic_phy); bcb128777af5e9 Manu Gautam 2018-05-09 1775 break; f09cc79b4b338e Roger Quadros 2018-02-27 1776 case DWC3_GCTL_PRTCAP_OTG: f09cc79b4b338e Roger Quadros 2018-02-27 1777 /* do nothing during runtime_suspend */ f09cc79b4b338e Roger Quadros 2018-02-27 1778 if (PMSG_IS_AUTO(msg)) f09cc79b4b338e Roger Quadros 2018-02-27 1779 break; f09cc79b4b338e Roger Quadros 2018-02-27 1780 f09cc79b4b338e Roger Quadros 2018-02-27 1781 if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { f09cc79b4b338e Roger Quadros 2018-02-27 1782 spin_lock_irqsave(&dwc->lock, flags); f09cc79b4b338e Roger Quadros 2018-02-27 1783 dwc3_gadget_suspend(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1784 spin_unlock_irqrestore(&dwc->lock, flags); 41a91c606e7d2b Marek Szyprowski 2019-03-27 1785 synchronize_irq(dwc->irq_gadget); f09cc79b4b338e Roger Quadros 2018-02-27 1786 } f09cc79b4b338e Roger Quadros 2018-02-27 1787 f09cc79b4b338e Roger Quadros 2018-02-27 1788 dwc3_otg_exit(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1789 dwc3_core_exit(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1790 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1791 default: 51f5d49ad6f011 Felipe Balbi 2016-05-16 1792 /* do nothing */ 7415f17c9560c9 Felipe Balbi 2012-04-30 1793 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1794 } 7415f17c9560c9 Felipe Balbi 2012-04-30 1795 7415f17c9560c9 Felipe Balbi 2012-04-30 1796 return 0; 7415f17c9560c9 Felipe Balbi 2012-04-30 1797 } 7415f17c9560c9 Felipe Balbi 2012-04-30 1798 c4a5153e87fdf6 Manu Gautam 2018-01-18 1799 static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) 7415f17c9560c9 Felipe Balbi 2012-04-30 1800 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1801 unsigned long flags; 57303488cd37da Kishon Vijay Abraham I 2014-03-03 1802 int ret; bcb128777af5e9 Manu Gautam 2018-05-09 1803 u32 reg; 7415f17c9560c9 Felipe Balbi 2012-04-30 1804 689bf72c6e0dc9 Manu Gautam 2017-09-27 1805 switch (dwc->current_dr_role) { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1806 case DWC3_GCTL_PRTCAP_DEVICE: fe8abf332b8f66 Masahiro Yamada 2018-05-16 1807 ret = dwc3_core_init_for_resume(dwc); 51f5d49ad6f011 Felipe Balbi 2016-05-16 1808 if (ret) 5c4ad318de3b8e Felipe Balbi 2016-04-11 1809 return ret; 5c4ad318de3b8e Felipe Balbi 2016-04-11 1810 7d11c3ac666940 Roger Quadros 2018-03-16 1811 dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_DEVICE); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1812 spin_lock_irqsave(&dwc->lock, flags); 7415f17c9560c9 Felipe Balbi 2012-04-30 1813 dwc3_gadget_resume(dwc); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1814 spin_unlock_irqrestore(&dwc->lock, flags); 689bf72c6e0dc9 Manu Gautam 2017-09-27 1815 break; 689bf72c6e0dc9 Manu Gautam 2017-09-27 1816 case DWC3_GCTL_PRTCAP_HOST: c4a5153e87fdf6 Manu Gautam 2018-01-18 1817 if (!PMSG_IS_AUTO(msg)) { fe8abf332b8f66 Masahiro Yamada 2018-05-16 1818 ret = dwc3_core_init_for_resume(dwc); c4a5153e87fdf6 Manu Gautam 2018-01-18 1819 if (ret) c4a5153e87fdf6 Manu Gautam 2018-01-18 1820 return ret; 7d11c3ac666940 Roger Quadros 2018-03-16 1821 dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_HOST); bcb128777af5e9 Manu Gautam 2018-05-09 1822 break; c4a5153e87fdf6 Manu Gautam 2018-01-18 1823 } bcb128777af5e9 Manu Gautam 2018-05-09 1824 /* Restore GUSB2PHYCFG bits that were modified in suspend */ bcb128777af5e9 Manu Gautam 2018-05-09 1825 reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); bcb128777af5e9 Manu Gautam 2018-05-09 1826 if (dwc->dis_u2_susphy_quirk) bcb128777af5e9 Manu Gautam 2018-05-09 1827 reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; bcb128777af5e9 Manu Gautam 2018-05-09 1828 bcb128777af5e9 Manu Gautam 2018-05-09 1829 if (dwc->dis_enblslpm_quirk) bcb128777af5e9 Manu Gautam 2018-05-09 1830 reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM; bcb128777af5e9 Manu Gautam 2018-05-09 1831 bcb128777af5e9 Manu Gautam 2018-05-09 1832 dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); bcb128777af5e9 Manu Gautam 2018-05-09 1833 bcb128777af5e9 Manu Gautam 2018-05-09 1834 phy_pm_runtime_get_sync(dwc->usb2_generic_phy); bcb128777af5e9 Manu Gautam 2018-05-09 1835 phy_pm_runtime_get_sync(dwc->usb3_generic_phy); f09cc79b4b338e Roger Quadros 2018-02-27 1836 break; f09cc79b4b338e Roger Quadros 2018-02-27 1837 case DWC3_GCTL_PRTCAP_OTG: f09cc79b4b338e Roger Quadros 2018-02-27 1838 /* nothing to do on runtime_resume */ f09cc79b4b338e Roger Quadros 2018-02-27 1839 if (PMSG_IS_AUTO(msg)) f09cc79b4b338e Roger Quadros 2018-02-27 1840 break; f09cc79b4b338e Roger Quadros 2018-02-27 1841 0e5a3c8284a30f Gary Bisson 2021-01-25 1842 ret = dwc3_core_init_for_resume(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1843 if (ret) f09cc79b4b338e Roger Quadros 2018-02-27 1844 return ret; f09cc79b4b338e Roger Quadros 2018-02-27 1845 f09cc79b4b338e Roger Quadros 2018-02-27 1846 dwc3_set_prtcap(dwc, dwc->current_dr_role); f09cc79b4b338e Roger Quadros 2018-02-27 1847 f09cc79b4b338e Roger Quadros 2018-02-27 1848 dwc3_otg_init(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1849 if (dwc->current_otg_role == DWC3_OTG_ROLE_HOST) { f09cc79b4b338e Roger Quadros 2018-02-27 1850 dwc3_otg_host_init(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1851 } else if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { f09cc79b4b338e Roger Quadros 2018-02-27 1852 spin_lock_irqsave(&dwc->lock, flags); f09cc79b4b338e Roger Quadros 2018-02-27 @1853 dwc3_gadget_resume(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1854 spin_unlock_irqrestore(&dwc->lock, flags); c4a5153e87fdf6 Manu Gautam 2018-01-18 1855 } f09cc79b4b338e Roger Quadros 2018-02-27 1856 c4a5153e87fdf6 Manu Gautam 2018-01-18 1857 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1858 default: 7415f17c9560c9 Felipe Balbi 2012-04-30 1859 /* do nothing */ 7415f17c9560c9 Felipe Balbi 2012-04-30 1860 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1861 } 7415f17c9560c9 Felipe Balbi 2012-04-30 1862 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1863 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1864 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1865 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1866 static int dwc3_runtime_checks(struct dwc3 *dwc) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1867 { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1868 switch (dwc->current_dr_role) { c4a5153e87fdf6 Manu Gautam 2018-01-18 1869 case DWC3_GCTL_PRTCAP_DEVICE: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1870 if (dwc->connected) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1871 return -EBUSY; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1872 break; c4a5153e87fdf6 Manu Gautam 2018-01-18 1873 case DWC3_GCTL_PRTCAP_HOST: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1874 default: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1875 /* do nothing */ fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1876 break; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1877 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1878 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1879 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1880 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1881 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1882 static int dwc3_runtime_suspend(struct device *dev) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1883 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1884 struct dwc3 *dwc = dev_get_drvdata(dev); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1885 int ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1886 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1887 if (dwc3_runtime_checks(dwc)) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1888 return -EBUSY; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1889 c4a5153e87fdf6 Manu Gautam 2018-01-18 1890 ret = dwc3_suspend_common(dwc, PMSG_AUTO_SUSPEND); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1891 if (ret) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1892 return ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1893 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1894 device_init_wakeup(dev, true); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1895 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1896 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1897 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1898 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1899 static int dwc3_runtime_resume(struct device *dev) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1900 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1901 struct dwc3 *dwc = dev_get_drvdata(dev); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1902 int ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1903 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1904 device_init_wakeup(dev, false); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1905 c4a5153e87fdf6 Manu Gautam 2018-01-18 1906 ret = dwc3_resume_common(dwc, PMSG_AUTO_RESUME); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1907 if (ret) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1908 return ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1909 689bf72c6e0dc9 Manu Gautam 2017-09-27 1910 switch (dwc->current_dr_role) { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1911 case DWC3_GCTL_PRTCAP_DEVICE: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 @1912 dwc3_gadget_process_pending_events(dwc); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1913 break; 689bf72c6e0dc9 Manu Gautam 2017-09-27 1914 case DWC3_GCTL_PRTCAP_HOST: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1915 default: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1916 /* do nothing */ fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1917 break; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1918 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1919 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1920 pm_runtime_mark_last_busy(dev); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1921 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1922 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1923 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1924 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 33886 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH v14 4/6] usb: Specify dependencies on USB_XHCI_PLATFORM with 'depends on' Date: Wed, 21 Jul 2021 08:46:17 +0800 [thread overview] Message-ID: <202107210812.LLUZpfu9-lkp@intel.com> (raw) In-Reply-To: <20210719152055.v14.4.If248f05613bbb06a44eb0b0909be5d97218f417b@changeid> [-- Attachment #1: Type: text/plain, Size: 16656 bytes --] Hi Matthias, I love your patch! Yet something to improve: [auto build test ERROR on usb/usb-testing] [also build test ERROR on robh/for-next driver-core/driver-core-testing linus/master v5.14-rc2 next-20210720] [cannot apply to char-misc/char-misc-testing] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Matthias-Kaehlcke/usb-misc-Add-onboard_usb_hub-driver/20210720-144614 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: i386-randconfig-a003-20210720 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/1ac4caccda0f2e6904b0e1462bc9735c690d719f git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthias-Kaehlcke/usb-misc-Add-onboard_usb_hub-driver/20210720-144614 git checkout 1ac4caccda0f2e6904b0e1462bc9735c690d719f # save the attached .config to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): ld: drivers/usb/dwc3/core.o: in function `dwc3_resume_common': >> drivers/usb/dwc3/core.c:1853: undefined reference to `dwc3_gadget_resume' ld: drivers/usb/dwc3/core.o: in function `dwc3_runtime_resume': >> drivers/usb/dwc3/core.c:1912: undefined reference to `dwc3_gadget_process_pending_events' ld: drivers/usb/dwc3/core.o: in function `dwc3_suspend_common': >> drivers/usb/dwc3/core.c:1750: undefined reference to `dwc3_gadget_suspend' vim +1853 drivers/usb/dwc3/core.c fe8abf332b8f66 Masahiro Yamada 2018-05-16 1739 c4a5153e87fdf6 Manu Gautam 2018-01-18 1740 static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) 7415f17c9560c9 Felipe Balbi 2012-04-30 1741 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1742 unsigned long flags; bcb128777af5e9 Manu Gautam 2018-05-09 1743 u32 reg; 7415f17c9560c9 Felipe Balbi 2012-04-30 1744 689bf72c6e0dc9 Manu Gautam 2017-09-27 1745 switch (dwc->current_dr_role) { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1746 case DWC3_GCTL_PRTCAP_DEVICE: 0227cc84c44417 Li Jun 2020-02-20 1747 if (pm_runtime_suspended(dwc->dev)) 0227cc84c44417 Li Jun 2020-02-20 1748 break; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1749 spin_lock_irqsave(&dwc->lock, flags); 7415f17c9560c9 Felipe Balbi 2012-04-30 @1750 dwc3_gadget_suspend(dwc); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1751 spin_unlock_irqrestore(&dwc->lock, flags); 41a91c606e7d2b Marek Szyprowski 2019-03-27 1752 synchronize_irq(dwc->irq_gadget); 689bf72c6e0dc9 Manu Gautam 2017-09-27 1753 dwc3_core_exit(dwc); 51f5d49ad6f011 Felipe Balbi 2016-05-16 1754 break; 689bf72c6e0dc9 Manu Gautam 2017-09-27 1755 case DWC3_GCTL_PRTCAP_HOST: bcb128777af5e9 Manu Gautam 2018-05-09 1756 if (!PMSG_IS_AUTO(msg)) { c4a5153e87fdf6 Manu Gautam 2018-01-18 1757 dwc3_core_exit(dwc); c4a5153e87fdf6 Manu Gautam 2018-01-18 1758 break; bcb128777af5e9 Manu Gautam 2018-05-09 1759 } bcb128777af5e9 Manu Gautam 2018-05-09 1760 bcb128777af5e9 Manu Gautam 2018-05-09 1761 /* Let controller to suspend HSPHY before PHY driver suspends */ bcb128777af5e9 Manu Gautam 2018-05-09 1762 if (dwc->dis_u2_susphy_quirk || bcb128777af5e9 Manu Gautam 2018-05-09 1763 dwc->dis_enblslpm_quirk) { bcb128777af5e9 Manu Gautam 2018-05-09 1764 reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); bcb128777af5e9 Manu Gautam 2018-05-09 1765 reg |= DWC3_GUSB2PHYCFG_ENBLSLPM | bcb128777af5e9 Manu Gautam 2018-05-09 1766 DWC3_GUSB2PHYCFG_SUSPHY; bcb128777af5e9 Manu Gautam 2018-05-09 1767 dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); bcb128777af5e9 Manu Gautam 2018-05-09 1768 bcb128777af5e9 Manu Gautam 2018-05-09 1769 /* Give some time for USB2 PHY to suspend */ bcb128777af5e9 Manu Gautam 2018-05-09 1770 usleep_range(5000, 6000); bcb128777af5e9 Manu Gautam 2018-05-09 1771 } bcb128777af5e9 Manu Gautam 2018-05-09 1772 bcb128777af5e9 Manu Gautam 2018-05-09 1773 phy_pm_runtime_put_sync(dwc->usb2_generic_phy); bcb128777af5e9 Manu Gautam 2018-05-09 1774 phy_pm_runtime_put_sync(dwc->usb3_generic_phy); bcb128777af5e9 Manu Gautam 2018-05-09 1775 break; f09cc79b4b338e Roger Quadros 2018-02-27 1776 case DWC3_GCTL_PRTCAP_OTG: f09cc79b4b338e Roger Quadros 2018-02-27 1777 /* do nothing during runtime_suspend */ f09cc79b4b338e Roger Quadros 2018-02-27 1778 if (PMSG_IS_AUTO(msg)) f09cc79b4b338e Roger Quadros 2018-02-27 1779 break; f09cc79b4b338e Roger Quadros 2018-02-27 1780 f09cc79b4b338e Roger Quadros 2018-02-27 1781 if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { f09cc79b4b338e Roger Quadros 2018-02-27 1782 spin_lock_irqsave(&dwc->lock, flags); f09cc79b4b338e Roger Quadros 2018-02-27 1783 dwc3_gadget_suspend(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1784 spin_unlock_irqrestore(&dwc->lock, flags); 41a91c606e7d2b Marek Szyprowski 2019-03-27 1785 synchronize_irq(dwc->irq_gadget); f09cc79b4b338e Roger Quadros 2018-02-27 1786 } f09cc79b4b338e Roger Quadros 2018-02-27 1787 f09cc79b4b338e Roger Quadros 2018-02-27 1788 dwc3_otg_exit(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1789 dwc3_core_exit(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1790 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1791 default: 51f5d49ad6f011 Felipe Balbi 2016-05-16 1792 /* do nothing */ 7415f17c9560c9 Felipe Balbi 2012-04-30 1793 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1794 } 7415f17c9560c9 Felipe Balbi 2012-04-30 1795 7415f17c9560c9 Felipe Balbi 2012-04-30 1796 return 0; 7415f17c9560c9 Felipe Balbi 2012-04-30 1797 } 7415f17c9560c9 Felipe Balbi 2012-04-30 1798 c4a5153e87fdf6 Manu Gautam 2018-01-18 1799 static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) 7415f17c9560c9 Felipe Balbi 2012-04-30 1800 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1801 unsigned long flags; 57303488cd37da Kishon Vijay Abraham I 2014-03-03 1802 int ret; bcb128777af5e9 Manu Gautam 2018-05-09 1803 u32 reg; 7415f17c9560c9 Felipe Balbi 2012-04-30 1804 689bf72c6e0dc9 Manu Gautam 2017-09-27 1805 switch (dwc->current_dr_role) { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1806 case DWC3_GCTL_PRTCAP_DEVICE: fe8abf332b8f66 Masahiro Yamada 2018-05-16 1807 ret = dwc3_core_init_for_resume(dwc); 51f5d49ad6f011 Felipe Balbi 2016-05-16 1808 if (ret) 5c4ad318de3b8e Felipe Balbi 2016-04-11 1809 return ret; 5c4ad318de3b8e Felipe Balbi 2016-04-11 1810 7d11c3ac666940 Roger Quadros 2018-03-16 1811 dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_DEVICE); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1812 spin_lock_irqsave(&dwc->lock, flags); 7415f17c9560c9 Felipe Balbi 2012-04-30 1813 dwc3_gadget_resume(dwc); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1814 spin_unlock_irqrestore(&dwc->lock, flags); 689bf72c6e0dc9 Manu Gautam 2017-09-27 1815 break; 689bf72c6e0dc9 Manu Gautam 2017-09-27 1816 case DWC3_GCTL_PRTCAP_HOST: c4a5153e87fdf6 Manu Gautam 2018-01-18 1817 if (!PMSG_IS_AUTO(msg)) { fe8abf332b8f66 Masahiro Yamada 2018-05-16 1818 ret = dwc3_core_init_for_resume(dwc); c4a5153e87fdf6 Manu Gautam 2018-01-18 1819 if (ret) c4a5153e87fdf6 Manu Gautam 2018-01-18 1820 return ret; 7d11c3ac666940 Roger Quadros 2018-03-16 1821 dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_HOST); bcb128777af5e9 Manu Gautam 2018-05-09 1822 break; c4a5153e87fdf6 Manu Gautam 2018-01-18 1823 } bcb128777af5e9 Manu Gautam 2018-05-09 1824 /* Restore GUSB2PHYCFG bits that were modified in suspend */ bcb128777af5e9 Manu Gautam 2018-05-09 1825 reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); bcb128777af5e9 Manu Gautam 2018-05-09 1826 if (dwc->dis_u2_susphy_quirk) bcb128777af5e9 Manu Gautam 2018-05-09 1827 reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; bcb128777af5e9 Manu Gautam 2018-05-09 1828 bcb128777af5e9 Manu Gautam 2018-05-09 1829 if (dwc->dis_enblslpm_quirk) bcb128777af5e9 Manu Gautam 2018-05-09 1830 reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM; bcb128777af5e9 Manu Gautam 2018-05-09 1831 bcb128777af5e9 Manu Gautam 2018-05-09 1832 dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); bcb128777af5e9 Manu Gautam 2018-05-09 1833 bcb128777af5e9 Manu Gautam 2018-05-09 1834 phy_pm_runtime_get_sync(dwc->usb2_generic_phy); bcb128777af5e9 Manu Gautam 2018-05-09 1835 phy_pm_runtime_get_sync(dwc->usb3_generic_phy); f09cc79b4b338e Roger Quadros 2018-02-27 1836 break; f09cc79b4b338e Roger Quadros 2018-02-27 1837 case DWC3_GCTL_PRTCAP_OTG: f09cc79b4b338e Roger Quadros 2018-02-27 1838 /* nothing to do on runtime_resume */ f09cc79b4b338e Roger Quadros 2018-02-27 1839 if (PMSG_IS_AUTO(msg)) f09cc79b4b338e Roger Quadros 2018-02-27 1840 break; f09cc79b4b338e Roger Quadros 2018-02-27 1841 0e5a3c8284a30f Gary Bisson 2021-01-25 1842 ret = dwc3_core_init_for_resume(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1843 if (ret) f09cc79b4b338e Roger Quadros 2018-02-27 1844 return ret; f09cc79b4b338e Roger Quadros 2018-02-27 1845 f09cc79b4b338e Roger Quadros 2018-02-27 1846 dwc3_set_prtcap(dwc, dwc->current_dr_role); f09cc79b4b338e Roger Quadros 2018-02-27 1847 f09cc79b4b338e Roger Quadros 2018-02-27 1848 dwc3_otg_init(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1849 if (dwc->current_otg_role == DWC3_OTG_ROLE_HOST) { f09cc79b4b338e Roger Quadros 2018-02-27 1850 dwc3_otg_host_init(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1851 } else if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { f09cc79b4b338e Roger Quadros 2018-02-27 1852 spin_lock_irqsave(&dwc->lock, flags); f09cc79b4b338e Roger Quadros 2018-02-27 @1853 dwc3_gadget_resume(dwc); f09cc79b4b338e Roger Quadros 2018-02-27 1854 spin_unlock_irqrestore(&dwc->lock, flags); c4a5153e87fdf6 Manu Gautam 2018-01-18 1855 } f09cc79b4b338e Roger Quadros 2018-02-27 1856 c4a5153e87fdf6 Manu Gautam 2018-01-18 1857 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1858 default: 7415f17c9560c9 Felipe Balbi 2012-04-30 1859 /* do nothing */ 7415f17c9560c9 Felipe Balbi 2012-04-30 1860 break; 7415f17c9560c9 Felipe Balbi 2012-04-30 1861 } 7415f17c9560c9 Felipe Balbi 2012-04-30 1862 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1863 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1864 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1865 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1866 static int dwc3_runtime_checks(struct dwc3 *dwc) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1867 { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1868 switch (dwc->current_dr_role) { c4a5153e87fdf6 Manu Gautam 2018-01-18 1869 case DWC3_GCTL_PRTCAP_DEVICE: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1870 if (dwc->connected) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1871 return -EBUSY; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1872 break; c4a5153e87fdf6 Manu Gautam 2018-01-18 1873 case DWC3_GCTL_PRTCAP_HOST: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1874 default: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1875 /* do nothing */ fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1876 break; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1877 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1878 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1879 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1880 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1881 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1882 static int dwc3_runtime_suspend(struct device *dev) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1883 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1884 struct dwc3 *dwc = dev_get_drvdata(dev); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1885 int ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1886 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1887 if (dwc3_runtime_checks(dwc)) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1888 return -EBUSY; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1889 c4a5153e87fdf6 Manu Gautam 2018-01-18 1890 ret = dwc3_suspend_common(dwc, PMSG_AUTO_SUSPEND); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1891 if (ret) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1892 return ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1893 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1894 device_init_wakeup(dev, true); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1895 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1896 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1897 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1898 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1899 static int dwc3_runtime_resume(struct device *dev) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1900 { fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1901 struct dwc3 *dwc = dev_get_drvdata(dev); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1902 int ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1903 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1904 device_init_wakeup(dev, false); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1905 c4a5153e87fdf6 Manu Gautam 2018-01-18 1906 ret = dwc3_resume_common(dwc, PMSG_AUTO_RESUME); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1907 if (ret) fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1908 return ret; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1909 689bf72c6e0dc9 Manu Gautam 2017-09-27 1910 switch (dwc->current_dr_role) { 689bf72c6e0dc9 Manu Gautam 2017-09-27 1911 case DWC3_GCTL_PRTCAP_DEVICE: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 @1912 dwc3_gadget_process_pending_events(dwc); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1913 break; 689bf72c6e0dc9 Manu Gautam 2017-09-27 1914 case DWC3_GCTL_PRTCAP_HOST: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1915 default: fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1916 /* do nothing */ fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1917 break; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1918 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1919 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1920 pm_runtime_mark_last_busy(dev); fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1921 fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1922 return 0; fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1923 } fc8bb91bc83ef8 Felipe Balbi 2016-05-16 1924 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 33886 bytes --]
next prev parent reply other threads:[~2021-07-21 0:47 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-19 22:21 [PATCH v14 0/6] usb: misc: Add onboard_usb_hub driver Matthias Kaehlcke 2021-07-19 22:21 ` Matthias Kaehlcke 2021-07-19 22:21 ` [PATCH v14 1/6] " Matthias Kaehlcke 2021-07-19 22:21 ` [PATCH v14 2/6] of/platform: Add stubs for of_platform_device_create/destroy() Matthias Kaehlcke 2021-07-19 22:21 ` [PATCH v14 3/6] arm64: defconfig: Explicitly enable USB_XHCI_PLATFORM Matthias Kaehlcke 2021-07-19 22:21 ` Matthias Kaehlcke 2021-07-19 22:21 ` [PATCH v14 4/6] usb: Specify dependencies on USB_XHCI_PLATFORM with 'depends on' Matthias Kaehlcke 2021-07-21 0:46 ` kernel test robot [this message] 2021-07-21 0:46 ` kernel test robot 2021-07-23 0:17 ` Matthias Kaehlcke 2021-07-23 0:17 ` Matthias Kaehlcke 2021-07-19 22:21 ` [PATCH v14 5/6] usb: host: xhci-plat: Create platform device for onboard hubs in probe() Matthias Kaehlcke 2021-07-19 22:21 ` [PATCH v14 6/6] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub Matthias Kaehlcke
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202107210812.LLUZpfu9-lkp@intel.com \ --to=lkp@intel.com \ --cc=balbi@kernel.org \ --cc=frowand.list@gmail.com \ --cc=gregkh@linuxfoundation.org \ --cc=hadess@hadess.net \ --cc=kbuild-all@lists.01.org \ --cc=linux-usb@vger.kernel.org \ --cc=mathias.nyman@intel.com \ --cc=mka@chromium.org \ --cc=monstr@monstr.eu \ --cc=peter.chen@kernel.org \ --cc=robh+dt@kernel.org \ --cc=stern@rowland.harvard.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.