From 44d6df631ef23a264d59756fc43b929a3828c412 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Wed, 5 Sep 2012 10:31:57 +0200 Subject: [PATCH] kvm tools: kbd initialization check Check if i8042 is supported only within the initialization call itself, so that builtin-run won't need to know which archs are supported by it. Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- tools/kvm/builtin-run.c | 8 +++++--- tools/kvm/hw/i8042.c | 8 +++++++- tools/kvm/include/kvm/i8042.h | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index 3d89b75d46ec..56639e25b380 100644 --- a/tools/kvm/builtin-run.c +++ b/tools/kvm/builtin-run.c @@ -818,9 +818,11 @@ static int kvm_cmd_run_init(int argc, const char **argv) kvm__init_ram(kvm); -#ifdef CONFIG_X86 - kbd__init(kvm); -#endif + r = kbd__init(kvm); + if (r < 0) { + pr_err("kbd__init() failed with error %d\n", r); + goto fail; + } r = pci_shmem__init(kvm); if (r < 0) { diff --git a/tools/kvm/hw/i8042.c b/tools/kvm/hw/i8042.c index 40f8a38721e2..fac54ca1f3d5 100644 --- a/tools/kvm/hw/i8042.c +++ b/tools/kvm/hw/i8042.c @@ -339,10 +339,16 @@ static struct ioport_operations kbd_ops = { .io_out = kbd_out, }; -void kbd__init(struct kvm *kvm) +int kbd__init(struct kvm *kvm) { +#ifndef CONFIG_X86 + return 0; +#endif + kbd_reset(); state.kvm = kvm; ioport__register(I8042_DATA_REG, &kbd_ops, 2, NULL); ioport__register(I8042_COMMAND_REG, &kbd_ops, 2, NULL); + + return 0; } diff --git a/tools/kvm/include/kvm/i8042.h b/tools/kvm/include/kvm/i8042.h index 13f18e2c0002..3b4ab688b840 100644 --- a/tools/kvm/include/kvm/i8042.h +++ b/tools/kvm/include/kvm/i8042.h @@ -7,6 +7,6 @@ struct kvm; void mouse_queue(u8 c); void kbd_queue(u8 c); -void kbd__init(struct kvm *kvm); +int kbd__init(struct kvm *kvm); #endif -- 2.39.5