ia64/linux-2.6.18-xen.hg

changeset 625:6d9e4b02bba4

x86: restrict keyboard io ports reservation to make ipmi driver work

Straightforward port of
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9096bd7a66efbe406910365c5206a32eed3875af

Quoting its commit message:

x86: restrict keyboard io ports reservation to make ipmi driver
work

On some of our (single board computer) boards (x86) we are using
an IPMI controller that uses I/O ports 0x62 and 0x66 for a KCS
(keyboard controller style) IPMI system interface.

Trying to load the openipmi driver fails, because the ports
(0x62/0x66) are reserved for keyboard. keyboard reserves the full
range 0x60-0x6F while it doesn't need to.

Reserve only ports 0x60 and 0x64 for the legacy PS/2 i8042 keyboad
controller instead of 0x60-0x6F to allow the openipmi driver to
work.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

Signed-off-by: Markus Armbruster <armbru@redhat.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jul 25 09:42:29 2008 +0100 (2008-07-25)
parents 57ccd252e855
children e39575a1d8af
files arch/i386/kernel/setup-xen.c arch/i386/kernel/setup.c arch/x86_64/kernel/setup-xen.c arch/x86_64/kernel/setup.c
line diff
     1.1 --- a/arch/i386/kernel/setup-xen.c	Thu Jul 24 14:16:04 2008 +0100
     1.2 +++ b/arch/i386/kernel/setup-xen.c	Fri Jul 25 09:42:29 2008 +0100
     1.3 @@ -283,7 +283,12 @@ static struct resource standard_io_resou
     1.4  }, {
     1.5  	.name	= "keyboard",
     1.6  	.start	= 0x0060,
     1.7 -	.end	= 0x006f,
     1.8 +	.end	= 0x0060,
     1.9 +	.flags	= IORESOURCE_BUSY | IORESOURCE_IO
    1.10 +}, {
    1.11 +	.name	= "keyboard",
    1.12 +	.start	= 0x0064,
    1.13 +	.end	= 0x0064,
    1.14  	.flags	= IORESOURCE_BUSY | IORESOURCE_IO
    1.15  }, {
    1.16  	.name	= "dma page reg",
     2.1 --- a/arch/i386/kernel/setup.c	Thu Jul 24 14:16:04 2008 +0100
     2.2 +++ b/arch/i386/kernel/setup.c	Fri Jul 25 09:42:29 2008 +0100
     2.3 @@ -261,7 +261,12 @@ static struct resource standard_io_resou
     2.4  }, {
     2.5  	.name	= "keyboard",
     2.6  	.start	= 0x0060,
     2.7 -	.end	= 0x006f,
     2.8 +	.end	= 0x0060,
     2.9 +	.flags	= IORESOURCE_BUSY | IORESOURCE_IO
    2.10 +}, {
    2.11 +	.name	= "keyboard",
    2.12 +	.start	= 0x0064,
    2.13 +	.end	= 0x0064,
    2.14  	.flags	= IORESOURCE_BUSY | IORESOURCE_IO
    2.15  }, {
    2.16  	.name	= "dma page reg",
     3.1 --- a/arch/x86_64/kernel/setup-xen.c	Thu Jul 24 14:16:04 2008 +0100
     3.2 +++ b/arch/x86_64/kernel/setup-xen.c	Fri Jul 25 09:42:29 2008 +0100
     3.3 @@ -169,7 +169,9 @@ struct resource standard_io_resources[] 
     3.4  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
     3.5  	{ .name = "timer1", .start = 0x50, .end = 0x53,
     3.6  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
     3.7 -	{ .name = "keyboard", .start = 0x60, .end = 0x6f,
     3.8 +	{ .name = "keyboard", .start = 0x60, .end = 0x60,
     3.9 +		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
    3.10 +	{ .name = "keyboard", .start = 0x64, .end = 0x64,
    3.11  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
    3.12  	{ .name = "dma page reg", .start = 0x80, .end = 0x8f,
    3.13  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
     4.1 --- a/arch/x86_64/kernel/setup.c	Thu Jul 24 14:16:04 2008 +0100
     4.2 +++ b/arch/x86_64/kernel/setup.c	Fri Jul 25 09:42:29 2008 +0100
     4.3 @@ -122,7 +122,9 @@ struct resource standard_io_resources[] 
     4.4  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
     4.5  	{ .name = "timer1", .start = 0x50, .end = 0x53,
     4.6  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
     4.7 -	{ .name = "keyboard", .start = 0x60, .end = 0x6f,
     4.8 +	{ .name = "keyboard", .start = 0x60, .end = 0x60,
     4.9 +		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
    4.10 +	{ .name = "keyboard", .start = 0x64, .end = 0x64,
    4.11  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },
    4.12  	{ .name = "dma page reg", .start = 0x80, .end = 0x8f,
    4.13  		.flags = IORESOURCE_BUSY | IORESOURCE_IO },