I yesterday debugged this driver. While I cannot fix the actual buffer overrun, I can do the best possible to recover from it. The Igor USB device internally provides a circular buffer of a limited length. In case the buffer overrun happens, the driver would only report back to lirc_dev the data that was not yet overwritten - but not the data that overwrote older data. Fixing this (and adding some sanity checks to make sure not to cause illegal reads) causes as much of the received data to be sent to lirc as had been received in the ring buffer. This is enough to make my Onkyo remote work (though mode2 and my old serial lirc keycodes proved helpful configuring the remote), as the relevant bits are at the end of the sequence.
Hi,
I yesterday debugged this driver. While I cannot fix the actual buffer overrun, I can do the best possible to recover from it. The Igor USB device internally provides a circular buffer of a limited length. In case the buffer overrun happens, the driver would only report back to lirc_dev the data that was not yet overwritten - but not the data that overwrote older data. Fixing this (and adding some sanity checks to make sure not to cause illegal reads) causes as much of the received data to be sent to lirc as had been received in the ring buffer. This is enough to make my Onkyo remote work (though mode2 and my old serial lirc keycodes proved helpful configuring the remote), as the relevant bits are at the end of the sequence.