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

Reply via email to