Date: Mon, 16 Jul 2007 21:09:43 +1200 From: Sam Banks <w0lfie@clear.net.nz> To: current@FreeBSD.org Subject: Re: ukbd patch advice Message-ID: <469b35d7.197.31f0.5575@clear.net.nz>
index | next in thread | raw e-mail
[-- Attachment #1 --] As suggested by Andrew Thompson, I have attached the patch for ukbd.c to show the changes I've made. Sam. ----- Original Message Follows ----- > 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. > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to > "freebsd-current-unsubscribe@freebsd.org" [-- Attachment #2 --] --- ukbd.c.orig 2007-07-16 20:59:34.000000000 +1200 +++ ukbd.c 2007-07-16 21:02:37.000000000 +1200 /* * HID spec: http://www.usb.org/developers/devclass_docs/HID1_11.pdf @@ -93,6 +93,7 @@ #define NKEYCODE 6 struct ukbd_data { + u_int8_t reserved; u_int8_t modifiers; #define MOD_CONTROL_L 0x01 #define MOD_CONTROL_R 0x10 @@ -102,7 +103,6 @@ #define MOD_ALT_R 0x40 #define MOD_WIN_L 0x08 #define MOD_WIN_R 0x80 - u_int8_t reserved; u_int8_t keycode[NKEYCODE]; };help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?469b35d7.197.31f0.5575>
