CC: [email protected] BCC: [email protected] CC: [email protected] TO: Markuss Broks <[email protected]> CC: Dmitry Torokhov <[email protected]> CC: Jeff LaBundy <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f3f19f939c11925dadd3f4776f99f8c278a7017b commit: a23ba3c043db9a2e8c967a3ff66dcedc5725afdf Input: add Imagis touchscreen driver date: 8 weeks ago :::::: branch date: 12 hours ago :::::: commit date: 8 weeks ago compiler: m68k-linux-gcc (GCC) 11.3.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout a23ba3c043db9a2e8c967a3ff66dcedc5725afdf cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> drivers/input/touchscreen/imagis.c:87:34: warning: Signed integer overflow >> for expression '0x800B<<16'. [integerOverflow] error = imagis_i2c_read_reg(ts, IST3038C_REG_INTR_MESSAGE, ^ drivers/input/touchscreen/imagis.c:108:10: warning: Signed integer overflow for expression '0x800B<<16'. [integerOverflow] IST3038C_REG_TOUCH_COORD + (i * 4), ^ vim +87 drivers/input/touchscreen/imagis.c a23ba3c043db9a Markuss Broks 2022-03-14 78 a23ba3c043db9a Markuss Broks 2022-03-14 79 static irqreturn_t imagis_interrupt(int irq, void *dev_id) a23ba3c043db9a Markuss Broks 2022-03-14 80 { a23ba3c043db9a Markuss Broks 2022-03-14 81 struct imagis_ts *ts = dev_id; a23ba3c043db9a Markuss Broks 2022-03-14 82 u32 intr_message, finger_status; a23ba3c043db9a Markuss Broks 2022-03-14 83 unsigned int finger_count, finger_pressed; a23ba3c043db9a Markuss Broks 2022-03-14 84 int i; a23ba3c043db9a Markuss Broks 2022-03-14 85 int error; a23ba3c043db9a Markuss Broks 2022-03-14 86 a23ba3c043db9a Markuss Broks 2022-03-14 @87 error = imagis_i2c_read_reg(ts, IST3038C_REG_INTR_MESSAGE, a23ba3c043db9a Markuss Broks 2022-03-14 88 &intr_message); a23ba3c043db9a Markuss Broks 2022-03-14 89 if (error) { a23ba3c043db9a Markuss Broks 2022-03-14 90 dev_err(&ts->client->dev, a23ba3c043db9a Markuss Broks 2022-03-14 91 "failed to read the interrupt message: %d\n", error); a23ba3c043db9a Markuss Broks 2022-03-14 92 goto out; a23ba3c043db9a Markuss Broks 2022-03-14 93 } a23ba3c043db9a Markuss Broks 2022-03-14 94 a23ba3c043db9a Markuss Broks 2022-03-14 95 finger_count = (intr_message & IST3038C_FINGER_COUNT_MASK) >> a23ba3c043db9a Markuss Broks 2022-03-14 96 IST3038C_FINGER_COUNT_SHIFT; a23ba3c043db9a Markuss Broks 2022-03-14 97 if (finger_count > IST3038C_MAX_FINGER_NUM) { a23ba3c043db9a Markuss Broks 2022-03-14 98 dev_err(&ts->client->dev, a23ba3c043db9a Markuss Broks 2022-03-14 99 "finger count %d is more than maximum supported\n", a23ba3c043db9a Markuss Broks 2022-03-14 100 finger_count); a23ba3c043db9a Markuss Broks 2022-03-14 101 goto out; a23ba3c043db9a Markuss Broks 2022-03-14 102 } a23ba3c043db9a Markuss Broks 2022-03-14 103 a23ba3c043db9a Markuss Broks 2022-03-14 104 finger_pressed = intr_message & IST3038C_FINGER_STATUS_MASK; a23ba3c043db9a Markuss Broks 2022-03-14 105 a23ba3c043db9a Markuss Broks 2022-03-14 106 for (i = 0; i < finger_count; i++) { a23ba3c043db9a Markuss Broks 2022-03-14 107 error = imagis_i2c_read_reg(ts, a23ba3c043db9a Markuss Broks 2022-03-14 108 IST3038C_REG_TOUCH_COORD + (i * 4), a23ba3c043db9a Markuss Broks 2022-03-14 109 &finger_status); a23ba3c043db9a Markuss Broks 2022-03-14 110 if (error) { a23ba3c043db9a Markuss Broks 2022-03-14 111 dev_err(&ts->client->dev, a23ba3c043db9a Markuss Broks 2022-03-14 112 "failed to read coordinates for finger %d: %d\n", a23ba3c043db9a Markuss Broks 2022-03-14 113 i, error); a23ba3c043db9a Markuss Broks 2022-03-14 114 goto out; a23ba3c043db9a Markuss Broks 2022-03-14 115 } a23ba3c043db9a Markuss Broks 2022-03-14 116 a23ba3c043db9a Markuss Broks 2022-03-14 117 input_mt_slot(ts->input_dev, i); a23ba3c043db9a Markuss Broks 2022-03-14 118 input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, a23ba3c043db9a Markuss Broks 2022-03-14 119 finger_pressed & BIT(i)); a23ba3c043db9a Markuss Broks 2022-03-14 120 touchscreen_report_pos(ts->input_dev, &ts->prop, a23ba3c043db9a Markuss Broks 2022-03-14 121 (finger_status & IST3038C_X_MASK) >> a23ba3c043db9a Markuss Broks 2022-03-14 122 IST3038C_X_SHIFT, a23ba3c043db9a Markuss Broks 2022-03-14 123 finger_status & IST3038C_Y_MASK, 1); a23ba3c043db9a Markuss Broks 2022-03-14 124 input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, a23ba3c043db9a Markuss Broks 2022-03-14 125 (finger_status & IST3038C_AREA_MASK) >> a23ba3c043db9a Markuss Broks 2022-03-14 126 IST3038C_AREA_SHIFT); a23ba3c043db9a Markuss Broks 2022-03-14 127 } a23ba3c043db9a Markuss Broks 2022-03-14 128 a23ba3c043db9a Markuss Broks 2022-03-14 129 input_mt_sync_frame(ts->input_dev); a23ba3c043db9a Markuss Broks 2022-03-14 130 input_sync(ts->input_dev); a23ba3c043db9a Markuss Broks 2022-03-14 131 a23ba3c043db9a Markuss Broks 2022-03-14 132 out: a23ba3c043db9a Markuss Broks 2022-03-14 133 return IRQ_HANDLED; a23ba3c043db9a Markuss Broks 2022-03-14 134 } a23ba3c043db9a Markuss Broks 2022-03-14 135 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
