From owner-freebsd-current@FreeBSD.ORG Mon Jul 16 07:52:08 2007 Return-Path: X-Original-To: current@FreeBSD.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EEF4A16A401 for ; Mon, 16 Jul 2007 07:52:08 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from heff.fud.org.nz (203-109-251-39.static.bliink.ihug.co.nz [203.109.251.39]) by mx1.freebsd.org (Postfix) with ESMTP id 8C8F013C441 for ; Mon, 16 Jul 2007 07:52:08 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: by heff.fud.org.nz (Postfix, from userid 1001) id D94411CC58; Mon, 16 Jul 2007 19:52:06 +1200 (NZST) Date: Mon, 16 Jul 2007 19:52:06 +1200 From: Andrew Thompson To: Sam Banks Message-ID: <20070716075206.GA18510@heff.fud.org.nz> References: <469b160f.3c6.2409.12123@clear.net.nz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <469b160f.3c6.2409.12123@clear.net.nz> User-Agent: Mutt/1.5.13 (2006-08-11) Cc: current@FreeBSD.org Subject: Re: ukbd patch advice X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jul 2007 07:52:09 -0000 On Mon, Jul 16, 2007 at 06:54:07PM +1200, Sam Banks wrote: > 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. Can you give a diff so people can see the different order. > > 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? cheers, Andrew