On Wednesday, December 17, 2014 03:43:31 PM Hans de Goede wrote: > + /* > + * lradc supports only one keypress at a time, release does not give > + * any info as to which key was released, so we cache the keycode. > + */ > + if ((ints & CHAN0_KEYDOWN_IRQ) && lradc->chan0_keycode == 0) { > + val = readl(lradc->base + LRADC_DATA0) & 0x3f; > + voltage = val * lradc->vref / 63; > + > + for (i = 0; i < lradc->chan0_map_count; i++) { > + diff = abs(lradc->chan0_map[i].voltage - voltage); > + if (diff < closest) { > + closest = diff; > + keycode = lradc->chan0_map[i].keycode; > + } > + } > + > + lradc->chan0_keycode = keycode; > + input_report_key(lradc->input, lradc->chan0_keycode, 1); > + } > + > + if (ints & CHAN0_KEYUP_IRQ) { > + input_report_key(lradc->input, lradc->chan0_keycode, 0); > + lradc->chan0_keycode = 0; > + } Can release and press be reported simultaneously? Should we process release first? Thanks. -- Dmitry -- 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