drvdat 167 drivers/hid/hid-asus.c static void asus_report_contact_down(struct asus_drvdata *drvdat, drvdat 170 drivers/hid/hid-asus.c struct input_dev *input = drvdat->input; drvdat 174 drivers/hid/hid-asus.c y = drvdat->tp->max_y - ((data[0] & CONTACT_Y_MSB_MASK) << 8 | data[2]); drvdat 179 drivers/hid/hid-asus.c if (drvdat->tp->contact_size < 5) drvdat 195 drivers/hid/hid-asus.c static void asus_report_tool_width(struct asus_drvdata *drvdat) drvdat 197 drivers/hid/hid-asus.c struct input_mt *mt = drvdat->input->mt; drvdat 201 drivers/hid/hid-asus.c if (drvdat->tp->contact_size < 5) drvdat 222 drivers/hid/hid-asus.c input_report_abs(drvdat->input, ABS_TOOL_WIDTH, drvdat 227 drivers/hid/hid-asus.c static int asus_report_input(struct asus_drvdata *drvdat, u8 *data, int size) drvdat 232 drivers/hid/hid-asus.c if (size != 3 + drvdat->tp->contact_size * drvdat->tp->max_contacts) drvdat 235 drivers/hid/hid-asus.c for (i = 0; i < drvdat->tp->max_contacts; i++) { drvdat 238 drivers/hid/hid-asus.c if (drvdat->tp->contact_size >= 5) drvdat 242 drivers/hid/hid-asus.c input_mt_slot(drvdat->input, i); drvdat 243 drivers/hid/hid-asus.c input_mt_report_slot_state(drvdat->input, toolType, down); drvdat 246 drivers/hid/hid-asus.c asus_report_contact_down(drvdat, toolType, contactData); drvdat 247 drivers/hid/hid-asus.c contactData += drvdat->tp->contact_size; drvdat 251 drivers/hid/hid-asus.c input_report_key(drvdat->input, BTN_LEFT, data[1] & BTN_LEFT_MASK); drvdat 252 drivers/hid/hid-asus.c asus_report_tool_width(drvdat); drvdat 254 drivers/hid/hid-asus.c input_mt_sync_frame(drvdat->input); drvdat 255 drivers/hid/hid-asus.c input_sync(drvdat->input);