tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git 
for-4.20/multitouch
head:   93c61d2e6bc4849a5527e32568479ff67154870e
commit: 93c61d2e6bc4849a5527e32568479ff67154870e [1/1] HID: multitouch: 
simplify the application retrieval
config: x86_64-randconfig-x018-201835 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout 93c61d2e6bc4849a5527e32568479ff67154870e
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/hid/hid-multitouch.c: In function 'mt_input_mapping':
>> drivers/hid/hid-multitouch.c:1327:5: error: 'struct hid_input' has no member 
>> named 'application'
      hi->application = HID_DG_STYLUS;
        ^~
   drivers/hid/hid-multitouch.c: In function 'mt_input_configured':
   drivers/hid/hid-multitouch.c:1527:12: error: 'struct hid_input' has no 
member named 'application'
     switch (hi->application) {
               ^~

vim +1327 drivers/hid/hid-multitouch.c

  1257  
  1258  #define mt_map_key_clear(c)     hid_map_usage_clear(hi, usage, bit, \
  1259                                                      max, EV_KEY, (c))
  1260  static int mt_input_mapping(struct hid_device *hdev, struct hid_input 
*hi,
  1261                  struct hid_field *field, struct hid_usage *usage,
  1262                  unsigned long **bit, int *max)
  1263  {
  1264          struct mt_device *td = hid_get_drvdata(hdev);
  1265          struct mt_application *application;
  1266          struct mt_report_data *rdata;
  1267  
  1268          rdata = mt_find_report_data(td, field->report);
  1269          if (!rdata) {
  1270                  hid_err(hdev, "failed to allocate data for report\n");
  1271                  return 0;
  1272          }
  1273  
  1274          application = rdata->application;
  1275  
  1276          /*
  1277           * If mtclass.export_all_inputs is not set, only map fields from
  1278           * TouchScreen or TouchPad collections. We need to ignore fields
  1279           * that belong to other collections such as Mouse that might 
have
  1280           * the same GenericDesktop usages.
  1281           */
  1282          if (!td->mtclass.export_all_inputs &&
  1283              field->application != HID_DG_TOUCHSCREEN &&
  1284              field->application != HID_DG_PEN &&
  1285              field->application != HID_DG_TOUCHPAD &&
  1286              field->application != HID_GD_KEYBOARD &&
  1287              field->application != HID_GD_SYSTEM_CONTROL &&
  1288              field->application != HID_CP_CONSUMER_CONTROL &&
  1289              field->application != HID_GD_WIRELESS_RADIO_CTLS &&
  1290              field->application != HID_GD_SYSTEM_MULTIAXIS &&
  1291              !(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
  1292                application->quirks & MT_QUIRK_ASUS_CUSTOM_UP))
  1293                  return -1;
  1294  
  1295          /*
  1296           * Some Asus keyboard+touchpad devices have the hotkeys defined 
in the
  1297           * touchpad report descriptor. We need to treat these as an 
array to
  1298           * map usages to input keys.
  1299           */
  1300          if (field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
  1301              application->quirks & MT_QUIRK_ASUS_CUSTOM_UP &&
  1302              (usage->hid & HID_USAGE_PAGE) == HID_UP_CUSTOM) {
  1303                  set_bit(EV_REP, hi->input->evbit);
  1304                  if (field->flags & HID_MAIN_ITEM_VARIABLE)
  1305                          field->flags &= ~HID_MAIN_ITEM_VARIABLE;
  1306                  switch (usage->hid & HID_USAGE) {
  1307                  case 0x10: mt_map_key_clear(KEY_BRIGHTNESSDOWN);        
break;
  1308                  case 0x20: mt_map_key_clear(KEY_BRIGHTNESSUP);          
break;
  1309                  case 0x35: mt_map_key_clear(KEY_DISPLAY_OFF);           
break;
  1310                  case 0x6b: mt_map_key_clear(KEY_F21);                   
break;
  1311                  case 0x6c: mt_map_key_clear(KEY_SLEEP);                 
break;
  1312                  default:
  1313                          return -1;
  1314                  }
  1315                  return 1;
  1316          }
  1317  
  1318          if (rdata->is_mt_collection)
  1319                  return mt_touch_input_mapping(hdev, hi, field, usage, 
bit, max,
  1320                                                application);
  1321  
  1322          /*
  1323           * some egalax touchscreens have "application == DG_TOUCHSCREEN"
  1324           * for the stylus. Overwrite the hid_input application
  1325           */
  1326          if (field->physical == HID_DG_STYLUS)
> 1327                  hi->application = HID_DG_STYLUS;
  1328  
  1329          /* let hid-core decide for the others */
  1330          return 0;
  1331  }
  1332  

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