]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
x86: restrict keyboard io ports reservation to make ipmi driver work
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 25 Jul 2008 08:42:29 +0000 (09:42 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 25 Jul 2008 08:42:29 +0000 (09:42 +0100)
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>
arch/i386/kernel/setup-xen.c
arch/i386/kernel/setup.c
arch/x86_64/kernel/setup-xen.c
arch/x86_64/kernel/setup.c

index d389ffeb4c1f40fed8cc40ecdb42574721dbe235..f7e17485f598802db5fd3c0b2c2dcadb71e68cf0 100644 (file)
@@ -283,7 +283,12 @@ static struct resource standard_io_resources[] = { {
 }, {
        .name   = "keyboard",
        .start  = 0x0060,
-       .end    = 0x006f,
+       .end    = 0x0060,
+       .flags  = IORESOURCE_BUSY | IORESOURCE_IO
+}, {
+       .name   = "keyboard",
+       .start  = 0x0064,
+       .end    = 0x0064,
        .flags  = IORESOURCE_BUSY | IORESOURCE_IO
 }, {
        .name   = "dma page reg",
index f5d6f8d081bdfe00934d7d5ffd9bd751513c50bd..ca31d02accbfcb44c1ecf8b41fe57ee7ef3dd6ab 100644 (file)
@@ -261,7 +261,12 @@ static struct resource standard_io_resources[] = { {
 }, {
        .name   = "keyboard",
        .start  = 0x0060,
-       .end    = 0x006f,
+       .end    = 0x0060,
+       .flags  = IORESOURCE_BUSY | IORESOURCE_IO
+}, {
+       .name   = "keyboard",
+       .start  = 0x0064,
+       .end    = 0x0064,
        .flags  = IORESOURCE_BUSY | IORESOURCE_IO
 }, {
        .name   = "dma page reg",
index 90cc2e9d66a87edceb3618ace69c2d201d9e3002..10ac4bb24a26f167236b7fdc3cc410743af0dad7 100644 (file)
@@ -169,7 +169,9 @@ struct resource standard_io_resources[] = {
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
        { .name = "timer1", .start = 0x50, .end = 0x53,
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
-       { .name = "keyboard", .start = 0x60, .end = 0x6f,
+       { .name = "keyboard", .start = 0x60, .end = 0x60,
+               .flags = IORESOURCE_BUSY | IORESOURCE_IO },
+       { .name = "keyboard", .start = 0x64, .end = 0x64,
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
        { .name = "dma page reg", .start = 0x80, .end = 0x8f,
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
index ffcb9e40817e013b960fd285cc249965f4467670..38767e135f3ab632caf44eb9c5fda9942f346f7b 100644 (file)
@@ -122,7 +122,9 @@ struct resource standard_io_resources[] = {
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
        { .name = "timer1", .start = 0x50, .end = 0x53,
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
-       { .name = "keyboard", .start = 0x60, .end = 0x6f,
+       { .name = "keyboard", .start = 0x60, .end = 0x60,
+               .flags = IORESOURCE_BUSY | IORESOURCE_IO },
+       { .name = "keyboard", .start = 0x64, .end = 0x64,
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },
        { .name = "dma page reg", .start = 0x80, .end = 0x8f,
                .flags = IORESOURCE_BUSY | IORESOURCE_IO },