From owner-freebsd-bluetooth@FreeBSD.ORG Tue May 3 19:36:53 2011 Return-Path: Delivered-To: freebsd-bluetooth@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03DFE1065675 for ; Tue, 3 May 2011 19:36:53 +0000 (UTC) (envelope-from maksim.yevmenkin@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7C3F88FC1B for ; Tue, 3 May 2011 19:36:52 +0000 (UTC) Received: by bwz12 with SMTP id 12so572776bwz.13 for ; Tue, 03 May 2011 12:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=NWJuG8MgamqjKc1xvQQpByEqS440e+exWrB2n+xD2EU=; b=Rbwc0J+z4NC4Minsf3LoPQkmY/ETxVl60O+h8LVljxm82wtE2EIaUrts0XIZFQZThi csZIgIJVGVNQPMV4D0oZAEgpsiKXLy3mTAn6L36AUylF21Q5dJentLXS3X6BiRcLappz DZ1OXL6/T62KhVYsPV0gOKh/Vd/eUtTaRW9Z8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=KVC5gGSzTmSMF9NBx1GDEW5nXLB4yn7YCK0oYgijrijINEw3yuWsvfCManTdKnn1xX 7yzp8X8nko9hb/B1k7C3utvSmt4vV5jeC6+TDv9ZE6yn2ghVWaEO5GTRHR8nBxc1Mzkg Kfa6BFXaLvkYiwvQQ7SFvCRBU4U7eFe7hBLmc= MIME-Version: 1.0 Received: by 10.204.16.72 with SMTP id n8mr234489bka.8.1304451411157; Tue, 03 May 2011 12:36:51 -0700 (PDT) Received: by 10.204.39.133 with HTTP; Tue, 3 May 2011 12:36:51 -0700 (PDT) In-Reply-To: <4DC0563D.7080005@gmail.com> References: <4D3889D2.80508@gmail.com> <201101202043.p0KKhDIB076736@lurza.secnetix.de> <4DBF0D26.8020703@gmail.com> <4DC0513A.5000805@gmail.com> <4DC0563D.7080005@gmail.com> Date: Tue, 3 May 2011 12:36:51 -0700 Message-ID: From: Maksim Yevmenkin To: David Demelier Content-Type: multipart/mixed; boundary=000325556f3afd23bd04a264423e Cc: freebsd-bluetooth@freebsd.org Subject: Re: Bluetooth mouse does not connect after reboot X-BeenThere: freebsd-bluetooth@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Using Bluetooth in FreeBSD environments List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 19:36:53 -0000 --000325556f3afd23bd04a264423e Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, May 3, 2011 at 12:23 PM, David Demelier wrote: >>>>> I'm sorry to disturb you again.. I'm still guessin where to search ho= w >>>>> to >>>>> get these horizontal events with my bluetooth mouse. I thing the >>>>> mouse_info >>>>> structure does not need to be extended I have a USB mouse that has th= e >>>>> same >>>>> horizontal buttons and they just works ! >>>>> >>>>> They sends 7 and 8 events to X (checked with xev) >>>>> >>>>> What can I do to extend bthidd and this button support ? >>>> >>>> like i said before, you need to decode AC_Pan data from the report. i >>>> just took a quick look at ums(4) driver and, it appears, that AC_Pan >>>> events are translated into button events, i.e. values< =A0 =A00 is mas= k (1 >>>> << =A0 =A03) and values> =A0 =A00 is mask (1<< =A0 =A04) . you can add= identical >>>> translation to bthidd(8) to see if it works. you will need to modify >>>> hid_interrupt() function in hid.c >>> >>> Max, >>> >>> I successfully made the patch but it's not the same mask. This diff jus= t >>> works! >>> >>> --- hid.c.orig =A02011-05-02 22:09:48.000000000 +0200 >>> +++ hid.c =A0 =A0 =A0 2011-05-03 20:57:46.000000000 +0200 >>> @@ -168,6 +168,16 @@ >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0usage =3D HID_USAGE(h.usage); >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0val =3D hid_get_data(data,&h); >>> >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Horizontal buttons */ >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (page =3D=3D HUP_CONSUMER&& =A0usage = =3D=3D HUC_AC_PAN) { >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (val< =A00) >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mouse_but= t |=3D (1<< =A05); >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 else if (val> =A00) >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mouse_but= t |=3D (1<< =A06); >>> + >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mevents ++; >>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 } >>> + >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0switch (page) { >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0case HUP_GENERIC_DESKTOP: >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0switch (usage) { >>> >>> Do you think it's a diff suitable to commit ? >>> >>> I'm so happy to make my horizontal buttons working :):) >> >> ah, i see you already figured it out :) i can commit something like >> this, i suppose. i would just move the statement into switch() below. >> i suppose we could just document that ac_pan is encoded as 8 and 9 >> button presses. >> > > Yes but why is the mask different from the ums ones ? Also can you commit > this to -STABLE thus I'll be able to use it without patching it. i *think* its because usb mouse operates on level1 (see mouse(4) for details), and, status for "extended" mouse buttons reported separately, i.e. from mouse(4) man page: byte 8, bits 0-6 reflect the state of the buttons 4-10. i can not commit this directly to -stable. i need to commit this to -head first and then mfc it after a week or so. i'm attaching a slightly different patch (dont worry you still get all the credit). please try it and let me know if it works for you. thanks, max --000325556f3afd23bd04a264423e Content-Type: text/plain; charset=US-ASCII; name="bthidd.diff.txt" Content-Disposition: attachment; filename="bthidd.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gn98n4at0 SW5kZXg6IGhpZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGhpZC5jCShyZXZpc2lvbiAyMjE0MDApCisrKyBo aWQuYwkod29ya2luZyBjb3B5KQpAQCAtMjI5LDYgKzIyOSwxNiBAQAogCQkJCWJyZWFrOwogCiAJ CQlzd2l0Y2ggKHVzYWdlKSB7CisJCQljYXNlIEhVQ19BQ19QQU46CisJCQkJLyogSG9yaXpvbnRh bCBzY3JvbGwgKi8KKwkJCQlpZiAodmFsIDwgMCkKKwkJCQkJbW91c2VfYnV0dCB8PSAoMSA8PCA1 KTsKKwkJCQllbHNlCisJCQkJCW1vdXNlX2J1dHQgfD0gKDEgPDwgNik7CisKKwkJCQltZXZlbnRz ICsrOworCQkJCWJyZWFrOworCiAJCQljYXNlIDB4YjU6IC8qIFNjYW4gTmV4dCBUcmFjayAqLwog CQkJCXZhbCA9IDB4MTk7CiAJCQkJYnJlYWs7Cg== --000325556f3afd23bd04a264423e--