Hi Li, [auto build test ERROR on peter.chen-usb/ci-for-usb-next] [also build test ERROR on next-20160418] [cannot apply to v4.6-rc4] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Li-Jun/usb-chipidea-Add-usb-charger-detection-support/20160418-161638 base: https://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb ci-for-usb-next config: x86_64-randconfig-x001-201616 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): >> drivers/usb/chipidea/ci_hdrc_imx.c:247:30: error: return type is an incomplete type static enum usb_charger_type imx_usb_charger_det(struct ci_hdrc *ci) ^ drivers/usb/chipidea/ci_hdrc_imx.c: In function 'imx_usb_charger_det': >> drivers/usb/chipidea/ci_hdrc_imx.c:252:12: error: 'UNKNOWN_TYPE' undeclared (first use in this function) int ret = UNKNOWN_TYPE; ^ drivers/usb/chipidea/ci_hdrc_imx.c:252:12: note: each undeclared identifier is reported only once for each function it appears in >> drivers/usb/chipidea/ci_hdrc_imx.c:254:27: error: 'struct usb_gadget' has no member named 'charger' if (!mdata || !ci->gadget.charger) ^ >> drivers/usb/chipidea/ci_hdrc_imx.c:255:10: warning: 'return' with a value, in function returning void return ret; ^ >> drivers/usb/chipidea/ci_hdrc_imx.c:258:3: error: invalid use of undefined type 'enum usb_charger_type' ret = imx_usbmisc_charger_det(mdata); ^ drivers/usb/chipidea/ci_hdrc_imx.c:260:9: warning: 'return' with a value, in function returning void return ret; ^ drivers/usb/chipidea/ci_hdrc_imx.c: At top level: drivers/usb/chipidea/ci_hdrc_imx.c:263:30: error: return type is an incomplete type static enum usb_charger_type imx_usb_charger_secondary_det(struct ci_hdrc *ci) ^ drivers/usb/chipidea/ci_hdrc_imx.c: In function 'imx_usb_charger_secondary_det': drivers/usb/chipidea/ci_hdrc_imx.c:268:12: error: 'UNKNOWN_TYPE' undeclared (first use in this function) int ret = UNKNOWN_TYPE; ^ drivers/usb/chipidea/ci_hdrc_imx.c:270:27: error: 'struct usb_gadget' has no member named 'charger' if (!mdata || !ci->gadget.charger) ^ drivers/usb/chipidea/ci_hdrc_imx.c:271:10: warning: 'return' with a value, in function returning void return ret; ^ drivers/usb/chipidea/ci_hdrc_imx.c:274:3: error: invalid use of undefined type 'enum usb_charger_type' ret = imx_usbmisc_charger_secondary_det(mdata); ^ drivers/usb/chipidea/ci_hdrc_imx.c:276:9: warning: 'return' with a value, in function returning void return ret; ^ drivers/usb/chipidea/ci_hdrc_imx.c: In function 'ci_hdrc_imx_probe': >> drivers/usb/chipidea/ci_hdrc_imx.c:330:25: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] pdata.usb_charger_det = imx_usb_charger_det; ^ drivers/usb/chipidea/ci_hdrc_imx.c:333:36: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] pdata.usb_charger_secondary_det = ^ cc1: some warnings being treated as errors vim +247 drivers/usb/chipidea/ci_hdrc_imx.c 241 clk_disable_unprepare(data->clk_ipg); 242 } else { 243 clk_disable_unprepare(data->clk); 244 } 245 } 246 > 247 static enum usb_charger_type imx_usb_charger_det(struct ci_hdrc *ci) 248 { 249 struct device *dev = ci->dev->parent; 250 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); 251 struct imx_usbmisc_data *mdata = data->usbmisc_data; > 252 int ret = UNKNOWN_TYPE; 253 > 254 if (!mdata || !ci->gadget.charger) > 255 return ret; 256 257 if (ci->vbus_active) > 258 ret = imx_usbmisc_charger_det(mdata); 259 260 return ret; 261 } 262 263 static enum usb_charger_type imx_usb_charger_secondary_det(struct ci_hdrc *ci) 264 { 265 struct device *dev = ci->dev->parent; 266 struct ci_hdrc_imx_data *data = dev_get_drvdata(dev); 267 struct imx_usbmisc_data *mdata = data->usbmisc_data; 268 int ret = UNKNOWN_TYPE; 269 270 if (!mdata || !ci->gadget.charger) 271 return ret; 272 273 if (ci->vbus_active) > 274 ret = imx_usbmisc_charger_secondary_det(mdata); 275 276 return ret; 277 } 278 279 static int ci_hdrc_imx_probe(struct platform_device *pdev) 280 { 281 struct ci_hdrc_imx_data *data; 282 struct ci_hdrc_platform_data pdata = { 283 .name = dev_name(&pdev->dev), 284 .capoffset = DEF_CAPOFFSET, 285 }; 286 int ret; 287 const struct of_device_id *of_id; 288 const struct ci_hdrc_imx_platform_flag *imx_platform_flag; 289 struct device_node *np = pdev->dev.of_node; 290 291 of_id = of_match_device(ci_hdrc_imx_dt_ids, &pdev->dev); 292 if (!of_id) 293 return -ENODEV; 294 295 imx_platform_flag = of_id->data; 296 297 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); 298 if (!data) 299 return -ENOMEM; 300 301 platform_set_drvdata(pdev, data); 302 data->usbmisc_data = usbmisc_get_init_data(&pdev->dev); 303 if (IS_ERR(data->usbmisc_data)) 304 return PTR_ERR(data->usbmisc_data); 305 306 ret = imx_get_clks(&pdev->dev); 307 if (ret) 308 return ret; 309 310 ret = imx_prepare_enable_clks(&pdev->dev); 311 if (ret) 312 return ret; 313 314 data->phy = devm_usb_get_phy_by_phandle(&pdev->dev, "fsl,usbphy", 0); 315 if (IS_ERR(data->phy)) { 316 ret = PTR_ERR(data->phy); 317 /* Return -EINVAL if no usbphy is available */ 318 if (ret == -ENODEV) 319 ret = -EINVAL; 320 goto err_clk; 321 } 322 323 pdata.usb_phy = data->phy; 324 pdata.flags |= imx_platform_flag->flags; 325 if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM) 326 data->supports_runtime_pm = true; 327 328 if (of_find_property(np, "usb-charger-detection", NULL) && 329 data->usbmisc_data) { > 330 pdata.usb_charger_det = imx_usb_charger_det; 331 if (imx_platform_flag->flags & CI_HDRC_PULL_DP_FOR_CHARGER) { 332 pdata.pull_dp_for_charger = true; 333 pdata.usb_charger_secondary_det = --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data