tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   d52daa8620c65960e1ef882adc1f92061326bd7a
commit: f27ad8932725f8dd0cd1a46763de4a40377b1ae6 Input: elants_i2c - support 
palm detection
date:   4 months ago
compiler: xtensa-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


cppcheck warnings: (new ones prefixed by >>)

>> drivers/input/touchscreen/elants_i2c.c:859:45: warning: Clarify calculation 
>> precedence for '&' and '?'. [clarifyCalculation]
    tool_type = buf[FW_POS_TOOL_TYPE] & BIT(0) ?
                                               ^

vim +859 drivers/input/touchscreen/elants_i2c.c

   838  
   839  /*
   840   * Event reporting.
   841   */
   842  
   843  static void elants_i2c_mt_event(struct elants_data *ts, u8 *buf)
   844  {
   845          struct input_dev *input = ts->input;
   846          unsigned int n_fingers;
   847          unsigned int tool_type;
   848          u16 finger_state;
   849          int i;
   850  
   851          n_fingers = buf[FW_POS_STATE + 1] & 0x0f;
   852          finger_state = ((buf[FW_POS_STATE + 1] & 0x30) << 4) |
   853                          buf[FW_POS_STATE];
   854  
   855          dev_dbg(&ts->client->dev,
   856                  "n_fingers: %u, state: %04x\n",  n_fingers, 
finger_state);
   857  
   858          /* Note: all fingers have the same tool type */
 > 859          tool_type = buf[FW_POS_TOOL_TYPE] & BIT(0) ?
   860                          MT_TOOL_FINGER : MT_TOOL_PALM;
   861  
   862          for (i = 0; i < MAX_CONTACT_NUM && n_fingers; i++) {
   863                  if (finger_state & 1) {
   864                          unsigned int x, y, p, w;
   865                          u8 *pos;
   866  
   867                          pos = &buf[FW_POS_XY + i * 3];
   868                          x = (((u16)pos[0] & 0xf0) << 4) | pos[1];
   869                          y = (((u16)pos[0] & 0x0f) << 8) | pos[2];
   870                          p = buf[FW_POS_PRESSURE + i];
   871                          w = buf[FW_POS_WIDTH + i];
   872  
   873                          dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d 
w=%d\n",
   874                                  i, x, y, p, w);
   875  
   876                          input_mt_slot(input, i);
   877                          input_mt_report_slot_state(input, tool_type, 
true);
   878                          input_event(input, EV_ABS, ABS_MT_POSITION_X, 
x);
   879                          input_event(input, EV_ABS, ABS_MT_POSITION_Y, 
y);
   880                          input_event(input, EV_ABS, ABS_MT_PRESSURE, p);
   881                          input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, 
w);
   882  
   883                          n_fingers--;
   884                  }
   885  
   886                  finger_state >>= 1;
   887          }
   888  
   889          input_mt_sync_frame(input);
   890          input_sync(input);
   891  }
   892  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Reply via email to