From owner-freebsd-current@FreeBSD.ORG Sun Mar 4 01:03:48 2007 Return-Path: X-Original-To: freebsd-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 3866616A402 for ; Sun, 4 Mar 2007 01:03:48 +0000 (UTC) (envelope-from markhobden@gmail.com) Received: from nz-out-0506.google.com (nz-out-0506.google.com [64.233.162.228]) by mx1.freebsd.org (Postfix) with ESMTP id ED78D13C46B for ; Sun, 4 Mar 2007 01:03:47 +0000 (UTC) (envelope-from markhobden@gmail.com) Received: by nz-out-0506.google.com with SMTP id r28so1359580nza for ; Sat, 03 Mar 2007 17:03:47 -0800 (PST) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition; b=Lr/hqq0aoquoomqmBE2vJZZnWI3mAw6s6VkGGfF+LBR2yJ13nyPpk+bhZ1lQ9lqpr3Yam3IVWy4K4cQx/rJA4dHwurUWWos3zuxsM0A2g/IvzXeShEuDPPQYu3/4By+CMgh+GLe0aUFqApGoILWjVTGzvrbPSeyejOphfBBr9JA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition; b=mMlOwqLZ8ic/lAoI7kxp23Y9Ud1c/jGkaQ3yTwFIRQJkFm8O68Fv2bqSk3TX3jR5N5zeZvVp0VjoY76f2jNRUThrAc/WINz13sPJnPMth+D8CT4Nb4mWVKTzdakSOteQ1ZfQlL82evI1gU+RcI6/7GSNormW9gkeeSIwjsrFp+8= Received: by 10.114.133.1 with SMTP id g1mr795970wad.1172968705464; Sat, 03 Mar 2007 16:38:25 -0800 (PST) Received: by 10.114.144.17 with HTTP; Sat, 3 Mar 2007 16:38:25 -0800 (PST) Message-ID: Date: Sun, 4 Mar 2007 00:38:25 +0000 From: "Mark Hobden" To: freebsd-current@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: freebsd-usb@freebsd.org Subject: For Review/Testing: uhidev(4) USB driver level for devices with multiple report ids 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: Sun, 04 Mar 2007 01:03:48 -0000 This was originally ported from NetBSD by Maxime Henrion (mux), more recently I have updated the patch and fixed a few bugs. Current http://www.terinea.co.uk/~mark/patches/uhidev-7-current-p1.diff Stable (slightly older, should still apply) http://www.terinea.co.uk/~mark/patches/uhidev-6-stable-p1.diff I have also created a patch the gets some Microsoft keyboard/mouse sets and Microsoft notebook mice working with the uhidev driver. Without this patch invalid offsets cause the report size to be incorrect. It could make more sense to change offsets in hid_get_item() instead though. I am sure there will be more device Id's I have missed if you know of any please email me so I can update the patch. For Current and 6-Stable (requires uhidev patch to be applied first) http://www.terinea.co.uk/~mark/patches/uhidev-add-ms.diff The only problem I know of only exists in -CURRENT and is not caused by this patch. On one of my machines since bus_dmamap_load() was introduced (May 28 05:27:09) when the keyboard driver calls usbd_set_report_async() to set the LEDs but nothing happens. If this happens for anyone else the easiest way around this is to change 'uhidev_set_report_async' to 'uhidev_set_report' which is somewhere around line 1406 of the patched ukbd.c but if kbdmux is disabled or not loaded this will cause a panic as it will try and sleep in an interrupt thread. I am currently working on a version for the "new" USB stack that I will post when it works. -- Mark