Lines Matching defs:data
210 static void elan_report_mt_slot(struct elan_drvdata *drvdata, u8 *data,
216 bool active = !!data;
221 x = ((data[0] & 0xF0) << 4) | data[1];
223 (((data[0] & 0x07) << 8) | data[2]);
224 p = data[4];
232 static void elan_usb_report_input(struct elan_drvdata *drvdata, u8 *data)
272 if (data[0] == ELAN_SINGLE_FINGER) {
274 if (data[2] & BIT(i + 3))
275 elan_report_mt_slot(drvdata, data + 3, i);
279 input_report_key(input, BTN_LEFT, data[2] & 0x01);
287 if (data[0] == ELAN_MT_FIRST_FINGER) {
288 memcpy(drvdata->prev_report, data,
293 if (data[0] == ELAN_MT_SECOND_FINGER) {
306 elan_report_mt_slot(drvdata, data + 1, i);
319 static void elan_i2c_report_input(struct elan_drvdata *drvdata, u8 *data)
326 * Elan MT touchpads in i2c mode send finger data in the same format
344 finger_data = data + 2;
346 if (data[1] & BIT(i + 3)) {
354 input_report_key(input, BTN_LEFT, data[1] & 0x01);
360 struct hid_report *report, u8 *data, int size)
367 if (data[0] == ELAN_SINGLE_FINGER ||
368 data[0] == ELAN_MT_FIRST_FINGER ||
369 data[0] == ELAN_MT_SECOND_FINGER) {
371 elan_usb_report_input(drvdata, data);
376 if (data[0] == ELAN_MT_I2C && size == ELAN_I2C_REPORT_SIZE) {
377 elan_i2c_report_input(drvdata, data);