From: kernel test robot <lkp@intel.com>
To: caohang@eswincomputing.com, gregkh@linuxfoundation.org,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
Thinh.Nguyen@synopsys.com, p.zabel@pengutronix.de,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
ningyu@eswincomputing.com, linmin@eswincomputing.com,
pinkesh.vaghela@einfochips.com,
Hang Cao <caohang@eswincomputing.com>,
Senchuan Zhang <zhangsenchuan@eswincomputing.com>
Subject: Re: [PATCH v7 2/2] usb: dwc3: eic7700: Add EIC7700 USB driver
Date: Tue, 11 Nov 2025 05:35:58 +0800 [thread overview]
Message-ID: <202511110504.qfGuRVHY-lkp@intel.com> (raw)
In-Reply-To: <20251110024500.104-1-caohang@eswincomputing.com>
Hi,
kernel test robot noticed the following build errors:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on usb/usb-next next-20251110]
[cannot apply to usb/usb-linus robh/for-next pza/reset/next pza/imx-drm/next linus/master v6.18-rc5]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/caohang-eswincomputing-com/dt-bindings-usb-Add-ESWIN-EIC7700-USB-controller/20251110-104957
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link: https://lore.kernel.org/r/20251110024500.104-1-caohang%40eswincomputing.com
patch subject: [PATCH v7 2/2] usb: dwc3: eic7700: Add EIC7700 USB driver
config: arm-defconfig (https://download.01.org/0day-ci/archive/20251111/202511110504.qfGuRVHY-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 996639d6ebb86ff15a8c99b67f1c2e2117636ae7)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251111/202511110504.qfGuRVHY-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511110504.qfGuRVHY-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/usb/dwc3/dwc3-generic-plat.c:132:35: warning: missing terminating '"' character [-Winvalid-pp-token]
132 | return dev_err_probe(dev, ret, "failed to init
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:132:35: error: expected expression
drivers/usb/dwc3/dwc3-generic-plat.c:133:21: warning: missing terminating '"' character [-Winvalid-pp-token]
133 | platform\n");
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:145:1: error: function definition is not allowed here
145 | {
| ^
drivers/usb/dwc3/dwc3-generic-plat.c:152:1: error: function definition is not allowed here
152 | {
| ^
drivers/usb/dwc3/dwc3-generic-plat.c:167:1: error: function definition is not allowed here
167 | {
| ^
drivers/usb/dwc3/dwc3-generic-plat.c:184:1: error: function definition is not allowed here
184 | {
| ^
drivers/usb/dwc3/dwc3-generic-plat.c:189:1: error: function definition is not allowed here
189 | {
| ^
drivers/usb/dwc3/dwc3-generic-plat.c:194:1: error: function definition is not allowed here
194 | {
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:22: error: use of undeclared identifier 'dwc3_generic_suspend'; did you mean 'pm_generic_suspend'?
199 | SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
| ^~~~~~~~~~~~~~~~~~~~
| pm_generic_suspend
include/linux/pm.h:314:26: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
314 | .suspend = pm_sleep_ptr(suspend_fn), \
| ^~~~~~~~~~
include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
| ^~~~
include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
include/linux/pm.h:840:12: note: 'pm_generic_suspend' declared here
840 | extern int pm_generic_suspend(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:44: error: use of undeclared identifier 'dwc3_generic_resume'; did you mean 'pm_generic_resume'?
199 | SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
| ^~~~~~~~~~~~~~~~~~~
| pm_generic_resume
include/linux/pm.h:315:25: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
315 | .resume = pm_sleep_ptr(resume_fn), \
| ^~~~~~~~~
include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
| ^~~~
include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
include/linux/pm.h:843:12: note: 'pm_generic_resume' declared here
843 | extern int pm_generic_resume(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:22: error: use of undeclared identifier 'dwc3_generic_suspend'; did you mean 'pm_generic_suspend'?
199 | SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
| ^~~~~~~~~~~~~~~~~~~~
| pm_generic_suspend
include/linux/pm.h:316:25: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
316 | .freeze = pm_sleep_ptr(suspend_fn), \
| ^~~~~~~~~~
include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
| ^~~~
include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
include/linux/pm.h:840:12: note: 'pm_generic_suspend' declared here
840 | extern int pm_generic_suspend(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:44: error: use of undeclared identifier 'dwc3_generic_resume'; did you mean 'pm_generic_resume'?
199 | SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
| ^~~~~~~~~~~~~~~~~~~
| pm_generic_resume
include/linux/pm.h:317:23: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
317 | .thaw = pm_sleep_ptr(resume_fn), \
| ^~~~~~~~~
include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
| ^~~~
include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
include/linux/pm.h:843:12: note: 'pm_generic_resume' declared here
843 | extern int pm_generic_resume(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:22: error: use of undeclared identifier 'dwc3_generic_suspend'; did you mean 'pm_generic_suspend'?
199 | SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
| ^~~~~~~~~~~~~~~~~~~~
| pm_generic_suspend
include/linux/pm.h:318:27: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
318 | .poweroff = pm_sleep_ptr(suspend_fn), \
| ^~~~~~~~~~
include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
| ^~~~
include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
include/linux/pm.h:840:12: note: 'pm_generic_suspend' declared here
840 | extern int pm_generic_suspend(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:44: error: use of undeclared identifier 'dwc3_generic_resume'; did you mean 'pm_generic_resume'?
199 | SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
| ^~~~~~~~~~~~~~~~~~~
| pm_generic_resume
include/linux/pm.h:319:26: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
319 | .restore = pm_sleep_ptr(resume_fn),
| ^~~~~~~~~
include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
| ^~~~
include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
include/linux/pm.h:843:12: note: 'pm_generic_resume' declared here
843 | extern int pm_generic_resume(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:200:17: error: use of undeclared identifier 'dwc3_generic_runtime_suspend'; did you mean 'pm_generic_runtime_suspend'?
200 | RUNTIME_PM_OPS(dwc3_generic_runtime_suspend, dwc3_generic_runtime_resume,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| pm_generic_runtime_suspend
include/linux/pm.h:338:21: note: expanded from macro 'RUNTIME_PM_OPS'
338 | .runtime_suspend = suspend_fn, \
| ^~~~~~~~~~
include/linux/pm_runtime.h:68:12: note: 'pm_generic_runtime_suspend' declared here
68 | extern int pm_generic_runtime_suspend(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:200:47: error: use of undeclared identifier 'dwc3_generic_runtime_resume'; did you mean 'pm_generic_runtime_resume'?
200 | RUNTIME_PM_OPS(dwc3_generic_runtime_suspend, dwc3_generic_runtime_resume,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| pm_generic_runtime_resume
include/linux/pm.h:339:20: note: expanded from macro 'RUNTIME_PM_OPS'
339 | .runtime_resume = resume_fn, \
| ^~~~~~~~~
include/linux/pm_runtime.h:69:12: note: 'pm_generic_runtime_resume' declared here
69 | extern int pm_generic_runtime_resume(struct device *dev);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:201:10: error: use of undeclared identifier 'dwc3_generic_runtime_idle'; did you mean 'dwc3_runtime_idle'?
201 | dwc3_generic_runtime_idle)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| dwc3_runtime_idle
include/linux/pm.h:340:18: note: expanded from macro 'RUNTIME_PM_OPS'
340 | .runtime_idle = idle_fn,
| ^~~~~~~
drivers/usb/dwc3/glue.h:74:5: note: 'dwc3_runtime_idle' declared here
74 | int dwc3_runtime_idle(struct dwc3 *dwc);
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:201:10: error: incompatible function pointer types initializing 'int (*)(struct device *)' with an expression of type 'int (struct dwc3 *)' [-Wincompatible-function-pointer-types]
201 | dwc3_generic_runtime_idle)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/usb/dwc3/dwc3-generic-plat.c:223:13: error: use of undeclared identifier 'dwc3_generic_remove'; did you mean 'dwc3_generic_probe'?
223 | .remove = dwc3_generic_remove,
| ^~~~~~~~~~~~~~~~~~~
| dwc3_generic_probe
drivers/usb/dwc3/dwc3-generic-plat.c:72:12: note: 'dwc3_generic_probe' declared here
72 | static int dwc3_generic_probe(struct platform_device *pdev)
| ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:223:13: error: incompatible function pointer types initializing 'void (*)(struct platform_device *)' with an expression of type 'int (struct platform_device *)' [-Wincompatible-function-pointer-types]
223 | .remove = dwc3_generic_remove,
| ^~~~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 warnings and 20 errors generated.
vim +132 drivers/usb/dwc3/dwc3-generic-plat.c
71
72 static int dwc3_generic_probe(struct platform_device *pdev)
73 {
74 const struct dwc3_generic_config *plat_config;
75 struct dwc3_probe_data probe_data = {};
76 struct device *dev = &pdev->dev;
77 struct dwc3_generic *dwc3g;
78 struct resource *res;
79 int ret;
80
81 dwc3g = devm_kzalloc(dev, sizeof(*dwc3g), GFP_KERNEL);
82 if (!dwc3g)
83 return -ENOMEM;
84
85 dwc3g->dev = dev;
86
87 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
88 if (!res) {
89 dev_err(&pdev->dev, "missing memory resource\n");
90 return -ENODEV;
91 }
92
93 dwc3g->resets = devm_reset_control_array_get_optional_exclusive(dev);
94 if (IS_ERR(dwc3g->resets))
95 return dev_err_probe(dev, PTR_ERR(dwc3g->resets), "failed to get resets\n");
96
97 ret = reset_control_assert(dwc3g->resets);
98 if (ret)
99 return dev_err_probe(dev, ret, "failed to assert resets\n");
100
101 /* Not strict timing, just for safety */
102 udelay(2);
103
104 ret = reset_control_deassert(dwc3g->resets);
105 if (ret)
106 return dev_err_probe(dev, ret, "failed to deassert resets\n");
107
108 ret = devm_add_action_or_reset(dev, dwc3_generic_reset_control_assert, dwc3g->resets);
109 if (ret)
110 return ret;
111
112 ret = devm_clk_bulk_get_all_enabled(dwc3g->dev, &dwc3g->clks);
113 if (ret < 0)
114 return dev_err_probe(dev, ret, "failed to get clocks\n");
115
116 dwc3g->num_clocks = ret;
117 dwc3g->dwc.dev = dev;
118 probe_data.dwc = &dwc3g->dwc;
119 probe_data.res = res;
120 probe_data.ignore_clocks_and_resets = true;
121
122 plat_config = of_device_get_match_data(dev);
123 if (!plat_config) {
124 probe_data.properties = DWC3_DEFAULT_PROPERTIES;
125 goto core_probe;
126 }
127
128 probe_data.properties = plat_config->properties;
129 if (plat_config->init) {
130 ret = plat_config->init(dwc3g);
131 if (ret)
> 132 return dev_err_probe(dev, ret, "failed to init
133 platform\n");
134 }
135
136 core_probe:
137 ret = dwc3_core_probe(&probe_data);
138 if (ret)
139 return dev_err_probe(dev, ret, "failed to register DWC3 Core\n");
140
141 return 0;
142 }
143
144 static void dwc3_generic_remove(struct platform_device *pdev)
> 145 {
146 struct dwc3 *dwc = platform_get_drvdata(pdev);
147
148 dwc3_core_remove(dwc);
149 }
150
151 static int dwc3_generic_suspend(struct device *dev)
152 {
153 struct dwc3 *dwc = dev_get_drvdata(dev);
154 struct dwc3_generic *dwc3g = to_dwc3_generic(dwc);
155 int ret;
156
157 ret = dwc3_pm_suspend(dwc);
158 if (ret)
159 return ret;
160
161 clk_bulk_disable_unprepare(dwc3g->num_clocks, dwc3g->clks);
162
163 return 0;
164 }
165
166 static int dwc3_generic_resume(struct device *dev)
167 {
168 struct dwc3 *dwc = dev_get_drvdata(dev);
169 struct dwc3_generic *dwc3g = to_dwc3_generic(dwc);
170 int ret;
171
172 ret = clk_bulk_prepare_enable(dwc3g->num_clocks, dwc3g->clks);
173 if (ret)
174 return ret;
175
176 ret = dwc3_pm_resume(dwc);
177 if (ret)
178 return ret;
179
180 return 0;
181 }
182
183 static int dwc3_generic_runtime_suspend(struct device *dev)
184 {
185 return dwc3_runtime_suspend(dev_get_drvdata(dev));
186 }
187
188 static int dwc3_generic_runtime_resume(struct device *dev)
189 {
190 return dwc3_runtime_resume(dev_get_drvdata(dev));
191 }
192
193 static int dwc3_generic_runtime_idle(struct device *dev)
194 {
195 return dwc3_runtime_idle(dev_get_drvdata(dev));
196 }
197
198 static const struct dev_pm_ops dwc3_generic_dev_pm_ops = {
> 199 SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
> 200 RUNTIME_PM_OPS(dwc3_generic_runtime_suspend, dwc3_generic_runtime_resume,
> 201 dwc3_generic_runtime_idle)
202 };
203
204 static const struct dwc3_generic_config fsl_ls1028_dwc3 = {
205 .properties.gsbuscfg0_reqinfo = 0x2222,
206 };
207
208 static const struct dwc3_generic_config eic7700_dwc3 = {
209 .init = dwc3_eic7700_init,
210 .properties = DWC3_DEFAULT_PROPERTIES,
211 };
212
213 static const struct of_device_id dwc3_generic_of_match[] = {
214 { .compatible = "spacemit,k1-dwc3", },
215 { .compatible = "fsl,ls1028a-dwc3", &fsl_ls1028_dwc3},
216 { .compatible = "eswin,eic7700-dwc3", &eic7700_dwc3},
217 { /* sentinel */ }
218 };
219 MODULE_DEVICE_TABLE(of, dwc3_generic_of_match);
220
221 static struct platform_driver dwc3_generic_driver = {
222 .probe = dwc3_generic_probe,
> 223 .remove = dwc3_generic_remove,
224 .driver = {
225 .name = "dwc3-generic-plat",
226 .of_match_table = dwc3_generic_of_match,
227 .pm = pm_ptr(&dwc3_generic_dev_pm_ops),
228 },
229 };
230 module_platform_driver(dwc3_generic_driver);
231
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2025-11-10 21:36 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 2:43 [PATCH v7 0/2] Add driver support for ESWIN EIC7700 SoC USB controller caohang
2025-11-10 2:44 ` [PATCH v7 1/2] dt-bindings: usb: Add ESWIN EIC7700 " caohang
2025-11-10 2:45 ` [PATCH v7 2/2] usb: dwc3: eic7700: Add EIC7700 USB driver caohang
2025-11-10 17:47 ` kernel test robot
2025-11-10 21:35 ` kernel test robot [this message]
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=202511110504.qfGuRVHY-lkp@intel.com \
--to=lkp@intel.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=caohang@eswincomputing.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=linmin@eswincomputing.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=ningyu@eswincomputing.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=p.zabel@pengutronix.de \
--cc=pinkesh.vaghela@einfochips.com \
--cc=robh@kernel.org \
--cc=zhangsenchuan@eswincomputing.com \
/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: link
Be 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.