/* * Decode serial data (5 bytes per packet) * First byte * 1 C 0 0 R S S S * Where C is 1 while in calibration mode (which we don't use) * R is 1 when no coordinate corection was done. * S are button state
*/ static irqreturn_t fujitsu_interrupt(struct serio *serio, unsignedchar data, unsignedint flags)
{ struct fujitsu *fujitsu = serio_get_drvdata(serio); struct input_dev *dev = fujitsu->dev;
if (fujitsu->idx == 0) { /* resync skip until start of frame */ if ((data & 0xf0) != 0x80) return IRQ_HANDLED;
} else { /* resync skip garbage */ if (data & 0x80) {
fujitsu->idx = 0; return IRQ_HANDLED;
}
}
/* * fujitsu_connect() is the routine that is called when someone adds a * new serio device that supports the Fujitsu protocol and registers it * as input device.
*/ staticint fujitsu_connect(struct serio *serio, struct serio_driver *drv)
{ struct fujitsu *fujitsu; struct input_dev *input_dev; int err;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.