[Qemu-devel] [PATCH] ps2kbd: default to scan enabled after reset

Hervé Poussineau posted 1 patch 7 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181021190721.2148-1-hpoussin@reactos.org
Test docker-clang@ubuntu failed
Test checkpatch passed
Test asan passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
hw/input/ps2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] ps2kbd: default to scan enabled after reset
Posted by Hervé Poussineau 7 years ago
A check for scan_enabled has been added to ps2_keyboard_event in commit
143c04c7e0639e53086519592ead15d2556bfbf2 to prevent stream corruption.
This works well as long as operating system is resetting keyboard, or enabling it.

This fixes IBM 40p firmware, which doesn't bother sending KBD_CMD_RESET,
KBD_CMD_ENABLE or KBD_CMD_RESET_ENABLE before trying to use the keyboard.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
---
 hw/input/ps2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index fdfcadf9a1..eded4f0f8d 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -938,7 +938,7 @@ static void ps2_kbd_reset(void *opaque)
 
     trace_ps2_kbd_reset(opaque);
     ps2_common_reset(&s->common);
-    s->scan_enabled = 0;
+    s->scan_enabled = 1;
     s->translate = 0;
     s->scancode_set = 2;
     s->modifiers = 0;
-- 
2.11.0


Re: [Qemu-devel] [PATCH] ps2kbd: default to scan enabled after reset
Posted by Hervé Poussineau 6 years, 12 months ago
Ping.

Le 21/10/2018 à 21:07, Hervé Poussineau a écrit :
> A check for scan_enabled has been added to ps2_keyboard_event in commit
> 143c04c7e0639e53086519592ead15d2556bfbf2 to prevent stream corruption.
> This works well as long as operating system is resetting keyboard, or enabling it.
> 
> This fixes IBM 40p firmware, which doesn't bother sending KBD_CMD_RESET,
> KBD_CMD_ENABLE or KBD_CMD_RESET_ENABLE before trying to use the keyboard.
> 
> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
> ---
>   hw/input/ps2.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/input/ps2.c b/hw/input/ps2.c
> index fdfcadf9a1..eded4f0f8d 100644
> --- a/hw/input/ps2.c
> +++ b/hw/input/ps2.c
> @@ -938,7 +938,7 @@ static void ps2_kbd_reset(void *opaque)
>   
>       trace_ps2_kbd_reset(opaque);
>       ps2_common_reset(&s->common);
> -    s->scan_enabled = 0;
> +    s->scan_enabled = 1;
>       s->translate = 0;
>       s->scancode_set = 2;
>       s->modifiers = 0;
> 


Re: [Qemu-devel] [PATCH-for-3.1] ps2kbd: default to scan enabled after reset
Posted by Hervé Poussineau 6 years, 11 months ago
Ping again.

v3.0 didn't contain 143c04c7e0639e53086519592ead15d2556bfbf2, so this commit fixes a regression.

Le 10/11/2018 à 21:53, Hervé Poussineau a écrit :
> Ping.
> 
> Le 21/10/2018 à 21:07, Hervé Poussineau a écrit :
>> A check for scan_enabled has been added to ps2_keyboard_event in commit
>> 143c04c7e0639e53086519592ead15d2556bfbf2 to prevent stream corruption.
>> This works well as long as operating system is resetting keyboard, or enabling it.
>>
>> This fixes IBM 40p firmware, which doesn't bother sending KBD_CMD_RESET,
>> KBD_CMD_ENABLE or KBD_CMD_RESET_ENABLE before trying to use the keyboard.
>>
>> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
>> ---
>>   hw/input/ps2.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/input/ps2.c b/hw/input/ps2.c
>> index fdfcadf9a1..eded4f0f8d 100644
>> --- a/hw/input/ps2.c
>> +++ b/hw/input/ps2.c
>> @@ -938,7 +938,7 @@ static void ps2_kbd_reset(void *opaque)
>>       trace_ps2_kbd_reset(opaque);
>>       ps2_common_reset(&s->common);
>> -    s->scan_enabled = 0;
>> +    s->scan_enabled = 1;
>>       s->translate = 0;
>>       s->scancode_set = 2;
>>       s->modifiers = 0;
>>
> 



Re: [Qemu-devel] [PATCH-for-3.1] [REGRESSION FIX] ps2kbd: default to scan enabled after reset
Posted by Hervé Poussineau 6 years, 11 months ago
Ping again.

Le 18/11/2018 à 11:09, Hervé Poussineau a écrit :
> Ping again.
> 
> v3.0 didn't contain 143c04c7e0639e53086519592ead15d2556bfbf2, so this commit fixes a regression.
> 
> Le 10/11/2018 à 21:53, Hervé Poussineau a écrit :
>> Ping.
>>
>> Le 21/10/2018 à 21:07, Hervé Poussineau a écrit :
>>> A check for scan_enabled has been added to ps2_keyboard_event in commit
>>> 143c04c7e0639e53086519592ead15d2556bfbf2 to prevent stream corruption.
>>> This works well as long as operating system is resetting keyboard, or enabling it.
>>>
>>> This fixes IBM 40p firmware, which doesn't bother sending KBD_CMD_RESET,
>>> KBD_CMD_ENABLE or KBD_CMD_RESET_ENABLE before trying to use the keyboard.
>>>
>>> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
>>> ---
>>>   hw/input/ps2.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/hw/input/ps2.c b/hw/input/ps2.c
>>> index fdfcadf9a1..eded4f0f8d 100644
>>> --- a/hw/input/ps2.c
>>> +++ b/hw/input/ps2.c
>>> @@ -938,7 +938,7 @@ static void ps2_kbd_reset(void *opaque)
>>>       trace_ps2_kbd_reset(opaque);
>>>       ps2_common_reset(&s->common);
>>> -    s->scan_enabled = 0;
>>> +    s->scan_enabled = 1;
>>>       s->translate = 0;
>>>       s->scancode_set = 2;
>>>       s->modifiers = 0;
>>>
>>
> 
> 


Re: [Qemu-devel] [PATCH-for-3.1] [REGRESSION FIX] ps2kbd: default to scan enabled after reset
Posted by Gerd Hoffmann 6 years, 11 months ago
On Thu, Nov 22, 2018 at 07:30:41PM +0100, Hervé Poussineau wrote:
> Ping again.

Queued up for 3.1

thanks,
  Gerd


Re: [Qemu-devel] [PATCH] ps2kbd: default to scan enabled after reset
Posted by Philippe Mathieu-Daudé 6 years, 12 months ago
Hi Hervé,

On Sun, Oct 21, 2018 at 9:12 PM Hervé Poussineau <hpoussin@reactos.org> wrote:
> A check for scan_enabled has been added to ps2_keyboard_event in commit
> 143c04c7e0639e53086519592ead15d2556bfbf2 to prevent stream corruption.
> This works well as long as operating system is resetting keyboard, or enabling it.
>
> This fixes IBM 40p firmware, which doesn't bother sending KBD_CMD_RESET,
> KBD_CMD_ENABLE or KBD_CMD_RESET_ENABLE before trying to use the keyboard.
>
> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
> ---
>  hw/input/ps2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/input/ps2.c b/hw/input/ps2.c
> index fdfcadf9a1..eded4f0f8d 100644
> --- a/hw/input/ps2.c
> +++ b/hw/input/ps2.c
> @@ -938,7 +938,7 @@ static void ps2_kbd_reset(void *opaque)
>
>      trace_ps2_kbd_reset(opaque);
>      ps2_common_reset(&s->common);
> -    s->scan_enabled = 0;
> +    s->scan_enabled = 1;
>      s->translate = 0;
>      s->scancode_set = 2;
>      s->modifiers = 0;
> --
> 2.11.0
>

I think QOM'ifying this device would force a cleanup of those various
reset functions.
Then ps2_kbd_reset could call ps2_reset_keyboard.

In the meantime this patch makes sense as a bugfix.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Regards,

Phil.