/* stinger_interrupt() is called by the low level driver when characters are ready for us. We then buffer them for further processing, or call the packet processing routine.  */
static irqreturn_t stinger_interrupt(struct serio *serio, unsigned char data, unsigned int flags)
/* stinger_interrupt() is called by the low level driver when characters are ready for us. We then buffer them for further processing, or call the packet processing routine.  */
static irqreturn_t stinger_interrupt(struct serio *serio, unsigned char data, unsigned int flags)
{
	struct stinger *stinger = serio_get_drvdata(serio);
	if (stinger->idx < STINGER_MAX_LENGTH)
		stinger->data[stinger->idx++] = data;
	if (stinger->idx == 4) {
		stinger_process_packet(stinger);
		stinger->idx = 0;
	}
	return IRQ_HANDLED;
}