[PATCH 1/2] MIPS: Malta: Fix keyboard resource preventing i8042 driver from registering

Maciej W. Rozycki posted 2 patches 3 months, 3 weeks ago
[PATCH 1/2] MIPS: Malta: Fix keyboard resource preventing i8042 driver from registering
Posted by Maciej W. Rozycki 3 months, 3 weeks ago
MIPS Malta platform code registers the PCI southbridge legacy port I/O 
PS/2 keyboard range as a standard resource marked as busy.  It prevents 
the i8042 driver from registering as it fails to claim the resource in 
a call to i8042_platform_init().  Consequently PS/2 keyboard and mouse 
devices cannot be used with this platform.

Fix the issue by removing the busy marker from the standard reservation, 
making the driver register successfully:

serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12

and the resource show up as expected among the legacy devices:

00000000-00ffffff : MSC PCI I/O
  00000000-0000001f : dma1
  00000020-00000021 : pic1
  00000040-0000005f : timer
  00000060-0000006f : keyboard
    00000060-0000006f : i8042
  00000070-00000077 : rtc0
  00000080-0000008f : dma page reg
  000000a0-000000a1 : pic2
  000000c0-000000df : dma2
  [...]

If the i8042 driver has not been configured, then the standard resource 
will remain there preventing any conflicting dynamic assignment of this 
PCI port I/O address range.

Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
---
 arch/mips/mti-malta/malta-setup.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

linux-mips-malta-setup-resource-keyboard.diff
Index: linux-macro/arch/mips/mti-malta/malta-setup.c
===================================================================
--- linux-macro.orig/arch/mips/mti-malta/malta-setup.c
+++ linux-macro/arch/mips/mti-malta/malta-setup.c
@@ -47,7 +47,7 @@ static struct resource standard_io_resou
 		.name = "keyboard",
 		.start = 0x60,
 		.end = 0x6f,
-		.flags = IORESOURCE_IO | IORESOURCE_BUSY
+		.flags = IORESOURCE_IO
 	},
 	{
 		.name = "dma page reg",
Re: [PATCH 1/2] MIPS: Malta: Fix keyboard resource preventing i8042 driver from registering
Posted by Thomas Bogendoerfer 3 months, 3 weeks ago
On Tue, Oct 21, 2025 at 08:38:22PM +0100, Maciej W. Rozycki wrote:
> MIPS Malta platform code registers the PCI southbridge legacy port I/O 
> PS/2 keyboard range as a standard resource marked as busy.  It prevents 
> the i8042 driver from registering as it fails to claim the resource in 
> a call to i8042_platform_init().  Consequently PS/2 keyboard and mouse 
> devices cannot be used with this platform.
> 
> Fix the issue by removing the busy marker from the standard reservation, 
> making the driver register successfully:
> 
> serio: i8042 KBD port at 0x60,0x64 irq 1
> serio: i8042 AUX port at 0x60,0x64 irq 12
> 
> and the resource show up as expected among the legacy devices:
> 
> 00000000-00ffffff : MSC PCI I/O
>   00000000-0000001f : dma1
>   00000020-00000021 : pic1
>   00000040-0000005f : timer
>   00000060-0000006f : keyboard
>     00000060-0000006f : i8042
>   00000070-00000077 : rtc0
>   00000080-0000008f : dma page reg
>   000000a0-000000a1 : pic2
>   000000c0-000000df : dma2
>   [...]
> 
> If the i8042 driver has not been configured, then the standard resource 
> will remain there preventing any conflicting dynamic assignment of this 
> PCI port I/O address range.
> 
> Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Cc: stable@vger.kernel.org
> ---
>  arch/mips/mti-malta/malta-setup.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> linux-mips-malta-setup-resource-keyboard.diff
> Index: linux-macro/arch/mips/mti-malta/malta-setup.c
> ===================================================================
> --- linux-macro.orig/arch/mips/mti-malta/malta-setup.c
> +++ linux-macro/arch/mips/mti-malta/malta-setup.c
> @@ -47,7 +47,7 @@ static struct resource standard_io_resou
>  		.name = "keyboard",
>  		.start = 0x60,
>  		.end = 0x6f,
> -		.flags = IORESOURCE_IO | IORESOURCE_BUSY
> +		.flags = IORESOURCE_IO
>  	},
>  	{
>  		.name = "dma page reg",

Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]