Re: [PATCH] Input: gscps2 - supply PA-RISC keyboard keymap via device property

Helge Deller <[email protected]>
Newsgroups org.kernel.vger.linux-parisc,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 8/4/26 15:59, Helge Deller wrote:
> Hi Dmitry,
> 
> On 8/3/26 06:39, Dmitry Torokhov wrote:
>> Instead of hardcoding PA-RISC specific keycode tables into atkbd via
>> compile-time inclusion, have the gscps2 PS/2 port driver attach a
>> linux,keymap software node device property to the serio device when
>> a keyboard port is registered. This allows atkbd to dynamically fetch
>> and apply the custom keymap when probing the port using generic
>> firmware property helpers, removing architecture-specific hacks from
>> generic keyboard driver code.
>>
>> Co-locate the keymap definitions with the serio port driver by moving
>> hpps2atkbd.h from drivers/input/keyboard/ to drivers/input/serio/.
>> To handle the five conflicting keys on RDI PrecisionBook laptops without
>> runtime model string checks or duplicate keymap tables in memory, add
>> CONFIG_SERIO_GSCPS2_RDI_KEYCODES to drivers/input/serio/Kconfig and
>> resolve the conflicting keycodes at compile time via preprocessor
>> macros.
>>
>> Assisted-by: Antigravity:gemini-3.5-flash
>> Signed-off-by: Dmitry Torokhov <[email protected]>
>> ---
>>
>> v2:
>> - instead of using device_create_managed_software_node() that has issue
>>    if serio port is unregistered before it is fully registered, switch to
>>    creating software node when initializing the driver and attach it to
>>    the serio port
>> - added keycodes lost in movement (0x92 - silently ignored, 0xca -
>>    KEY_KPSLASH, 0xda - KEY_KPENTER).
>>
>>   drivers/input/keyboard/Kconfig      |  38 ---------
>>   drivers/input/keyboard/atkbd.c      |   8 --
>>   drivers/input/keyboard/hpps2atkbd.h | 110 -------------------------
>>   drivers/input/serio/Kconfig         |  27 +++++++
>>   drivers/input/serio/gscps2.c        |  47 ++++++++---
>>   drivers/input/serio/hpps2atkbd.h    | 120 ++++++++++++++++++++++++++++
>>   6 files changed, 184 insertions(+), 166 deletions(-)
> 
> Thanks for cleaning it up.
> Your solution is much cleaner and gets the hacks away.
> I'll test and report back very soon.
> 
>> diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
>> index bf9b993f5733..cd1bca57fda3 100644
>> --- a/drivers/input/serio/gscps2.c
>> +++ b/drivers/input/serio/gscps2.c
>> @@ -22,20 +22,19 @@
>>    *                 was usable/enabled ?)
>>    */
>> -#include <linux/init.h>
>> -#include <linux/module.h>
>> -#include <linux/slab.h>
>> -#include <linux/serio.h>
>> +#include <linux/delay.h>
>>   #include <linux/input.h>
>>   #include <linux/interrupt.h>
>> -#include <linux/spinlock.h>
>> -#include <linux/delay.h>
>> +#include <linux/io.h>
>>   #include <linux/ioport.h>
>> +#include <linux/property.h>
>> +#include <linux/serio.h>
>>   #include <asm/irq.h>
>> -#include <asm/io.h>
>>   #include <asm/parisc-device.h>
>> +#include "hpps2atkbd.h"
> 
> Doesn't it makes sense to move the contents of the new file
> "hpps2atkbd.h" directly in here instead of keeping in own header?
Other than that, you may add:

Acked-by: Helge Deller <[email protected]>
Tested-by: Helge Deller <[email protected]>

Thanks!
Helge
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.