Greetings, One of my developers are getting spurius ^[[G outputs from keyboard driver. Im 100% certain that its caused by keyboard driver and removing report_key also removes the problem.
I extracted some numbers when it happens and they show some linear structure, but so far failed to understand why it doesn't work. It happens when j = 5, i = even number (2, 4, 6, 8, 10) Here are the values this developer is getting at boot (along with 5 x ^[[G) (j , i, scancode, xor, bit) 5, 6, 53, 32 , 32 5, 8, 69, 32 , 32 5, 4, 37, 32 , 32 5, 2, 21, 32 , 32 for (i = 0; i < JORNADA_SCAN_SIZE; i++) { unsigned char new = jornadakbd->new_scan[i]; unsigned char old = jornadakbd->old_scan[i]; unsigned int xor = new ^ old; /* no difference, then skip */ if (xor == 0) continue; /* run through bits and compair */ for (j = 0; j < 8; j++) { unsigned char bit = 1 << j; if (xor & bit) { scancode = (i << 3) + j; if(j == 5) printk(KERN_INFO "kbd: reporting i=%d, j=%d, code=%d, xor=%d, bit=%d\n", i, j, scancode, xor, bit); input_event(input_dev, EV_MSC, MSC_SCAN, scancode); input_report_key(input_dev, keymap[scancode], !(new & bit)); sync_me = 1; } } } if (sync_me) input_sync(input_dev); } -- Kristoffer Ericson <[EMAIL PROTECTED]>