Hi Lubomir,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.0-rc1 next-20190108]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Lubomir-Rintel/Add-support-for-OLPC-XO-1-75-Embedded-Controller/20190108-114514
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

>> arch/x86/platform/olpc/olpc.c:325:1: warning: 'postcore_initcall()' has 
>> implicit return type
>> arch/x86/platform/olpc/olpc.c:30:24: warning: symbol 'olpc_platform_info' 
>> was not declared. Should it be static?
>> arch/x86/platform/olpc/olpc.c:294:14: error: undefined identifier 
>> 'olpc_ofw_present'
>> arch/x86/platform/olpc/olpc.c:298:43: error: undefined identifier 
>> 'olpc_board_pre'
>> arch/x86/platform/olpc/olpc.c:299:17: error: undefined identifier 
>> 'olpc_ec_driver_register'
   arch/x86/platform/olpc/olpc.c:301:17: error: undefined identifier 
'olpc_ec_driver_register'
>> arch/x86/platform/olpc/olpc.c:305:13: error: undefined identifier 
>> 'olpc_board_at_least'
   arch/x86/platform/olpc/olpc.c:316:43: error: undefined identifier 
'olpc_board_pre'
--
>> arch/x86/platform/olpc/olpc_ofw.c:17:5: warning: symbol 'olpc_ofw_pgd' was 
>> not declared. Should it be static?
>> arch/x86/platform/olpc/olpc_ofw.c:31:14: warning: incorrect type in 
>> assignment (different address spaces)
   arch/x86/platform/olpc/olpc_ofw.c:31:14:    expected struct pgd_t [usertype] 
*base
   arch/x86/platform/olpc/olpc_ofw.c:31:14:    got void [noderef] <asn:2> *
>> arch/x86/platform/olpc/olpc_ofw.c:43:23: warning: incorrect type in argument 
>> 1 (different address spaces)
   arch/x86/platform/olpc/olpc_ofw.c:43:23:    expected void [noderef] <asn:2> 
*addr
   arch/x86/platform/olpc/olpc_ofw.c:43:23:    got struct pgd_t [usertype] *base
>> arch/x86/platform/olpc/olpc_ofw.c:23:13: warning: symbol 
>> 'setup_olpc_ofw_pgd' was not declared. Should it be static?
>> arch/x86/platform/olpc/olpc_ofw.c:46:5: warning: symbol '__olpc_ofw' was not 
>> declared. Should it be static?
>> arch/x86/platform/olpc/olpc_ofw.c:80:6: warning: symbol 'olpc_ofw_present' 
>> was not declared. Should it be static?
>> arch/x86/platform/olpc/olpc_ofw.c:92:13: warning: symbol 'olpc_ofw_detect' 
>> was not declared. Should it be static?
>> arch/x86/platform/olpc/olpc_ofw.c:117:13: warning: symbol 
>> 'olpc_ofw_is_installed' was not declared. Should it be static?
>> arch/x86/platform/olpc/olpc_ofw.c:58:28: warning: non size-preserving 
>> pointer to integer cast
>> arch/x86/platform/olpc/olpc_ofw.c:101:40: warning: non size-preserving 
>> integer to pointer cast
--
>> arch/x86/platform/olpc/olpc_dt.c:34:13: error: undefined identifier 
>> 'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:48:13: error: undefined identifier 
'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:65:13: error: undefined identifier 
'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:85:21: error: undefined identifier 
'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:105:13: error: undefined identifier 
'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:120:13: error: undefined identifier 
'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:173:13: error: undefined identifier 
'olpc_ofw'
   arch/x86/platform/olpc/olpc_dt.c:190:13: error: undefined identifier 
'olpc_ofw'
>> arch/x86/platform/olpc/olpc_dt.c:220:5: warning: symbol 
>> 'olpc_dt_compatible_match' was not declared. Should it be static?
>> arch/x86/platform/olpc/olpc_dt.c:253:26: error: undefined identifier 
>> 'olpc_board_pre'
>> arch/x86/platform/olpc/olpc_dt.c:300:14: error: undefined identifier 
>> 'olpc_ofw_is_installed'
--
>> drivers/power/supply/olpc_battery.c:328:24: warning: cast to restricted 
>> __le16
>> drivers/power/supply/olpc_battery.c:330:24: warning: cast to restricted 
>> __be16
>> drivers/power/supply/olpc_battery.c:330:24: warning: cast to restricted 
>> __be16
>> drivers/power/supply/olpc_battery.c:330:24: warning: cast to restricted 
>> __be16
>> drivers/power/supply/olpc_battery.c:330:24: warning: cast to restricted 
>> __be16
>> drivers/power/supply/olpc_battery.c:405:51: warning: incorrect type in 
>> argument 2 (different base types)
   drivers/power/supply/olpc_battery.c:405:51:    expected unsigned short 
[usertype] ec_word
   drivers/power/supply/olpc_battery.c:405:51:    got restricted __be16 
[addressable] [usertype] ec_word
   drivers/power/supply/olpc_battery.c:413:51: warning: incorrect type in 
argument 2 (different base types)
   drivers/power/supply/olpc_battery.c:413:51:    expected unsigned short 
[usertype] ec_word
   drivers/power/supply/olpc_battery.c:413:51:    got restricted __be16 
[addressable] [usertype] ec_word
   drivers/power/supply/olpc_battery.c:444:51: warning: incorrect type in 
argument 2 (different base types)
   drivers/power/supply/olpc_battery.c:444:51:    expected unsigned short 
[usertype] ec_word
   drivers/power/supply/olpc_battery.c:444:51:    got restricted __be16 
[addressable] [usertype] ec_word
   drivers/power/supply/olpc_battery.c:451:56: warning: incorrect type in 
argument 2 (different base types)
   drivers/power/supply/olpc_battery.c:451:56:    expected unsigned short 
[usertype] ec_word
   drivers/power/supply/olpc_battery.c:451:56:    got restricted __be16 
[addressable] [usertype] ec_word
   drivers/power/supply/olpc_battery.c:458:51: warning: incorrect type in 
argument 2 (different base types)
   drivers/power/supply/olpc_battery.c:458:51:    expected unsigned short 
[usertype] ec_word
   drivers/power/supply/olpc_battery.c:458:51:    got restricted __be16 
[addressable] [usertype] ec_word
--
>> drivers/platform/olpc/olpc-ec.c:70:6: warning: symbol 
>> 'olpc_ec_driver_register' was not declared. Should it be static?
>> drivers/platform/olpc/olpc-ec.c:126:5: warning: symbol 'olpc_ec_cmd' was not 
>> declared. Should it be static?
>> drivers/platform/olpc/olpc-ec.c:165:6: warning: symbol 'olpc_ec_wakeup_set' 
>> was not declared. Should it be static?
>> drivers/platform/olpc/olpc-ec.c:176:6: warning: symbol 
>> 'olpc_ec_wakeup_clear' was not declared. Should it be static?
>> drivers/platform/olpc/olpc-ec.c:187:5: warning: symbol 'olpc_ec_mask_write' 
>> was not declared. Should it be static?
>> drivers/platform/olpc/olpc-ec.c:211:6: warning: symbol 
>> 'olpc_ec_wakeup_available' was not declared. Should it be static?
>> drivers/platform/olpc/olpc-ec.c:220:5: warning: symbol 'olpc_ec_sci_query' 
>> was not declared. Should it be static?
--
>> drivers/platform/olpc/olpc-xo175-ec.c:26:11: error: unable to open 
>> 'asm/system_misc.h'
--
>> drivers/input/mouse/hgpk.c:763:13: error: undefined identifier 
>> 'olpc_board_at_least'
--
>> sound/pci/cs5535audio/cs5535audio_olpc.c:28:6: warning: symbol 
>> 'olpc_analog_input' was not declared. Should it be static?
>> sound/pci/cs5535audio/cs5535audio_olpc.c:51:6: warning: symbol 
>> 'olpc_mic_bias' was not declared. Should it be static?
>> sound/pci/cs5535audio/cs5535audio_olpc.c:144:13: error: undefined identifier 
>> 'olpc_board_at_least'
>> sound/pci/cs5535audio/cs5535audio_olpc.c:148:5: warning: symbol 
>> 'olpc_quirks' was not declared. Should it be static?
>> sound/pci/cs5535audio/cs5535audio_olpc.c:189:6: warning: symbol 
>> 'olpc_quirks_cleanup' was not declared. Should it be static?
--
>> drivers/staging/olpc_dcon/olpc_dcon.c:141:17: error: undefined identifier 
>> 'olpc_board_at_least'
   drivers/staging/olpc_dcon/olpc_dcon.c:202:14: error: undefined identifier 
'olpc_board_at_least'
   drivers/staging/olpc_dcon/olpc_dcon.c:799:13: error: undefined identifier 
'olpc_board_at_least'
--
>> drivers/staging/olpc_dcon/olpc_dcon_xo_1.c:42:18: warning: symbol 'gpios' 
>> was not declared. Should it be static?
>> drivers/staging/olpc_dcon/olpc_dcon_xo_1.c:48:44: warning: incorrect type in 
>> initializer (different modifiers)
   drivers/staging/olpc_dcon/olpc_dcon_xo_1.c:48:44:    expected struct 
dcon_gpio *pin
   drivers/staging/olpc_dcon/olpc_dcon_xo_1.c:48:44:    got struct dcon_gpio 
const *

vim +328 drivers/power/supply/olpc_battery.c

   324  
   325  static u16 ecword_to_cpu(struct olpc_battery_data *data, u16 ec_word)
   326  {
   327          if (data->little_endian)
 > 328                  return le16_to_cpu(ec_word);
   329          else
 > 330                  return be16_to_cpu(ec_word);
   331  }
   332  
   333  /*********************************************************************
   334   *              Battery properties
   335   *********************************************************************/
   336  static int olpc_bat_get_property(struct power_supply *psy,
   337                                   enum power_supply_property psp,
   338                                   union power_supply_propval *val)
   339  {
   340          struct olpc_battery_data *data = power_supply_get_drvdata(psy);
   341          int ret = 0;
   342          __be16 ec_word;
   343          uint8_t ec_byte;
   344          __be64 ser_buf;
   345  
   346          ret = olpc_ec_cmd(EC_BAT_STATUS, NULL, 0, &ec_byte, 1);
   347          if (ret)
   348                  return ret;
   349  
   350          /* Theoretically there's a race here -- the battery could be
   351             removed immediately after we check whether it's present, and
   352             then we query for some other property of the now-absent 
battery.
   353             It doesn't matter though -- the EC will return the last-known
   354             information, and it's as if we just ran that _little_ bit 
faster
   355             and managed to read it out before the battery went away. */
   356          if (!(ec_byte & (BAT_STAT_PRESENT | BAT_STAT_TRICKLE)) &&
   357                          psp != POWER_SUPPLY_PROP_PRESENT)
   358                  return -ENODEV;
   359  
   360          switch (psp) {
   361          case POWER_SUPPLY_PROP_STATUS:
   362                  ret = olpc_bat_get_status(data, val, ec_byte);
   363                  if (ret)
   364                          return ret;
   365                  break;
   366          case POWER_SUPPLY_PROP_CHARGE_TYPE:
   367                  if (ec_byte & BAT_STAT_TRICKLE)
   368                          val->intval = POWER_SUPPLY_CHARGE_TYPE_TRICKLE;
   369                  else if (ec_byte & BAT_STAT_CHARGING)
   370                          val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST;
   371                  else
   372                          val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE;
   373                  break;
   374          case POWER_SUPPLY_PROP_PRESENT:
   375                  val->intval = !!(ec_byte & (BAT_STAT_PRESENT |
   376                                              BAT_STAT_TRICKLE));
   377                  break;
   378  
   379          case POWER_SUPPLY_PROP_HEALTH:
   380                  if (ec_byte & BAT_STAT_DESTROY)
   381                          val->intval = POWER_SUPPLY_HEALTH_DEAD;
   382                  else {
   383                          ret = olpc_bat_get_health(val);
   384                          if (ret)
   385                                  return ret;
   386                  }
   387                  break;
   388  
   389          case POWER_SUPPLY_PROP_MANUFACTURER:
   390                  ret = olpc_bat_get_mfr(val);
   391                  if (ret)
   392                          return ret;
   393                  break;
   394          case POWER_SUPPLY_PROP_TECHNOLOGY:
   395                  ret = olpc_bat_get_tech(val);
   396                  if (ret)
   397                          return ret;
   398                  break;
   399          case POWER_SUPPLY_PROP_VOLTAGE_AVG:
   400          case POWER_SUPPLY_PROP_VOLTAGE_NOW:
   401                  ret = olpc_ec_cmd(EC_BAT_VOLTAGE, NULL, 0, (void 
*)&ec_word, 2);
   402                  if (ret)
   403                          return ret;
   404  
 > 405                  val->intval = ecword_to_cpu(data, ec_word) * 9760L / 32;
   406                  break;
   407          case POWER_SUPPLY_PROP_CURRENT_AVG:
   408          case POWER_SUPPLY_PROP_CURRENT_NOW:
   409                  ret = olpc_ec_cmd(EC_BAT_CURRENT, NULL, 0, (void 
*)&ec_word, 2);
   410                  if (ret)
   411                          return ret;
   412  
   413                  val->intval = ecword_to_cpu(data, ec_word) * 15625L / 
120;
   414                  break;
   415          case POWER_SUPPLY_PROP_CAPACITY:
   416                  ret = olpc_ec_cmd(EC_BAT_SOC, NULL, 0, &ec_byte, 1);
   417                  if (ret)
   418                          return ret;
   419                  val->intval = ec_byte;
   420                  break;
   421          case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
   422                  if (ec_byte & BAT_STAT_FULL)
   423                          val->intval = POWER_SUPPLY_CAPACITY_LEVEL_FULL;
   424                  else if (ec_byte & BAT_STAT_LOW)
   425                          val->intval = POWER_SUPPLY_CAPACITY_LEVEL_LOW;
   426                  else
   427                          val->intval = 
POWER_SUPPLY_CAPACITY_LEVEL_NORMAL;
   428                  break;
   429          case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
   430                  ret = olpc_bat_get_charge_full_design(val);
   431                  if (ret)
   432                          return ret;
   433                  break;
   434          case POWER_SUPPLY_PROP_CHARGE_NOW:
   435                  ret = olpc_bat_get_charge_now(val);
   436                  if (ret)
   437                          return ret;
   438                  break;
   439          case POWER_SUPPLY_PROP_TEMP:
   440                  ret = olpc_ec_cmd(EC_BAT_TEMP, NULL, 0, (void 
*)&ec_word, 2);
   441                  if (ret)
   442                          return ret;
   443  
   444                  val->intval = ecword_to_cpu(data, ec_word) * 10 / 256;
   445                  break;
   446          case POWER_SUPPLY_PROP_TEMP_AMBIENT:
   447                  ret = olpc_ec_cmd(EC_AMB_TEMP, NULL, 0, (void 
*)&ec_word, 2);
   448                  if (ret)
   449                          return ret;
   450  
   451                  val->intval = (int)ecword_to_cpu(data, ec_word) * 10 / 
256;
   452                  break;
   453          case POWER_SUPPLY_PROP_CHARGE_COUNTER:
   454                  ret = olpc_ec_cmd(EC_BAT_ACR, NULL, 0, (void 
*)&ec_word, 2);
   455                  if (ret)
   456                          return ret;
   457  
   458                  val->intval = ecword_to_cpu(data, ec_word) * 6250 / 15;
   459                  break;
   460          case POWER_SUPPLY_PROP_SERIAL_NUMBER:
   461                  ret = olpc_ec_cmd(EC_BAT_SERIAL, NULL, 0, (void 
*)&ser_buf, 8);
   462                  if (ret)
   463                          return ret;
   464  
   465                  sprintf(data->bat_serial, "%016llx", (long 
long)be64_to_cpu(ser_buf));
   466                  val->strval = data->bat_serial;
   467                  break;
   468          case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
   469                  ret = olpc_bat_get_voltage_max_design(val);
   470                  if (ret)
   471                          return ret;
   472                  break;
   473          default:
   474                  ret = -EINVAL;
   475                  break;
   476          }
   477  
   478          return ret;
   479  }
   480  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to