linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jonathan Denose <jdenose@google.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Henrik Rydberg <rydberg@bitmath.org>
Cc: oe-kbuild-all@lists.linux.dev, linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	Angela Czubak <aczubak@google.com>,
	Sean O'Brien <seobrien@google.com>,
	Jonathan Denose <jdenose@google.com>
Subject: Re: [PATCH 11/11] HID: multitouch: add haptic multitouch support
Date: Tue, 15 Jul 2025 19:35:07 +0800	[thread overview]
Message-ID: <202507151942.94dhYylY-lkp@intel.com> (raw)
In-Reply-To: <20250714-support-forcepads-v1-11-71c7c05748c9@google.com>

Hi Jonathan,

kernel test robot noticed the following build errors:

[auto build test ERROR on 86731a2a651e58953fc949573895f2fa6d456841]

url:    https://github.com/intel-lab-lkp/linux/commits/Jonathan-Denose/HID-add-haptics-page-defines/20250714-231444
base:   86731a2a651e58953fc949573895f2fa6d456841
patch link:    https://lore.kernel.org/r/20250714-support-forcepads-v1-11-71c7c05748c9%40google.com
patch subject: [PATCH 11/11] HID: multitouch: add haptic multitouch support
config: hexagon-randconfig-r112-20250715 (https://download.01.org/0day-ci/archive/20250715/202507151942.94dhYylY-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce: (https://download.01.org/0day-ci/archive/20250715/202507151942.94dhYylY-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507151942.94dhYylY-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/hid/hid-haptic.c:13:6: error: redefinition of 'hid_haptic_feature_mapping'
      13 | void hid_haptic_feature_mapping(struct hid_device *hdev,
         |      ^
   drivers/hid/hid-haptic.h:83:6: note: previous definition is here
      83 | void hid_haptic_feature_mapping(struct hid_device *hdev,
         |      ^
>> drivers/hid/hid-haptic.c:51:6: error: redefinition of 'hid_haptic_check_pressure_unit'
      51 | bool hid_haptic_check_pressure_unit(struct hid_haptic_device *haptic,
         |      ^
   drivers/hid/hid-haptic.h:89:6: note: previous definition is here
      89 | bool hid_haptic_check_pressure_unit(struct hid_haptic_device *haptic,
         |      ^
>> drivers/hid/hid-haptic.c:65:5: error: redefinition of 'hid_haptic_input_mapping'
      65 | int hid_haptic_input_mapping(struct hid_device *hdev,
         |     ^
   drivers/hid/hid-haptic.h:95:5: note: previous definition is here
      95 | int hid_haptic_input_mapping(struct hid_device *hdev,
         |     ^
>> drivers/hid/hid-haptic.c:81:5: error: redefinition of 'hid_haptic_input_configured'
      81 | int hid_haptic_input_configured(struct hid_device *hdev,
         |     ^
   drivers/hid/hid-haptic.h:104:5: note: previous definition is here
     104 | int hid_haptic_input_configured(struct hid_device *hdev,
         |     ^
>> drivers/hid/hid-haptic.c:403:5: error: redefinition of 'hid_haptic_init'
     403 | int hid_haptic_init(struct hid_device *hdev,
         |     ^
   drivers/hid/hid-haptic.h:114:5: note: previous definition is here
     114 | int hid_haptic_init(struct hid_device *hdev, struct hid_haptic_device **haptic_ptr)
         |     ^
>> drivers/hid/hid-haptic.c:569:6: error: redefinition of 'hid_haptic_pressure_reset'
     569 | void hid_haptic_pressure_reset(struct hid_haptic_device *haptic)
         |      ^
   drivers/hid/hid-haptic.h:126:6: note: previous definition is here
     126 | void hid_haptic_pressure_reset(struct hid_haptic_device *haptic) {}
         |      ^
>> drivers/hid/hid-haptic.c:575:6: error: redefinition of 'hid_haptic_pressure_increase'
     575 | void hid_haptic_pressure_increase(struct hid_haptic_device *haptic,
         |      ^
   drivers/hid/hid-haptic.h:128:6: note: previous definition is here
     128 | void hid_haptic_pressure_increase(struct hid_haptic_device *haptic,
         |      ^
   7 errors generated.


vim +/hid_haptic_feature_mapping +13 drivers/hid/hid-haptic.c

783df9659b1cddf Angela Czubak 2025-07-14  12  
783df9659b1cddf Angela Czubak 2025-07-14 @13  void hid_haptic_feature_mapping(struct hid_device *hdev,
783df9659b1cddf Angela Czubak 2025-07-14  14  				struct hid_haptic_device *haptic,
783df9659b1cddf Angela Czubak 2025-07-14  15  				struct hid_field *field, struct hid_usage *usage)
783df9659b1cddf Angela Czubak 2025-07-14  16  {
59b86a929daae04 Angela Czubak 2025-07-14  17  	u16 usage_hid;
59b86a929daae04 Angela Czubak 2025-07-14  18  
783df9659b1cddf Angela Czubak 2025-07-14  19  	if (usage->hid == HID_HP_AUTOTRIGGER) {
783df9659b1cddf Angela Czubak 2025-07-14  20  		if (usage->usage_index >= field->report_count) {
783df9659b1cddf Angela Czubak 2025-07-14  21  			dev_err(&hdev->dev,
783df9659b1cddf Angela Czubak 2025-07-14  22  				"HID_HP_AUTOTRIGGER out of range\n");
783df9659b1cddf Angela Czubak 2025-07-14  23  			return;
783df9659b1cddf Angela Czubak 2025-07-14  24  		}
783df9659b1cddf Angela Czubak 2025-07-14  25  
783df9659b1cddf Angela Czubak 2025-07-14  26  		hid_device_io_start(hdev);
783df9659b1cddf Angela Czubak 2025-07-14  27  		hid_hw_request(hdev, field->report, HID_REQ_GET_REPORT);
783df9659b1cddf Angela Czubak 2025-07-14  28  		hid_hw_wait(hdev);
783df9659b1cddf Angela Czubak 2025-07-14  29  		hid_device_io_stop(hdev);
783df9659b1cddf Angela Czubak 2025-07-14  30  		haptic->default_auto_trigger =
783df9659b1cddf Angela Czubak 2025-07-14  31  			field->value[usage->usage_index];
783df9659b1cddf Angela Czubak 2025-07-14  32  		haptic->auto_trigger_report = field->report;
59b86a929daae04 Angela Czubak 2025-07-14  33  	} else if ((usage->hid & HID_USAGE_PAGE) == HID_UP_ORDINAL) {
59b86a929daae04 Angela Czubak 2025-07-14  34  		usage_hid = usage->hid & HID_USAGE;
59b86a929daae04 Angela Czubak 2025-07-14  35  		switch (field->logical) {
59b86a929daae04 Angela Czubak 2025-07-14  36  		case HID_HP_WAVEFORMLIST:
59b86a929daae04 Angela Czubak 2025-07-14  37  			if (usage_hid > haptic->max_waveform_id)
59b86a929daae04 Angela Czubak 2025-07-14  38  				haptic->max_waveform_id = usage_hid;
59b86a929daae04 Angela Czubak 2025-07-14  39  			break;
59b86a929daae04 Angela Czubak 2025-07-14  40  		case HID_HP_DURATIONLIST:
59b86a929daae04 Angela Czubak 2025-07-14  41  			if (usage_hid > haptic->max_duration_id)
59b86a929daae04 Angela Czubak 2025-07-14  42  				haptic->max_duration_id = usage_hid;
59b86a929daae04 Angela Czubak 2025-07-14  43  			break;
59b86a929daae04 Angela Czubak 2025-07-14  44  		default:
59b86a929daae04 Angela Czubak 2025-07-14  45  			break;
59b86a929daae04 Angela Czubak 2025-07-14  46  		}
783df9659b1cddf Angela Czubak 2025-07-14  47  	}
783df9659b1cddf Angela Czubak 2025-07-14  48  }
783df9659b1cddf Angela Czubak 2025-07-14  49  EXPORT_SYMBOL_GPL(hid_haptic_feature_mapping);
783df9659b1cddf Angela Czubak 2025-07-14  50  
783df9659b1cddf Angela Czubak 2025-07-14 @51  bool hid_haptic_check_pressure_unit(struct hid_haptic_device *haptic,
783df9659b1cddf Angela Czubak 2025-07-14  52  				    struct hid_input *hi, struct hid_field *field)
783df9659b1cddf Angela Czubak 2025-07-14  53  {
f96e0cf76b31615 Angela Czubak 2025-07-14  54  	if (field->unit == HID_UNIT_GRAM || field->unit == HID_UNIT_NEWTON) {
f96e0cf76b31615 Angela Czubak 2025-07-14  55  		haptic->force_logical_minimum = field->logical_minimum;
f96e0cf76b31615 Angela Czubak 2025-07-14  56  		haptic->force_physical_minimum = field->physical_minimum;
f96e0cf76b31615 Angela Czubak 2025-07-14  57  		haptic->force_resolution = input_abs_get_res(hi->input,
f96e0cf76b31615 Angela Czubak 2025-07-14  58  							     ABS_MT_PRESSURE);
783df9659b1cddf Angela Czubak 2025-07-14  59  		return true;
f96e0cf76b31615 Angela Czubak 2025-07-14  60  	}
783df9659b1cddf Angela Czubak 2025-07-14  61  	return false;
783df9659b1cddf Angela Czubak 2025-07-14  62  }
783df9659b1cddf Angela Czubak 2025-07-14  63  EXPORT_SYMBOL_GPL(hid_haptic_check_pressure_unit);
783df9659b1cddf Angela Czubak 2025-07-14  64  
783df9659b1cddf Angela Czubak 2025-07-14 @65  int hid_haptic_input_mapping(struct hid_device *hdev,
783df9659b1cddf Angela Czubak 2025-07-14  66  			     struct hid_haptic_device *haptic,
783df9659b1cddf Angela Czubak 2025-07-14  67  			     struct hid_input *hi,
783df9659b1cddf Angela Czubak 2025-07-14  68  			     struct hid_field *field, struct hid_usage *usage,
783df9659b1cddf Angela Czubak 2025-07-14  69  			     unsigned long **bit, int *max)
783df9659b1cddf Angela Czubak 2025-07-14  70  {
783df9659b1cddf Angela Czubak 2025-07-14  71  	if (usage->hid == HID_HP_MANUALTRIGGER) {
783df9659b1cddf Angela Czubak 2025-07-14  72  		haptic->manual_trigger_report = field->report;
783df9659b1cddf Angela Czubak 2025-07-14  73  		/* we don't really want to map these fields */
783df9659b1cddf Angela Czubak 2025-07-14  74  		return -1;
783df9659b1cddf Angela Czubak 2025-07-14  75  	}
783df9659b1cddf Angela Czubak 2025-07-14  76  
783df9659b1cddf Angela Czubak 2025-07-14  77  	return 0;
783df9659b1cddf Angela Czubak 2025-07-14  78  }
783df9659b1cddf Angela Czubak 2025-07-14  79  EXPORT_SYMBOL_GPL(hid_haptic_input_mapping);
783df9659b1cddf Angela Czubak 2025-07-14  80  
783df9659b1cddf Angela Czubak 2025-07-14 @81  int hid_haptic_input_configured(struct hid_device *hdev,
783df9659b1cddf Angela Czubak 2025-07-14  82  				struct hid_haptic_device *haptic,
783df9659b1cddf Angela Czubak 2025-07-14  83  				struct hid_input *hi)
783df9659b1cddf Angela Czubak 2025-07-14  84  {
783df9659b1cddf Angela Czubak 2025-07-14  85  
783df9659b1cddf Angela Czubak 2025-07-14  86  	if (hi->application == HID_DG_TOUCHPAD) {
783df9659b1cddf Angela Czubak 2025-07-14  87  		if (haptic->auto_trigger_report &&
783df9659b1cddf Angela Czubak 2025-07-14  88  		    haptic->manual_trigger_report) {
783df9659b1cddf Angela Czubak 2025-07-14  89  			__set_bit(INPUT_PROP_HAPTIC_TOUCHPAD, hi->input->propbit);
783df9659b1cddf Angela Czubak 2025-07-14  90  			return 1;
783df9659b1cddf Angela Czubak 2025-07-14  91  		}
783df9659b1cddf Angela Czubak 2025-07-14  92  		return 0;
783df9659b1cddf Angela Czubak 2025-07-14  93  	}
783df9659b1cddf Angela Czubak 2025-07-14  94  	return -1;
783df9659b1cddf Angela Czubak 2025-07-14  95  }
783df9659b1cddf Angela Czubak 2025-07-14  96  EXPORT_SYMBOL_GPL(hid_haptic_input_configured);
59b86a929daae04 Angela Czubak 2025-07-14  97  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2025-07-15 11:36 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-14 15:09 [PATCH 00/11] HID: Implement haptic forcepad support Jonathan Denose
2025-07-14 15:09 ` [PATCH 01/11] HID: add haptics page defines Jonathan Denose
2025-07-14 15:09 ` [PATCH 02/11] Input: add FF_HID effect type Jonathan Denose
2025-07-14 15:09 ` [PATCH 03/11] Input: add INPUT_PROP_HAPTIC_TOUCHPAD Jonathan Denose
2025-07-14 15:09 ` [PATCH 04/11] HID: haptic: introduce hid_haptic_device Jonathan Denose
2025-07-14 15:09 ` [PATCH 05/11] HID: input: allow mapping of haptic output Jonathan Denose
2025-07-14 15:09 ` [PATCH 06/11] HID: haptic: initialize haptic device Jonathan Denose
2025-07-14 15:09 ` [PATCH 07/11] HID: input: calculate resolution for pressure Jonathan Denose
2025-07-14 15:09 ` [PATCH 08/11] HID: haptic: add functions handling events Jonathan Denose
2025-07-14 15:09 ` [PATCH 09/11] Input: MT - add INPUT_MT_TOTAL_FORCE flags Jonathan Denose
2025-07-14 15:09 ` [PATCH 10/11] HID: haptic: add hid_haptic_switch_mode Jonathan Denose
2025-07-14 15:09 ` [PATCH 11/11] HID: multitouch: add haptic multitouch support Jonathan Denose
2025-07-15 11:35   ` kernel test robot [this message]
2025-07-17 18:43     ` Jonathan Denose
2025-07-17 23:59       ` Philip Li
2025-07-21 16:06         ` Jonathan Denose
2025-07-31  2:55           ` Oliver Sang
2025-08-01 21:30             ` Jonathan Denose
2025-07-23 19:59 ` [PATCH 00/11] HID: Implement haptic forcepad support Jonathan Denose

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202507151942.94dhYylY-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=aczubak@google.com \
    --cc=bentiss@kernel.org \
    --cc=corbet@lwn.net \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jdenose@google.com \
    --cc=jikos@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=rydberg@bitmath.org \
    --cc=seobrien@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).