tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git 
for-4.10/i2c-hid
head:   de3c99488609284e454cf2b4420a789038a4cfa8
commit: ead0687fe304a66a24e3d809d1070684f3abee71 [6/7] HID: i2c-hid: support 
regulator power on/off
config: x86_64-randconfig-x015-201649 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout ead0687fe304a66a24e3d809d1070684f3abee71
        # save the attached .config to linux build tree
        make ARCH=x86_64 

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

   drivers/hid/i2c-hid/i2c-hid.c: In function 'i2c_hid_probe':
>> drivers/hid/i2c-hid/i2c-hid.c:1048:23: error: implicit declaration of 
>> function 'devm_regulator_get' [-Werror=implicit-function-declaration]
     ihid->pdata.supply = devm_regulator_get(&client->dev, "vdd");
                          ^~~~~~~~~~~~~~~~~~
>> drivers/hid/i2c-hid/i2c-hid.c:1048:21: warning: assignment makes pointer 
>> from integer without a cast [-Wint-conversion]
     ihid->pdata.supply = devm_regulator_get(&client->dev, "vdd");
                        ^
>> drivers/hid/i2c-hid/i2c-hid.c:1057:8: error: implicit declaration of 
>> function 'regulator_enable' [-Werror=implicit-function-declaration]
     ret = regulator_enable(ihid->pdata.supply);
           ^~~~~~~~~~~~~~~~
>> drivers/hid/i2c-hid/i2c-hid.c:1139:2: error: implicit declaration of 
>> function 'regulator_disable' [-Werror=implicit-function-declaration]
     regulator_disable(ihid->pdata.supply);
     ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/devm_regulator_get +1048 drivers/hid/i2c-hid/i2c-hid.c

  1042                          goto err;
  1043                  }
  1044          } else {
  1045                  ihid->pdata = *platform_data;
  1046          }
  1047  
> 1048          ihid->pdata.supply = devm_regulator_get(&client->dev, "vdd");
  1049          if (IS_ERR(ihid->pdata.supply)) {
  1050                  ret = PTR_ERR(ihid->pdata.supply);
  1051                  if (ret != -EPROBE_DEFER)
  1052                          dev_err(&client->dev, "Failed to get regulator: 
%d\n",
  1053                                  ret);
  1054                  return ret;
  1055          }
  1056   
> 1057          ret = regulator_enable(ihid->pdata.supply);
  1058          if (ret < 0) {
  1059                  dev_err(&client->dev, "Failed to enable regulator: 
%d\n",
  1060                          ret);
  1061                  goto err;
  1062          }
  1063          if (ihid->pdata.init_delay_ms)
  1064                  msleep(ihid->pdata.init_delay_ms);
  1065  
  1066          i2c_set_clientdata(client, ihid);
  1067  
  1068          ihid->client = client;
  1069  
  1070          hidRegister = ihid->pdata.hid_descriptor_address;
  1071          ihid->wHIDDescRegister = cpu_to_le16(hidRegister);
  1072  
  1073          init_waitqueue_head(&ihid->wait);
  1074          mutex_init(&ihid->reset_lock);
  1075  
  1076          /* we need to allocate the command buffer without knowing the 
maximum
  1077           * size of the reports. Let's use HID_MIN_BUFFER_SIZE, then we 
do the
  1078           * real computation later. */
  1079          ret = i2c_hid_alloc_buffers(ihid, HID_MIN_BUFFER_SIZE);
  1080          if (ret < 0)
  1081                  goto err_regulator;
  1082  
  1083          pm_runtime_get_noresume(&client->dev);
  1084          pm_runtime_set_active(&client->dev);
  1085          pm_runtime_enable(&client->dev);
  1086          device_enable_async_suspend(&client->dev);
  1087  
  1088          ret = i2c_hid_fetch_hid_descriptor(ihid);
  1089          if (ret < 0)
  1090                  goto err_pm;
  1091  
  1092          ret = i2c_hid_init_irq(client);
  1093          if (ret < 0)
  1094                  goto err_pm;
  1095  
  1096          hid = hid_allocate_device();
  1097          if (IS_ERR(hid)) {
  1098                  ret = PTR_ERR(hid);
  1099                  goto err_irq;
  1100          }
  1101  
  1102          ihid->hid = hid;
  1103  
  1104          hid->driver_data = client;
  1105          hid->ll_driver = &i2c_hid_ll_driver;
  1106          hid->dev.parent = &client->dev;
  1107          hid->bus = BUS_I2C;
  1108          hid->version = le16_to_cpu(ihid->hdesc.bcdVersion);
  1109          hid->vendor = le16_to_cpu(ihid->hdesc.wVendorID);
  1110          hid->product = le16_to_cpu(ihid->hdesc.wProductID);
  1111  
  1112          snprintf(hid->name, sizeof(hid->name), "%s %04hX:%04hX",
  1113                   client->name, hid->vendor, hid->product);
  1114          strlcpy(hid->phys, dev_name(&client->dev), sizeof(hid->phys));
  1115  
  1116          ihid->quirks = i2c_hid_lookup_quirk(hid->vendor, hid->product);
  1117  
  1118          ret = hid_add_device(hid);
  1119          if (ret) {
  1120                  if (ret != -ENODEV)
  1121                          hid_err(client, "can't add hid device: %d\n", 
ret);
  1122                  goto err_mem_free;
  1123          }
  1124  
  1125          pm_runtime_put(&client->dev);
  1126          return 0;
  1127  
  1128  err_mem_free:
  1129          hid_destroy_device(hid);
  1130  
  1131  err_irq:
  1132          free_irq(client->irq, ihid);
  1133  
  1134  err_pm:
  1135          pm_runtime_put_noidle(&client->dev);
  1136          pm_runtime_disable(&client->dev);
  1137  
  1138  err_regulator:
> 1139          regulator_disable(ihid->pdata.supply);
  1140  
  1141  err:
  1142          i2c_hid_free_buffers(ihid);

---
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