Date: Mon, 16 Jul 2007 18:54:07 +1200 From: Sam Banks <w0lfie@clear.net.nz> To: current@FreeBSD.org Subject: ukbd patch advice Message-ID: <469b160f.3c6.2409.12123@clear.net.nz>
index | next in thread | raw e-mail
Hey all, I have been having a problem with my particular usb keyboard (0x03 was always being written into the first element of ukbd_data->keycode basically). I have tracked it down to a problem somewhere in between the uhci chipset (same problem with other cuts of uhci chipset), the uhci and/or ukbd drivers and the keyboard. A fix to the problem is to reorder members of the struct ukbd_data. Originally, the members are ordered as modifiers, reserved and keycode[6] (minus a bunch of #define's). If I change this order to reserved, modifiers and keycode[6], my keyboard starts to function as it should (minus lighting up the LED's but that's another email all together :)). With this reordering, it stops other usb keyboards which function with the original code from working. I'm wanting submit a patch for this fix (as other people are experiencing the same problems) but I'm not sure how to do this. I was thinking along the lines of the usb quirks function but it appears outside of a function body, you cannot have the normal if() type statements, only the preprocessor #ifdef types. To me, having a kernel config option for a single keyboard on a single driver seems quite overkill. Does anyone have any suggestions on what I should do or can anyone point me to some code that deals with a similar problem? On a side note, is anyone able to shed any light into why they think the above fix works? I am drawing a bit of a blank to be honest. Is it possible that my fix is only masking the problem? If you need any more info or whatever, yell out. Cheers, Sam.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?469b160f.3c6.2409.12123>
