Date: Tue, 3 May 2011 13:01:44 -0700 From: Maksim Yevmenkin <maksim.yevmenkin@gmail.com> To: David Demelier <demelier.david@gmail.com> Cc: freebsd-bluetooth@freebsd.org Subject: Re: Bluetooth mouse does not connect after reboot Message-ID: <BANLkTinBysqKrGqaa1k=PT8RajM9zHDNQQ@mail.gmail.com> In-Reply-To: <4DC05D39.4020309@gmail.com> References: <4D3889D2.80508@gmail.com> <201101202043.p0KKhDIB076736@lurza.secnetix.de> <AANLkTindTyEBAgGV3cBcSs6tGMtN8JtQ3_sHOF4n%2BnEs@mail.gmail.com> <4DBF0D26.8020703@gmail.com> <BANLkTi=dYv5R6jkqNhTj6m%2BZHK=afLXvow@mail.gmail.com> <4DC0513A.5000805@gmail.com> <BANLkTikeiZ61NwRSRh7xNqMTy97soxjc_A@mail.gmail.com> <4DC0563D.7080005@gmail.com> <BANLkTimHnsfCBob_DByxMd3CjtKw7K41LA@mail.gmail.com> <4DC05D39.4020309@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--0016e6d7e82607013c04a2649c0f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, May 3, 2011 at 12:53 PM, David Demelier <demelier.david@gmail.com> wrote: > On 03/05/2011 21:36, Maksim Yevmenkin wrote: >> >> On Tue, May 3, 2011 at 12:23 PM, David Demelier >> <demelier.david@gmail.com> =A0wrote: >>>>>>> >>>>>>> I'm sorry to disturb you again.. I'm still guessin where to search >>>>>>> how >>>>>>> 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 >>>>>>> the >>>>>>> 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 =A0 =A00 = is mask >>>>>> (1 >>>>>> << =A0 =A0 =A03) and values> =A0 =A0 =A00 is mask (1<< =A0 =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 >>>>> just >>>>> 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&& =A0 =A0u= sage =3D=3D HUC_AC_PAN) { >>>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (val< =A0 =A00) >>>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mouse_b= utt |=3D (1<< =A0 =A05); >>>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 else if (val> =A0 =A00) >>>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mouse_b= utt |=3D (1<< =A0 =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 comm= it >>> 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. >> > Yes, this is what I was trying to do before putting it outside the switch= () > statement because of these warning in /var/log/messages : > > May =A03 21:52:21 Melon bthidd[25785]: Keyboard events received from > non-keyboard device 00:1f:20:0f:62:31. Please report > > These messages appears after pressing these buttons. argh.... sorry... please try attached patch thanks max --0016e6d7e82607013c04a2649c0f 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_gn99kmk80 SW5kZXg6IGhpZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGhpZC5jCShyZXZpc2lvbiAyMjE0MDApCisrKyBo aWQuYwkod29ya2luZyBjb3B5KQpAQCAtMjI5LDYgKzIyOSwxNyBAQAogCQkJCWJyZWFrOwogCiAJ CQlzd2l0Y2ggKHVzYWdlKSB7CisJCQljYXNlIEhVQ19BQ19QQU46CisJCQkJLyogSG9yaXpvbnRh bCBzY3JvbGwgKi8KKwkJCQlpZiAodmFsIDwgMCkKKwkJCQkJbW91c2VfYnV0dCB8PSAoMSA8PCA1 KTsKKwkJCQllbHNlCisJCQkJCW1vdXNlX2J1dHQgfD0gKDEgPDwgNik7CisKKwkJCQltZXZlbnRz ICsrOworCQkJCXZhbCA9IDA7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgMHhiNTogLyogU2NhbiBO ZXh0IFRyYWNrICovCiAJCQkJdmFsID0gMHgxOTsKIAkJCQlicmVhazsK --0016e6d7e82607013c04a2649c0f--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTinBysqKrGqaa1k=PT8RajM9zHDNQQ>