From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Programmingkid <programmingkidx@gmail.com>
Cc: qemu-ppc@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] adb: change handler only when recognized
Date: Sat, 12 Mar 2016 21:31:01 +0100 [thread overview]
Message-ID: <56E47C85.6090003@reactos.org> (raw)
In-Reply-To: <6396C645-0101-4906-A51C-385CBECFF215@gmail.com>
Le 12/03/2016 19:13, Programmingkid a écrit :
>
> On Mar 12, 2016, at 12:44 PM, Hervé Poussineau wrote:
>
>> Le 12/03/2016 16:24, Mark Cave-Ayland a écrit :
>>> On 12/03/16 13:38, Hervé Poussineau wrote:
>>>
>>>> ADB devices must take new handler into account only when they recognize it.
>>>> This lets operating systems probe for valid/invalid handles, to know device capabilities.
>>>>
>>>> Add a FIXME in keyboard handler, which should use a different translation
>>>> table depending of the selected handler.
>>>>
>>>> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
>>>
>>> Interesting. Can you explain a bit more about which OSs this patch
>>> affects and the symptoms it alleviates?
>>
>> Here is a small list of handlers requested by some operating systems without the patch
>> HelenOS kbd=1 mouse=2
>> MacOS 9 kbd=1 mouse=0xc (what is 0xc?)
>> Linux kbd=3 mouse=4
>>
>> Here is a small list of handlers requested by some operating systems with the patch
>> HelenOS kbd=1 mouse=2
>> MacOS 9 kbd=1 mouse=2
>> Linux kbd=3 mouse=2
>>
>>
>> I have no example of current problem with the keyboard part. However, I suspect it may be related some
>> problems John is seeing on some operating systems, as handler 1 and 2/3 must not use the same
>> translation table.
>> Note that MacOS 9 uses handler 1 (Apple Standard Keyboard), while Linux uses handler 3 (Apple Extended Keyboard LShift != RShift).
>>
>> On mouse part, operating systems (like MacOS or Linux) try to probe the mouse model by testing
>> different handlers, and see which ones are accepted.
>> On Linux, the handler 1 and 2 have a 3 bytes protocol, while the handler 4 has a 4 bytes protocol.
>> Correctly supporting protocol 4 will be required to handle 3-button mice.
>>
>> Hervé
>
> Very interesting. Thank you for this information. So it sounds like the keys should change in the keyboard array with respect to the value of kbd. It would have to happen during runtime. Do you have any documentation related to your handler code? Particularly what keys are and not available for a particular handler/keyboard.
Of course, I've no real documentation for Standard Keyboard vs Extended Keyboard...
However, on a side note, while checking Linux code (for example https://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/drivers/macintosh/adbhid.c )
I saw that keys Mute/VolumeUp/VolumeDown/EjectCD/BrightnessIncrease/BrightnessDecrease are not on the keyboard, but on another ADB device with category "misc".
Might be interesting if we want to add support for these keys one day in QEMU.
Hervé
next prev parent reply other threads:[~2016-03-12 20:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-12 13:38 [Qemu-devel] [PATCH] adb: change handler only when recognized Hervé Poussineau
2016-03-12 14:31 ` Programmingkid
2016-03-12 15:24 ` Mark Cave-Ayland
2016-03-12 17:44 ` Hervé Poussineau
2016-03-12 18:13 ` Programmingkid
2016-03-12 20:31 ` Hervé Poussineau [this message]
2016-03-13 16:06 ` Peter Maydell
2016-08-08 23:17 ` [Qemu-devel] [Qemu-ppc] " Benjamin Herrenschmidt
2016-08-09 0:11 ` BALATON Zoltan
2016-08-09 0:29 ` Benjamin Herrenschmidt
2016-08-09 1:31 ` BALATON Zoltan
2016-08-09 4:06 ` Benjamin Herrenschmidt
2016-08-09 9:35 ` Howard Spoelstra
2016-08-09 10:26 ` BALATON Zoltan
2016-08-09 11:49 ` Benjamin Herrenschmidt
-- strict thread matches above, loose matches on Subject: below --
2016-10-25 7:01 [Qemu-devel] " Hervé Poussineau
2016-10-26 0:07 ` David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56E47C85.6090003@reactos.org \
--to=hpoussin@reactos.org \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=peter.maydell@linaro.org \
--cc=programmingkidx@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).