---
softusb-input/main.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/softusb-input/main.c b/softusb-input/main.c
index f16d6f0..914b124 100644
--- a/softusb-input/main.c
+++ b/softusb-input/main.c
@@ -287,7 +287,7 @@ static void poll(struct port_status *p)
usb_tx(usb_buffer, 3);
/* DATAx */
len = usb_rx(usb_buffer, 11);
- if(len < 7)
+ if(len < 6)
return;
if(usb_buffer[0] != p->expected_data) {
if((usb_buffer[0] == 0xc3) || (usb_buffer[0] == 0x4b)) {
@@ -314,10 +314,16 @@ static void poll(struct port_status *p)
COMLOC_KEVT_PRODUCE = (m + 1) & 0x07;
}
} else {
- if(len >= 7) {
+ if(len >= 6) {
+ if(len > 7)
+ len = 7;
m = COMLOC_MEVT_PRODUCE;
- for(i=0;i<4;i++)
+ for(i=0;i<len-3;i++)
COMLOC_MEVT(4*m+i) = usb_buffer[i+1];
+ while(i < 4) {
+ COMLOC_MEVT(4*m+i) = 0;
+ i++;
+ }
COMLOC_MEVT_PRODUCE = (m + 1) & 0x0f;
}
}
--
1.7.0.4
_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode