Hi Li, [auto build test ERROR on peter.chen-usb/ci-for-usb-next] [also build test ERROR on v4.6-rc4 next-20160418] [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/udc.c:1513:56: warning: 'struct usb_charger' declared inside parameter list static enum usb_charger_type ci_usb_charger_det(struct usb_charger *charger) ^ >> drivers/usb/chipidea/udc.c:1513:56: warning: its scope is only this definition or declaration, which is probably not what you want >> drivers/usb/chipidea/udc.c:1513:30: error: return type is an incomplete type static enum usb_charger_type ci_usb_charger_det(struct usb_charger *charger) ^ drivers/usb/chipidea/udc.c: In function 'ci_usb_charger_det': >> drivers/usb/chipidea/udc.c:1516:7: error: variable 'ret' has initializer but incomplete type enum usb_charger_type ret = UNKNOWN_TYPE; ^ >> drivers/usb/chipidea/udc.c:1516:30: error: 'UNKNOWN_TYPE' undeclared (first use in this function) enum usb_charger_type ret = UNKNOWN_TYPE; ^ drivers/usb/chipidea/udc.c:1516:30: note: each undeclared identifier is reported only once for each function it appears in >> drivers/usb/chipidea/udc.c:1516:24: error: storage size of 'ret' isn't known enum usb_charger_type ret = UNKNOWN_TYPE; ^ >> drivers/usb/chipidea/udc.c:1518:26: error: dereferencing pointer to incomplete type 'struct usb_charger' if (!charger || !charger->gadget) ^ >> drivers/usb/chipidea/udc.c:1519:10: warning: 'return' with a value, in function returning void return ret; ^ >> drivers/usb/chipidea/udc.c:1524:4: error: invalid use of undefined type 'enum usb_charger_type' ret = ci->platdata->usb_charger_det(ci); ^ drivers/usb/chipidea/udc.c:1526:12: warning: 'return' with a value, in function returning void return ret; ^ drivers/usb/chipidea/udc.c:1535:4: error: invalid use of undefined type 'enum usb_charger_type' ret = ci->platdata->usb_charger_secondary_det(ci); ^ drivers/usb/chipidea/udc.c:1541:9: warning: 'return' with a value, in function returning void return ret; ^ >> drivers/usb/chipidea/udc.c:1516:24: warning: unused variable 'ret' [-Wunused-variable] enum usb_charger_type ret = UNKNOWN_TYPE; ^ drivers/usb/chipidea/udc.c: In function 'ci_udc_vbus_session': >> drivers/usb/chipidea/udc.c:1556:13: error: 'struct usb_gadget' has no member named 'charger' if (_gadget->charger && is_active) ^ >> drivers/usb/chipidea/udc.c:1557:3: error: implicit declaration of function 'usb_charger_detect_type' [-Werror=implicit-function-declaration] usb_charger_detect_type(_gadget->charger); ^ drivers/usb/chipidea/udc.c:1557:34: error: 'struct usb_gadget' has no member named 'charger' usb_charger_detect_type(_gadget->charger); ^ drivers/usb/chipidea/udc.c: In function 'udc_start': drivers/usb/chipidea/udc.c:1959:16: error: 'struct usb_gadget' has no member named 'charger' if (ci->gadget.charger && ci->platdata->usb_charger_det) ^ drivers/usb/chipidea/udc.c:1960:13: error: 'struct usb_gadget' has no member named 'charger' ci->gadget.charger->charger_detect = ci_usb_charger_det; ^ drivers/usb/chipidea/udc.c: In function 'ci_hdrc_gadget_destroy': drivers/usb/chipidea/udc.c:1986:16: error: 'struct usb_gadget' has no member named 'charger' if (ci->gadget.charger) ^ drivers/usb/chipidea/udc.c:1987:13: error: 'struct usb_gadget' has no member named 'charger' ci->gadget.charger->charger_detect = NULL; ^ cc1: some warnings being treated as errors vim +1513 drivers/usb/chipidea/udc.c 1507 .fifo_flush = ep_fifo_flush, 1508 }; 1509 1510 /****************************************************************************** 1511 * GADGET block 1512 *****************************************************************************/ > 1513 static enum usb_charger_type ci_usb_charger_det(struct usb_charger *charger) 1514 { 1515 struct ci_hdrc *ci; > 1516 enum usb_charger_type ret = UNKNOWN_TYPE; 1517 > 1518 if (!charger || !charger->gadget) > 1519 return ret; 1520 1521 ci = container_of(charger->gadget, struct ci_hdrc, gadget); 1522 if (ci->vbus_active) { 1523 if (ci->platdata->usb_charger_det) { > 1524 ret = ci->platdata->usb_charger_det(ci); 1525 if (ret != UNKNOWN_TYPE) > 1526 return ret; 1527 } 1528 1529 if (ci->platdata->pull_dp_for_charger) { 1530 hw_device_reset(ci); 1531 hw_write(ci, OP_USBCMD, USBCMD_RS, USBCMD_RS); 1532 } 1533 1534 if (ci->platdata->usb_charger_secondary_det) 1535 ret = ci->platdata->usb_charger_secondary_det(ci); 1536 1537 if (ci->platdata->pull_dp_for_charger) 1538 hw_write(ci, OP_USBCMD, USBCMD_RS, 0); 1539 } 1540 > 1541 return ret; 1542 } 1543 1544 static int ci_udc_vbus_session(struct usb_gadget *_gadget, int is_active) 1545 { 1546 struct ci_hdrc *ci = container_of(_gadget, struct ci_hdrc, gadget); 1547 unsigned long flags; 1548 int gadget_ready = 0; 1549 1550 spin_lock_irqsave(&ci->lock, flags); 1551 ci->vbus_active = is_active; 1552 if (ci->driver) 1553 gadget_ready = 1; 1554 spin_unlock_irqrestore(&ci->lock, flags); 1555 > 1556 if (_gadget->charger && is_active) > 1557 usb_charger_detect_type(_gadget->charger); 1558 1559 if (gadget_ready) { 1560 if (is_active) { --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data