Hi Roger, the MT implementation seems mostly fine, just one curiosity: > static irqreturn_t pixcir_ts_isr(int irq, void *dev_id) > { > struct pixcir_i2c_ts_data *tsdata = dev_id; > const struct pixcir_ts_platform_data *pdata = tsdata->chip; > + struct pixcir_report_data report; > > while (!tsdata->exiting) { > - pixcir_ts_poscheck(tsdata); > - > - if (gpio_get_value(pdata->gpio_attb)) > + /* parse packet */ > + pixcir_ts_parse(tsdata, &report); > + > + /* report it */ > + pixcir_ts_report(tsdata, &report); > + > + if (gpio_get_value(pdata->gpio_attb)) { > + if (report.num_touches) { > + /* > + * Last report with no finger up? > + * Do it now then. > + */ > + input_mt_sync_frame(tsdata->input); > + input_sync(tsdata->input); Why is this special handling needed? Thanks, Henrik -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html