* [phy:phy_7.2 26/27] drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'?
@ 2026-04-30 8:38 kernel test robot
2026-04-30 9:05 ` Vladimir Oltean
0 siblings, 1 reply; 3+ messages in thread
From: kernel test robot @ 2026-04-30 8:38 UTC (permalink / raw)
To: Vladimir Oltean; +Cc: oe-kbuild-all, Vinod Koul, Kishon, Dmitry Baryshkov
tree: https://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git phy_7.2
head: d097a6ebab1ffe9286cca190fe74d51b01d80dc3
commit: 9ed7a91a68cbba256d1a53c353bf6c62c7e056f0 [26/27] phy: remove temporary provider compatibility from consumer header
config: arm-randconfig-001 (https://download.01.org/0day-ci/archive/20260430/202604301628.FO3dQRui-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260430/202604301628.FO3dQRui-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/202604301628.FO3dQRui-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
drivers/usb/dwc3/dwc3-imx.c: In function 'dwc3_imx_get_property':
>> drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'? [-Werror=implicit-function-declaration]
device_property_read_bool(dev, "fsl,permanently-attached");
^~~~~~~~~~~~~~~~~~~~~~~~~
device_store_bool
drivers/usb/dwc3/dwc3-imx.c: At top level:
>> drivers/usb/dwc3/dwc3-imx.c:184:36: error: array type has incomplete element type 'struct property_entry'
static const struct property_entry dwc3_imx_properties[] = {
^~~~~~~~~~~~~~~~~~~
>> drivers/usb/dwc3/dwc3-imx.c:185:2: error: implicit declaration of function 'PROPERTY_ENTRY_BOOL' [-Werror=implicit-function-declaration]
PROPERTY_ENTRY_BOOL("xhci-missing-cas-quirk"),
^~~~~~~~~~~~~~~~~~~
>> drivers/usb/dwc3/dwc3-imx.c:190:21: error: variable 'dwc3_imx_swnode' has initializer but incomplete type
static const struct software_node dwc3_imx_swnode = {
^~~~~~~~~~~~~
>> drivers/usb/dwc3/dwc3-imx.c:191:3: error: 'const struct software_node' has no member named 'properties'
.properties = dwc3_imx_properties,
^~~~~~~~~~
>> drivers/usb/dwc3/dwc3-imx.c:191:16: warning: excess elements in struct initializer
.properties = dwc3_imx_properties,
^~~~~~~~~~~~~~~~~~~
drivers/usb/dwc3/dwc3-imx.c:191:16: note: (near initialization for 'dwc3_imx_swnode')
drivers/usb/dwc3/dwc3-imx.c: In function 'dwc3_imx_probe':
>> drivers/usb/dwc3/dwc3-imx.c:255:8: error: implicit declaration of function 'device_add_software_node'; did you mean 'device_add_of_node'? [-Werror=implicit-function-declaration]
ret = device_add_software_node(dev, &dwc3_imx_swnode);
^~~~~~~~~~~~~~~~~~~~~~~~
device_add_of_node
>> drivers/usb/dwc3/dwc3-imx.c:272:3: error: implicit declaration of function 'device_remove_software_node'; did you mean 'device_remove_of_node'? [-Werror=implicit-function-declaration]
device_remove_software_node(dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
device_remove_of_node
drivers/usb/dwc3/dwc3-imx.c: At top level:
>> drivers/usb/dwc3/dwc3-imx.c:190:35: error: storage size of 'dwc3_imx_swnode' isn't known
static const struct software_node dwc3_imx_swnode = {
^~~~~~~~~~~~~~~
>> drivers/usb/dwc3/dwc3-imx.c:184:36: warning: 'dwc3_imx_properties' defined but not used [-Wunused-variable]
static const struct property_entry dwc3_imx_properties[] = {
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +74 drivers/usb/dwc3/dwc3-imx.c
76fc9452a6bfb6 Xu Yang 2026-02-12 68
76fc9452a6bfb6 Xu Yang 2026-02-12 69 static void dwc3_imx_get_property(struct dwc3_imx *dwc_imx)
76fc9452a6bfb6 Xu Yang 2026-02-12 70 {
76fc9452a6bfb6 Xu Yang 2026-02-12 71 struct device *dev = dwc_imx->dev;
76fc9452a6bfb6 Xu Yang 2026-02-12 72
76fc9452a6bfb6 Xu Yang 2026-02-12 73 dwc_imx->permanent_attached =
76fc9452a6bfb6 Xu Yang 2026-02-12 @74 device_property_read_bool(dev, "fsl,permanently-attached");
76fc9452a6bfb6 Xu Yang 2026-02-12 75 dwc_imx->disable_pwr_ctrl =
76fc9452a6bfb6 Xu Yang 2026-02-12 76 device_property_read_bool(dev, "fsl,disable-port-power-control");
76fc9452a6bfb6 Xu Yang 2026-02-12 77 dwc_imx->overcur_active_low =
76fc9452a6bfb6 Xu Yang 2026-02-12 78 device_property_read_bool(dev, "fsl,over-current-active-low");
76fc9452a6bfb6 Xu Yang 2026-02-12 79 dwc_imx->power_active_low =
76fc9452a6bfb6 Xu Yang 2026-02-12 80 device_property_read_bool(dev, "fsl,power-active-low");
76fc9452a6bfb6 Xu Yang 2026-02-12 81 }
76fc9452a6bfb6 Xu Yang 2026-02-12 82
76fc9452a6bfb6 Xu Yang 2026-02-12 83 static void dwc3_imx_configure_glue(struct dwc3_imx *dwc_imx)
76fc9452a6bfb6 Xu Yang 2026-02-12 84 {
76fc9452a6bfb6 Xu Yang 2026-02-12 85 u32 value;
76fc9452a6bfb6 Xu Yang 2026-02-12 86
76fc9452a6bfb6 Xu Yang 2026-02-12 87 if (!dwc_imx->glue_base)
76fc9452a6bfb6 Xu Yang 2026-02-12 88 return;
76fc9452a6bfb6 Xu Yang 2026-02-12 89
76fc9452a6bfb6 Xu Yang 2026-02-12 90 value = readl(dwc_imx->glue_base + USB_CTRL0);
76fc9452a6bfb6 Xu Yang 2026-02-12 91
76fc9452a6bfb6 Xu Yang 2026-02-12 92 if (dwc_imx->permanent_attached)
76fc9452a6bfb6 Xu Yang 2026-02-12 93 value |= USB_CTRL0_USB2_FIXED | USB_CTRL0_USB3_FIXED;
76fc9452a6bfb6 Xu Yang 2026-02-12 94 else
76fc9452a6bfb6 Xu Yang 2026-02-12 95 value &= ~(USB_CTRL0_USB2_FIXED | USB_CTRL0_USB3_FIXED);
76fc9452a6bfb6 Xu Yang 2026-02-12 96
76fc9452a6bfb6 Xu Yang 2026-02-12 97 if (dwc_imx->disable_pwr_ctrl)
76fc9452a6bfb6 Xu Yang 2026-02-12 98 value &= ~USB_CTRL0_PORTPWR_EN;
76fc9452a6bfb6 Xu Yang 2026-02-12 99 else
76fc9452a6bfb6 Xu Yang 2026-02-12 100 value |= USB_CTRL0_PORTPWR_EN;
76fc9452a6bfb6 Xu Yang 2026-02-12 101
76fc9452a6bfb6 Xu Yang 2026-02-12 102 writel(value, dwc_imx->glue_base + USB_CTRL0);
76fc9452a6bfb6 Xu Yang 2026-02-12 103
76fc9452a6bfb6 Xu Yang 2026-02-12 104 value = readl(dwc_imx->glue_base + USB_CTRL1);
76fc9452a6bfb6 Xu Yang 2026-02-12 105 if (dwc_imx->overcur_active_low)
76fc9452a6bfb6 Xu Yang 2026-02-12 106 value |= USB_CTRL1_OC_POLARITY;
76fc9452a6bfb6 Xu Yang 2026-02-12 107 else
76fc9452a6bfb6 Xu Yang 2026-02-12 108 value &= ~USB_CTRL1_OC_POLARITY;
76fc9452a6bfb6 Xu Yang 2026-02-12 109
76fc9452a6bfb6 Xu Yang 2026-02-12 110 if (dwc_imx->power_active_low)
76fc9452a6bfb6 Xu Yang 2026-02-12 111 value |= USB_CTRL1_PWR_POLARITY;
76fc9452a6bfb6 Xu Yang 2026-02-12 112 else
76fc9452a6bfb6 Xu Yang 2026-02-12 113 value &= ~USB_CTRL1_PWR_POLARITY;
76fc9452a6bfb6 Xu Yang 2026-02-12 114
76fc9452a6bfb6 Xu Yang 2026-02-12 115 writel(value, dwc_imx->glue_base + USB_CTRL1);
76fc9452a6bfb6 Xu Yang 2026-02-12 116 }
76fc9452a6bfb6 Xu Yang 2026-02-12 117
76fc9452a6bfb6 Xu Yang 2026-02-12 118 static void dwc3_imx_wakeup_enable(struct dwc3_imx *dwc_imx, pm_message_t msg)
76fc9452a6bfb6 Xu Yang 2026-02-12 119 {
76fc9452a6bfb6 Xu Yang 2026-02-12 120 struct dwc3 *dwc = &dwc_imx->dwc;
76fc9452a6bfb6 Xu Yang 2026-02-12 121 u32 val;
76fc9452a6bfb6 Xu Yang 2026-02-12 122
76fc9452a6bfb6 Xu Yang 2026-02-12 123 val = readl(dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
76fc9452a6bfb6 Xu Yang 2026-02-12 124
76fc9452a6bfb6 Xu Yang 2026-02-12 125 if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST && dwc->xhci) {
76fc9452a6bfb6 Xu Yang 2026-02-12 126 val |= USB_WAKEUP_EN | USB_WAKEUP_DPDM_EN;
76fc9452a6bfb6 Xu Yang 2026-02-12 127 if (PMSG_IS_AUTO(msg))
76fc9452a6bfb6 Xu Yang 2026-02-12 128 val |= USB_WAKEUP_SS_CONN | USB_WAKEUP_U3_EN;
76fc9452a6bfb6 Xu Yang 2026-02-12 129 } else {
76fc9452a6bfb6 Xu Yang 2026-02-12 130 val |= USB_WAKEUP_EN | USB_WAKEUP_VBUS_EN |
76fc9452a6bfb6 Xu Yang 2026-02-12 131 USB_WAKEUP_VBUS_SRC_SESS_VAL;
76fc9452a6bfb6 Xu Yang 2026-02-12 132 }
76fc9452a6bfb6 Xu Yang 2026-02-12 133
76fc9452a6bfb6 Xu Yang 2026-02-12 134 writel(val, dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
76fc9452a6bfb6 Xu Yang 2026-02-12 135 }
76fc9452a6bfb6 Xu Yang 2026-02-12 136
76fc9452a6bfb6 Xu Yang 2026-02-12 137 static void dwc3_imx_wakeup_disable(struct dwc3_imx *dwc_imx)
76fc9452a6bfb6 Xu Yang 2026-02-12 138 {
76fc9452a6bfb6 Xu Yang 2026-02-12 139 u32 val;
76fc9452a6bfb6 Xu Yang 2026-02-12 140
76fc9452a6bfb6 Xu Yang 2026-02-12 141 val = readl(dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
76fc9452a6bfb6 Xu Yang 2026-02-12 142 val &= ~(USB_WAKEUP_EN | USB_WAKEUP_EN_MASK);
76fc9452a6bfb6 Xu Yang 2026-02-12 143 writel(val, dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
76fc9452a6bfb6 Xu Yang 2026-02-12 144 }
76fc9452a6bfb6 Xu Yang 2026-02-12 145
76fc9452a6bfb6 Xu Yang 2026-02-12 146 static irqreturn_t dwc3_imx_interrupt(int irq, void *data)
76fc9452a6bfb6 Xu Yang 2026-02-12 147 {
76fc9452a6bfb6 Xu Yang 2026-02-12 148 struct dwc3_imx *dwc_imx = data;
76fc9452a6bfb6 Xu Yang 2026-02-12 149 struct dwc3 *dwc = &dwc_imx->dwc;
76fc9452a6bfb6 Xu Yang 2026-02-12 150
76fc9452a6bfb6 Xu Yang 2026-02-12 151 if (!dwc_imx->pm_suspended)
76fc9452a6bfb6 Xu Yang 2026-02-12 152 return IRQ_HANDLED;
76fc9452a6bfb6 Xu Yang 2026-02-12 153
76fc9452a6bfb6 Xu Yang 2026-02-12 154 disable_irq_nosync(dwc_imx->irq);
76fc9452a6bfb6 Xu Yang 2026-02-12 155 dwc_imx->wakeup_pending = true;
76fc9452a6bfb6 Xu Yang 2026-02-12 156
76fc9452a6bfb6 Xu Yang 2026-02-12 157 if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST && dwc->xhci)
76fc9452a6bfb6 Xu Yang 2026-02-12 158 pm_runtime_resume(&dwc->xhci->dev);
76fc9452a6bfb6 Xu Yang 2026-02-12 159 else if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_DEVICE)
76fc9452a6bfb6 Xu Yang 2026-02-12 160 pm_runtime_get(dwc->dev);
76fc9452a6bfb6 Xu Yang 2026-02-12 161
76fc9452a6bfb6 Xu Yang 2026-02-12 162 return IRQ_HANDLED;
76fc9452a6bfb6 Xu Yang 2026-02-12 163 }
76fc9452a6bfb6 Xu Yang 2026-02-12 164
76fc9452a6bfb6 Xu Yang 2026-02-12 165 static void dwc3_imx_pre_set_role(struct dwc3 *dwc, enum usb_role role)
76fc9452a6bfb6 Xu Yang 2026-02-12 166 {
76fc9452a6bfb6 Xu Yang 2026-02-12 167 if (role == USB_ROLE_HOST)
76fc9452a6bfb6 Xu Yang 2026-02-12 168 /*
76fc9452a6bfb6 Xu Yang 2026-02-12 169 * For xhci host, we need disable dwc core auto
76fc9452a6bfb6 Xu Yang 2026-02-12 170 * suspend, because during this auto suspend delay(5s),
76fc9452a6bfb6 Xu Yang 2026-02-12 171 * xhci host RUN_STOP is cleared and wakeup is not
76fc9452a6bfb6 Xu Yang 2026-02-12 172 * enabled, if device is inserted, xhci host can't
76fc9452a6bfb6 Xu Yang 2026-02-12 173 * response the connection.
76fc9452a6bfb6 Xu Yang 2026-02-12 174 */
76fc9452a6bfb6 Xu Yang 2026-02-12 175 pm_runtime_dont_use_autosuspend(dwc->dev);
76fc9452a6bfb6 Xu Yang 2026-02-12 176 else
76fc9452a6bfb6 Xu Yang 2026-02-12 177 pm_runtime_use_autosuspend(dwc->dev);
76fc9452a6bfb6 Xu Yang 2026-02-12 178 }
76fc9452a6bfb6 Xu Yang 2026-02-12 179
76fc9452a6bfb6 Xu Yang 2026-02-12 180 static struct dwc3_glue_ops dwc3_imx_glue_ops = {
76fc9452a6bfb6 Xu Yang 2026-02-12 181 .pre_set_role = dwc3_imx_pre_set_role,
76fc9452a6bfb6 Xu Yang 2026-02-12 182 };
76fc9452a6bfb6 Xu Yang 2026-02-12 183
76fc9452a6bfb6 Xu Yang 2026-02-12 @184 static const struct property_entry dwc3_imx_properties[] = {
76fc9452a6bfb6 Xu Yang 2026-02-12 @185 PROPERTY_ENTRY_BOOL("xhci-missing-cas-quirk"),
76fc9452a6bfb6 Xu Yang 2026-02-12 186 PROPERTY_ENTRY_BOOL("xhci-skip-phy-init-quirk"),
76fc9452a6bfb6 Xu Yang 2026-02-12 187 {},
76fc9452a6bfb6 Xu Yang 2026-02-12 188 };
76fc9452a6bfb6 Xu Yang 2026-02-12 189
76fc9452a6bfb6 Xu Yang 2026-02-12 @190 static const struct software_node dwc3_imx_swnode = {
76fc9452a6bfb6 Xu Yang 2026-02-12 @191 .properties = dwc3_imx_properties,
76fc9452a6bfb6 Xu Yang 2026-02-12 192 };
76fc9452a6bfb6 Xu Yang 2026-02-12 193
76fc9452a6bfb6 Xu Yang 2026-02-12 194 static int dwc3_imx_probe(struct platform_device *pdev)
76fc9452a6bfb6 Xu Yang 2026-02-12 195 {
76fc9452a6bfb6 Xu Yang 2026-02-12 196 struct device *dev = &pdev->dev;
76fc9452a6bfb6 Xu Yang 2026-02-12 197 struct dwc3_imx *dwc_imx;
76fc9452a6bfb6 Xu Yang 2026-02-12 198 struct dwc3 *dwc;
76fc9452a6bfb6 Xu Yang 2026-02-12 199 struct resource *res;
76fc9452a6bfb6 Xu Yang 2026-02-12 200 const char *irq_name;
76fc9452a6bfb6 Xu Yang 2026-02-12 201 struct dwc3_probe_data probe_data = {};
76fc9452a6bfb6 Xu Yang 2026-02-12 202 int ret, irq;
76fc9452a6bfb6 Xu Yang 2026-02-12 203
76fc9452a6bfb6 Xu Yang 2026-02-12 204 dwc_imx = devm_kzalloc(dev, sizeof(*dwc_imx), GFP_KERNEL);
76fc9452a6bfb6 Xu Yang 2026-02-12 205 if (!dwc_imx)
76fc9452a6bfb6 Xu Yang 2026-02-12 206 return -ENOMEM;
76fc9452a6bfb6 Xu Yang 2026-02-12 207
76fc9452a6bfb6 Xu Yang 2026-02-12 208 platform_set_drvdata(pdev, dwc_imx);
76fc9452a6bfb6 Xu Yang 2026-02-12 209 dwc_imx->dev = dev;
76fc9452a6bfb6 Xu Yang 2026-02-12 210
76fc9452a6bfb6 Xu Yang 2026-02-12 211 dwc3_imx_get_property(dwc_imx);
76fc9452a6bfb6 Xu Yang 2026-02-12 212
76fc9452a6bfb6 Xu Yang 2026-02-12 213 dwc_imx->blkctl_base = devm_platform_ioremap_resource_byname(pdev, "blkctl");
76fc9452a6bfb6 Xu Yang 2026-02-12 214 if (IS_ERR(dwc_imx->blkctl_base))
76fc9452a6bfb6 Xu Yang 2026-02-12 215 return PTR_ERR(dwc_imx->blkctl_base);
76fc9452a6bfb6 Xu Yang 2026-02-12 216
76fc9452a6bfb6 Xu Yang 2026-02-12 217 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "glue");
76fc9452a6bfb6 Xu Yang 2026-02-12 218 if (!res) {
76fc9452a6bfb6 Xu Yang 2026-02-12 219 dev_warn(dev, "Base address for glue layer missing\n");
76fc9452a6bfb6 Xu Yang 2026-02-12 220 } else {
76fc9452a6bfb6 Xu Yang 2026-02-12 221 dwc_imx->glue_base = devm_ioremap_resource(dev, res);
76fc9452a6bfb6 Xu Yang 2026-02-12 222 if (IS_ERR(dwc_imx->glue_base))
76fc9452a6bfb6 Xu Yang 2026-02-12 223 return PTR_ERR(dwc_imx->glue_base);
76fc9452a6bfb6 Xu Yang 2026-02-12 224 }
76fc9452a6bfb6 Xu Yang 2026-02-12 225
76fc9452a6bfb6 Xu Yang 2026-02-12 226 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "core");
76fc9452a6bfb6 Xu Yang 2026-02-12 227 if (!res)
76fc9452a6bfb6 Xu Yang 2026-02-12 228 return dev_err_probe(dev, -ENODEV, "missing core memory resource\n");
76fc9452a6bfb6 Xu Yang 2026-02-12 229
76fc9452a6bfb6 Xu Yang 2026-02-12 230 dwc_imx->hsio_clk = devm_clk_get_enabled(dev, "hsio");
76fc9452a6bfb6 Xu Yang 2026-02-12 231 if (IS_ERR(dwc_imx->hsio_clk))
76fc9452a6bfb6 Xu Yang 2026-02-12 232 return dev_err_probe(dev, PTR_ERR(dwc_imx->hsio_clk),
76fc9452a6bfb6 Xu Yang 2026-02-12 233 "Failed to get hsio clk\n");
76fc9452a6bfb6 Xu Yang 2026-02-12 234
76fc9452a6bfb6 Xu Yang 2026-02-12 235 dwc_imx->suspend_clk = devm_clk_get_enabled(dev, "suspend");
76fc9452a6bfb6 Xu Yang 2026-02-12 236 if (IS_ERR(dwc_imx->suspend_clk))
76fc9452a6bfb6 Xu Yang 2026-02-12 237 return dev_err_probe(dev, PTR_ERR(dwc_imx->suspend_clk),
76fc9452a6bfb6 Xu Yang 2026-02-12 238 "Failed to get suspend clk\n");
76fc9452a6bfb6 Xu Yang 2026-02-12 239
76fc9452a6bfb6 Xu Yang 2026-02-12 240 irq = platform_get_irq_byname(pdev, "wakeup");
76fc9452a6bfb6 Xu Yang 2026-02-12 241 if (irq < 0)
76fc9452a6bfb6 Xu Yang 2026-02-12 242 return irq;
76fc9452a6bfb6 Xu Yang 2026-02-12 243 dwc_imx->irq = irq;
76fc9452a6bfb6 Xu Yang 2026-02-12 244
76fc9452a6bfb6 Xu Yang 2026-02-12 245 irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s:wakeup", dev_name(dev));
76fc9452a6bfb6 Xu Yang 2026-02-12 246 if (!irq_name)
76fc9452a6bfb6 Xu Yang 2026-02-12 247 return dev_err_probe(dev, -ENOMEM, "failed to create irq_name\n");
76fc9452a6bfb6 Xu Yang 2026-02-12 248
76fc9452a6bfb6 Xu Yang 2026-02-12 249 ret = devm_request_threaded_irq(dev, irq, NULL, dwc3_imx_interrupt,
76fc9452a6bfb6 Xu Yang 2026-02-12 250 IRQF_ONESHOT | IRQF_NO_AUTOEN,
76fc9452a6bfb6 Xu Yang 2026-02-12 251 irq_name, dwc_imx);
76fc9452a6bfb6 Xu Yang 2026-02-12 252 if (ret)
76fc9452a6bfb6 Xu Yang 2026-02-12 253 return dev_err_probe(dev, ret, "failed to request IRQ #%d\n", irq);
76fc9452a6bfb6 Xu Yang 2026-02-12 254
76fc9452a6bfb6 Xu Yang 2026-02-12 @255 ret = device_add_software_node(dev, &dwc3_imx_swnode);
76fc9452a6bfb6 Xu Yang 2026-02-12 256 if (ret)
76fc9452a6bfb6 Xu Yang 2026-02-12 257 return dev_err_probe(dev, ret, "failed to add software node\n");
76fc9452a6bfb6 Xu Yang 2026-02-12 258
76fc9452a6bfb6 Xu Yang 2026-02-12 259 dwc3_imx_configure_glue(dwc_imx);
76fc9452a6bfb6 Xu Yang 2026-02-12 260
76fc9452a6bfb6 Xu Yang 2026-02-12 261 dwc = &dwc_imx->dwc;
76fc9452a6bfb6 Xu Yang 2026-02-12 262 dwc->dev = dev;
76fc9452a6bfb6 Xu Yang 2026-02-12 263 dwc->glue_ops = &dwc3_imx_glue_ops;
76fc9452a6bfb6 Xu Yang 2026-02-12 264
76fc9452a6bfb6 Xu Yang 2026-02-12 265 probe_data.res = res;
76fc9452a6bfb6 Xu Yang 2026-02-12 266 probe_data.dwc = dwc;
76fc9452a6bfb6 Xu Yang 2026-02-12 267 probe_data.properties = DWC3_DEFAULT_PROPERTIES;
76fc9452a6bfb6 Xu Yang 2026-02-12 268 probe_data.properties.needs_full_reinit = true;
76fc9452a6bfb6 Xu Yang 2026-02-12 269
76fc9452a6bfb6 Xu Yang 2026-02-12 270 ret = dwc3_core_probe(&probe_data);
76fc9452a6bfb6 Xu Yang 2026-02-12 271 if (ret) {
76fc9452a6bfb6 Xu Yang 2026-02-12 @272 device_remove_software_node(dev);
76fc9452a6bfb6 Xu Yang 2026-02-12 273 return ret;
76fc9452a6bfb6 Xu Yang 2026-02-12 274 }
76fc9452a6bfb6 Xu Yang 2026-02-12 275
76fc9452a6bfb6 Xu Yang 2026-02-12 276 device_set_wakeup_capable(dev, true);
76fc9452a6bfb6 Xu Yang 2026-02-12 277 return 0;
76fc9452a6bfb6 Xu Yang 2026-02-12 278 }
76fc9452a6bfb6 Xu Yang 2026-02-12 279
:::::: The code at line 74 was first introduced by commit
:::::: 76fc9452a6bfb63a297fa0410d5368a691ed411b usb: dwc3: introduce flatten model driver of i.MX Soc
:::::: TO: Xu Yang <xu.yang_2@nxp.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [phy:phy_7.2 26/27] drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'?
2026-04-30 8:38 [phy:phy_7.2 26/27] drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'? kernel test robot
@ 2026-04-30 9:05 ` Vladimir Oltean
2026-05-03 16:22 ` Vinod Koul
0 siblings, 1 reply; 3+ messages in thread
From: Vladimir Oltean @ 2026-04-30 9:05 UTC (permalink / raw)
To: kernel test robot, Dmitry Baryshkov; +Cc: oe-kbuild-all, Vinod Koul, Kishon
On Thu, Apr 30, 2026 at 04:38:21PM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git phy_7.2
> head: d097a6ebab1ffe9286cca190fe74d51b01d80dc3
> commit: 9ed7a91a68cbba256d1a53c353bf6c62c7e056f0 [26/27] phy: remove temporary provider compatibility from consumer header
> config: arm-randconfig-001 (https://download.01.org/0day-ci/archive/20260430/202604301628.FO3dQRui-lkp@intel.com/config)
> compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260430/202604301628.FO3dQRui-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/202604301628.FO3dQRui-lkp@intel.com/
>
> All error/warnings (new ones prefixed by >>):
>
> drivers/usb/dwc3/dwc3-imx.c: In function 'dwc3_imx_get_property':
> >> drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'? [-Werror=implicit-function-declaration]
> device_property_read_bool(dev, "fsl,permanently-attached");
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> device_store_bool
> drivers/usb/dwc3/dwc3-imx.c: At top level:
> >> drivers/usb/dwc3/dwc3-imx.c:184:36: error: array type has incomplete element type 'struct property_entry'
> static const struct property_entry dwc3_imx_properties[] = {
> ^~~~~~~~~~~~~~~~~~~
> >> drivers/usb/dwc3/dwc3-imx.c:185:2: error: implicit declaration of function 'PROPERTY_ENTRY_BOOL' [-Werror=implicit-function-declaration]
> PROPERTY_ENTRY_BOOL("xhci-missing-cas-quirk"),
> ^~~~~~~~~~~~~~~~~~~
> >> drivers/usb/dwc3/dwc3-imx.c:190:21: error: variable 'dwc3_imx_swnode' has initializer but incomplete type
> static const struct software_node dwc3_imx_swnode = {
> ^~~~~~~~~~~~~
> >> drivers/usb/dwc3/dwc3-imx.c:191:3: error: 'const struct software_node' has no member named 'properties'
> .properties = dwc3_imx_properties,
> ^~~~~~~~~~
> >> drivers/usb/dwc3/dwc3-imx.c:191:16: warning: excess elements in struct initializer
> .properties = dwc3_imx_properties,
> ^~~~~~~~~~~~~~~~~~~
> drivers/usb/dwc3/dwc3-imx.c:191:16: note: (near initialization for 'dwc3_imx_swnode')
> drivers/usb/dwc3/dwc3-imx.c: In function 'dwc3_imx_probe':
> >> drivers/usb/dwc3/dwc3-imx.c:255:8: error: implicit declaration of function 'device_add_software_node'; did you mean 'device_add_of_node'? [-Werror=implicit-function-declaration]
> ret = device_add_software_node(dev, &dwc3_imx_swnode);
> ^~~~~~~~~~~~~~~~~~~~~~~~
> device_add_of_node
> >> drivers/usb/dwc3/dwc3-imx.c:272:3: error: implicit declaration of function 'device_remove_software_node'; did you mean 'device_remove_of_node'? [-Werror=implicit-function-declaration]
> device_remove_software_node(dev);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> device_remove_of_node
> drivers/usb/dwc3/dwc3-imx.c: At top level:
> >> drivers/usb/dwc3/dwc3-imx.c:190:35: error: storage size of 'dwc3_imx_swnode' isn't known
> static const struct software_node dwc3_imx_swnode = {
> ^~~~~~~~~~~~~~~
> >> drivers/usb/dwc3/dwc3-imx.c:184:36: warning: 'dwc3_imx_properties' defined but not used [-Wunused-variable]
> static const struct property_entry dwc3_imx_properties[] = {
> ^~~~~~~~~~~~~~~~~~~
> cc1: some warnings being treated as errors
>
>
> vim +74 drivers/usb/dwc3/dwc3-imx.c
>
> 76fc9452a6bfb6 Xu Yang 2026-02-12 68
> 76fc9452a6bfb6 Xu Yang 2026-02-12 69 static void dwc3_imx_get_property(struct dwc3_imx *dwc_imx)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 70 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 71 struct device *dev = dwc_imx->dev;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 72
> 76fc9452a6bfb6 Xu Yang 2026-02-12 73 dwc_imx->permanent_attached =
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @74 device_property_read_bool(dev, "fsl,permanently-attached");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 75 dwc_imx->disable_pwr_ctrl =
> 76fc9452a6bfb6 Xu Yang 2026-02-12 76 device_property_read_bool(dev, "fsl,disable-port-power-control");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 77 dwc_imx->overcur_active_low =
> 76fc9452a6bfb6 Xu Yang 2026-02-12 78 device_property_read_bool(dev, "fsl,over-current-active-low");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 79 dwc_imx->power_active_low =
> 76fc9452a6bfb6 Xu Yang 2026-02-12 80 device_property_read_bool(dev, "fsl,power-active-low");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 81 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 82
> 76fc9452a6bfb6 Xu Yang 2026-02-12 83 static void dwc3_imx_configure_glue(struct dwc3_imx *dwc_imx)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 84 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 85 u32 value;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 86
> 76fc9452a6bfb6 Xu Yang 2026-02-12 87 if (!dwc_imx->glue_base)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 88 return;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 89
> 76fc9452a6bfb6 Xu Yang 2026-02-12 90 value = readl(dwc_imx->glue_base + USB_CTRL0);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 91
> 76fc9452a6bfb6 Xu Yang 2026-02-12 92 if (dwc_imx->permanent_attached)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 93 value |= USB_CTRL0_USB2_FIXED | USB_CTRL0_USB3_FIXED;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 94 else
> 76fc9452a6bfb6 Xu Yang 2026-02-12 95 value &= ~(USB_CTRL0_USB2_FIXED | USB_CTRL0_USB3_FIXED);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 96
> 76fc9452a6bfb6 Xu Yang 2026-02-12 97 if (dwc_imx->disable_pwr_ctrl)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 98 value &= ~USB_CTRL0_PORTPWR_EN;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 99 else
> 76fc9452a6bfb6 Xu Yang 2026-02-12 100 value |= USB_CTRL0_PORTPWR_EN;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 101
> 76fc9452a6bfb6 Xu Yang 2026-02-12 102 writel(value, dwc_imx->glue_base + USB_CTRL0);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 103
> 76fc9452a6bfb6 Xu Yang 2026-02-12 104 value = readl(dwc_imx->glue_base + USB_CTRL1);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 105 if (dwc_imx->overcur_active_low)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 106 value |= USB_CTRL1_OC_POLARITY;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 107 else
> 76fc9452a6bfb6 Xu Yang 2026-02-12 108 value &= ~USB_CTRL1_OC_POLARITY;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 109
> 76fc9452a6bfb6 Xu Yang 2026-02-12 110 if (dwc_imx->power_active_low)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 111 value |= USB_CTRL1_PWR_POLARITY;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 112 else
> 76fc9452a6bfb6 Xu Yang 2026-02-12 113 value &= ~USB_CTRL1_PWR_POLARITY;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 114
> 76fc9452a6bfb6 Xu Yang 2026-02-12 115 writel(value, dwc_imx->glue_base + USB_CTRL1);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 116 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 117
> 76fc9452a6bfb6 Xu Yang 2026-02-12 118 static void dwc3_imx_wakeup_enable(struct dwc3_imx *dwc_imx, pm_message_t msg)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 119 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 120 struct dwc3 *dwc = &dwc_imx->dwc;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 121 u32 val;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 122
> 76fc9452a6bfb6 Xu Yang 2026-02-12 123 val = readl(dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 124
> 76fc9452a6bfb6 Xu Yang 2026-02-12 125 if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST && dwc->xhci) {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 126 val |= USB_WAKEUP_EN | USB_WAKEUP_DPDM_EN;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 127 if (PMSG_IS_AUTO(msg))
> 76fc9452a6bfb6 Xu Yang 2026-02-12 128 val |= USB_WAKEUP_SS_CONN | USB_WAKEUP_U3_EN;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 129 } else {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 130 val |= USB_WAKEUP_EN | USB_WAKEUP_VBUS_EN |
> 76fc9452a6bfb6 Xu Yang 2026-02-12 131 USB_WAKEUP_VBUS_SRC_SESS_VAL;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 132 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 133
> 76fc9452a6bfb6 Xu Yang 2026-02-12 134 writel(val, dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 135 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 136
> 76fc9452a6bfb6 Xu Yang 2026-02-12 137 static void dwc3_imx_wakeup_disable(struct dwc3_imx *dwc_imx)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 138 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 139 u32 val;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 140
> 76fc9452a6bfb6 Xu Yang 2026-02-12 141 val = readl(dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 142 val &= ~(USB_WAKEUP_EN | USB_WAKEUP_EN_MASK);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 143 writel(val, dwc_imx->blkctl_base + USB_WAKEUP_CTRL);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 144 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 145
> 76fc9452a6bfb6 Xu Yang 2026-02-12 146 static irqreturn_t dwc3_imx_interrupt(int irq, void *data)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 147 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 148 struct dwc3_imx *dwc_imx = data;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 149 struct dwc3 *dwc = &dwc_imx->dwc;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 150
> 76fc9452a6bfb6 Xu Yang 2026-02-12 151 if (!dwc_imx->pm_suspended)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 152 return IRQ_HANDLED;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 153
> 76fc9452a6bfb6 Xu Yang 2026-02-12 154 disable_irq_nosync(dwc_imx->irq);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 155 dwc_imx->wakeup_pending = true;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 156
> 76fc9452a6bfb6 Xu Yang 2026-02-12 157 if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST && dwc->xhci)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 158 pm_runtime_resume(&dwc->xhci->dev);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 159 else if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_DEVICE)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 160 pm_runtime_get(dwc->dev);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 161
> 76fc9452a6bfb6 Xu Yang 2026-02-12 162 return IRQ_HANDLED;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 163 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 164
> 76fc9452a6bfb6 Xu Yang 2026-02-12 165 static void dwc3_imx_pre_set_role(struct dwc3 *dwc, enum usb_role role)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 166 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 167 if (role == USB_ROLE_HOST)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 168 /*
> 76fc9452a6bfb6 Xu Yang 2026-02-12 169 * For xhci host, we need disable dwc core auto
> 76fc9452a6bfb6 Xu Yang 2026-02-12 170 * suspend, because during this auto suspend delay(5s),
> 76fc9452a6bfb6 Xu Yang 2026-02-12 171 * xhci host RUN_STOP is cleared and wakeup is not
> 76fc9452a6bfb6 Xu Yang 2026-02-12 172 * enabled, if device is inserted, xhci host can't
> 76fc9452a6bfb6 Xu Yang 2026-02-12 173 * response the connection.
> 76fc9452a6bfb6 Xu Yang 2026-02-12 174 */
> 76fc9452a6bfb6 Xu Yang 2026-02-12 175 pm_runtime_dont_use_autosuspend(dwc->dev);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 176 else
> 76fc9452a6bfb6 Xu Yang 2026-02-12 177 pm_runtime_use_autosuspend(dwc->dev);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 178 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 179
> 76fc9452a6bfb6 Xu Yang 2026-02-12 180 static struct dwc3_glue_ops dwc3_imx_glue_ops = {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 181 .pre_set_role = dwc3_imx_pre_set_role,
> 76fc9452a6bfb6 Xu Yang 2026-02-12 182 };
> 76fc9452a6bfb6 Xu Yang 2026-02-12 183
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @184 static const struct property_entry dwc3_imx_properties[] = {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @185 PROPERTY_ENTRY_BOOL("xhci-missing-cas-quirk"),
> 76fc9452a6bfb6 Xu Yang 2026-02-12 186 PROPERTY_ENTRY_BOOL("xhci-skip-phy-init-quirk"),
> 76fc9452a6bfb6 Xu Yang 2026-02-12 187 {},
> 76fc9452a6bfb6 Xu Yang 2026-02-12 188 };
> 76fc9452a6bfb6 Xu Yang 2026-02-12 189
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @190 static const struct software_node dwc3_imx_swnode = {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @191 .properties = dwc3_imx_properties,
> 76fc9452a6bfb6 Xu Yang 2026-02-12 192 };
> 76fc9452a6bfb6 Xu Yang 2026-02-12 193
> 76fc9452a6bfb6 Xu Yang 2026-02-12 194 static int dwc3_imx_probe(struct platform_device *pdev)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 195 {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 196 struct device *dev = &pdev->dev;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 197 struct dwc3_imx *dwc_imx;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 198 struct dwc3 *dwc;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 199 struct resource *res;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 200 const char *irq_name;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 201 struct dwc3_probe_data probe_data = {};
> 76fc9452a6bfb6 Xu Yang 2026-02-12 202 int ret, irq;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 203
> 76fc9452a6bfb6 Xu Yang 2026-02-12 204 dwc_imx = devm_kzalloc(dev, sizeof(*dwc_imx), GFP_KERNEL);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 205 if (!dwc_imx)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 206 return -ENOMEM;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 207
> 76fc9452a6bfb6 Xu Yang 2026-02-12 208 platform_set_drvdata(pdev, dwc_imx);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 209 dwc_imx->dev = dev;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 210
> 76fc9452a6bfb6 Xu Yang 2026-02-12 211 dwc3_imx_get_property(dwc_imx);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 212
> 76fc9452a6bfb6 Xu Yang 2026-02-12 213 dwc_imx->blkctl_base = devm_platform_ioremap_resource_byname(pdev, "blkctl");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 214 if (IS_ERR(dwc_imx->blkctl_base))
> 76fc9452a6bfb6 Xu Yang 2026-02-12 215 return PTR_ERR(dwc_imx->blkctl_base);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 216
> 76fc9452a6bfb6 Xu Yang 2026-02-12 217 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "glue");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 218 if (!res) {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 219 dev_warn(dev, "Base address for glue layer missing\n");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 220 } else {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 221 dwc_imx->glue_base = devm_ioremap_resource(dev, res);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 222 if (IS_ERR(dwc_imx->glue_base))
> 76fc9452a6bfb6 Xu Yang 2026-02-12 223 return PTR_ERR(dwc_imx->glue_base);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 224 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 225
> 76fc9452a6bfb6 Xu Yang 2026-02-12 226 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "core");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 227 if (!res)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 228 return dev_err_probe(dev, -ENODEV, "missing core memory resource\n");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 229
> 76fc9452a6bfb6 Xu Yang 2026-02-12 230 dwc_imx->hsio_clk = devm_clk_get_enabled(dev, "hsio");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 231 if (IS_ERR(dwc_imx->hsio_clk))
> 76fc9452a6bfb6 Xu Yang 2026-02-12 232 return dev_err_probe(dev, PTR_ERR(dwc_imx->hsio_clk),
> 76fc9452a6bfb6 Xu Yang 2026-02-12 233 "Failed to get hsio clk\n");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 234
> 76fc9452a6bfb6 Xu Yang 2026-02-12 235 dwc_imx->suspend_clk = devm_clk_get_enabled(dev, "suspend");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 236 if (IS_ERR(dwc_imx->suspend_clk))
> 76fc9452a6bfb6 Xu Yang 2026-02-12 237 return dev_err_probe(dev, PTR_ERR(dwc_imx->suspend_clk),
> 76fc9452a6bfb6 Xu Yang 2026-02-12 238 "Failed to get suspend clk\n");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 239
> 76fc9452a6bfb6 Xu Yang 2026-02-12 240 irq = platform_get_irq_byname(pdev, "wakeup");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 241 if (irq < 0)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 242 return irq;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 243 dwc_imx->irq = irq;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 244
> 76fc9452a6bfb6 Xu Yang 2026-02-12 245 irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s:wakeup", dev_name(dev));
> 76fc9452a6bfb6 Xu Yang 2026-02-12 246 if (!irq_name)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 247 return dev_err_probe(dev, -ENOMEM, "failed to create irq_name\n");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 248
> 76fc9452a6bfb6 Xu Yang 2026-02-12 249 ret = devm_request_threaded_irq(dev, irq, NULL, dwc3_imx_interrupt,
> 76fc9452a6bfb6 Xu Yang 2026-02-12 250 IRQF_ONESHOT | IRQF_NO_AUTOEN,
> 76fc9452a6bfb6 Xu Yang 2026-02-12 251 irq_name, dwc_imx);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 252 if (ret)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 253 return dev_err_probe(dev, ret, "failed to request IRQ #%d\n", irq);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 254
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @255 ret = device_add_software_node(dev, &dwc3_imx_swnode);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 256 if (ret)
> 76fc9452a6bfb6 Xu Yang 2026-02-12 257 return dev_err_probe(dev, ret, "failed to add software node\n");
> 76fc9452a6bfb6 Xu Yang 2026-02-12 258
> 76fc9452a6bfb6 Xu Yang 2026-02-12 259 dwc3_imx_configure_glue(dwc_imx);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 260
> 76fc9452a6bfb6 Xu Yang 2026-02-12 261 dwc = &dwc_imx->dwc;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 262 dwc->dev = dev;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 263 dwc->glue_ops = &dwc3_imx_glue_ops;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 264
> 76fc9452a6bfb6 Xu Yang 2026-02-12 265 probe_data.res = res;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 266 probe_data.dwc = dwc;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 267 probe_data.properties = DWC3_DEFAULT_PROPERTIES;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 268 probe_data.properties.needs_full_reinit = true;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 269
> 76fc9452a6bfb6 Xu Yang 2026-02-12 270 ret = dwc3_core_probe(&probe_data);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 271 if (ret) {
> 76fc9452a6bfb6 Xu Yang 2026-02-12 @272 device_remove_software_node(dev);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 273 return ret;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 274 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 275
> 76fc9452a6bfb6 Xu Yang 2026-02-12 276 device_set_wakeup_capable(dev, true);
> 76fc9452a6bfb6 Xu Yang 2026-02-12 277 return 0;
> 76fc9452a6bfb6 Xu Yang 2026-02-12 278 }
> 76fc9452a6bfb6 Xu Yang 2026-02-12 279
>
> :::::: The code at line 74 was first introduced by commit
> :::::: 76fc9452a6bfb63a297fa0410d5368a691ed411b usb: dwc3: introduce flatten model driver of i.MX Soc
>
> :::::: TO: Xu Yang <xu.yang_2@nxp.com>
> :::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
I appreciate Vinod applying this set
https://lore.kernel.org/linux-phy/20260327184706.1600329-4-vladimir.oltean@nxp.com/
onto the phy_7.2 branch, but it looks like the set crossed paths with
USB commit 76fc9452a6bf ("usb: dwc3: introduce flatten model driver of i.MX Soc")
which introduced yet another implicit dependency on <linux/property.h>
which was transitively provided by <linux/phy/phy.h>, and that's what is
breaking here.
I would prefer just going through the regular merge process here, i.e.
drop the phy_7.2 branch and send a v7 updated to current linux-phy/next
(i.e. v7.1-rc1), so that we have a more complete image of the build
status on various architectures before applying, and not get taken by
surprise by the kernel test robot.
Dmitry, I got some notification emails from patchwork-bot+linux-samsung-soc@kernel.org
saying that this patch was cherry picked
https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git/commit/?id=2a0ffcd5456c
but I couldn't figure out on what branch. Is it a problem if I resend
the entire set?
Thanks,
Vladimir
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [phy:phy_7.2 26/27] drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'?
2026-04-30 9:05 ` Vladimir Oltean
@ 2026-05-03 16:22 ` Vinod Koul
0 siblings, 0 replies; 3+ messages in thread
From: Vinod Koul @ 2026-05-03 16:22 UTC (permalink / raw)
To: Vladimir Oltean
Cc: kernel test robot, Dmitry Baryshkov, oe-kbuild-all, Kishon
On 30-04-26, 12:05, Vladimir Oltean wrote:
> On Thu, Apr 30, 2026 at 04:38:21PM +0800, kernel test robot wrote:
>
> I appreciate Vinod applying this set
> https://lore.kernel.org/linux-phy/20260327184706.1600329-4-vladimir.oltean@nxp.com/
> onto the phy_7.2 branch, but it looks like the set crossed paths with
> USB commit 76fc9452a6bf ("usb: dwc3: introduce flatten model driver of i.MX Soc")
> which introduced yet another implicit dependency on <linux/property.h>
> which was transitively provided by <linux/phy/phy.h>, and that's what is
> breaking here.
>
> I would prefer just going through the regular merge process here, i.e.
> drop the phy_7.2 branch and send a v7 updated to current linux-phy/next
> (i.e. v7.1-rc1), so that we have a more complete image of the build
> status on various architectures before applying, and not get taken by
> surprise by the kernel test robot.
Dropped this test branch...
>
> Dmitry, I got some notification emails from patchwork-bot+linux-samsung-soc@kernel.org
> saying that this patch was cherry picked
> https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git/commit/?id=2a0ffcd5456c
> but I couldn't figure out on what branch. Is it a problem if I resend
> the entire set?
>
> Thanks,
> Vladimir
--
~Vinod
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-03 16:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-30 8:38 [phy:phy_7.2 26/27] drivers/usb/dwc3/dwc3-imx.c:74:3: error: implicit declaration of function 'device_property_read_bool'; did you mean 'device_store_bool'? kernel test robot
2026-04-30 9:05 ` Vladimir Oltean
2026-05-03 16:22 ` Vinod Koul
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.