[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86: retrieve keyboard shift status flags from BIOS
>>> On 21.09.12 at 18:34, Konrad Rzeszutek Wilk <konrad@xxxxxxxxxx> wrote: > And here is a variant for the upstream: > > From 21b4fdf0592156ac3020f5c492139368dcdfcf71 Mon Sep 17 00:00:00 2001 > From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > Date: Fri, 21 Sep 2012 12:30:35 -0400 > Subject: [PATCH] xen/x86: retrieve keyboard shift status flags from > hypervisor. > > The xen c/s 25873 allows the hypervisor to retrieve the NUMLOCK flag. > With this patch, the Linux kernel can get the state according to the > data in the BIOS. > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> (but also see below) > --- a/arch/x86/xen/enlighten.c > +++ b/arch/x86/xen/enlighten.c > @@ -1441,11 +1441,19 @@ asmlinkage void __init xen_start_kernel(void) > const struct dom0_vga_console_info *info = > (void *)((char *)xen_start_info + > xen_start_info->console.dom0.info_off); > + struct xen_platform_op op = { > + .cmd = XENPF_firmware_info, > + .interface_version = XENPF_INTERFACE_VERSION, > + .u.firmware_info.type = XEN_FW_KBD_SHIFT_FLAGS, > + }; > > xen_init_vga(info, xen_start_info->console.dom0.info_size); > xen_start_info->console.domU.mfn = 0; > xen_start_info->console.domU.evtchn = 0; > > + if (HYPERVISOR_dom0_op(&op) == 0) > + boot_params.kbd_status = > op.u.firmware_info.u.kbd_shift_flags; > + > xen_init_apic(); > > /* Make sure ACS will be enabled */ > diff --git a/include/xen/interface/platform.h > b/include/xen/interface/platform.h > index 61fa661..81eee3b 100644 > --- a/include/xen/interface/platform.h > +++ b/include/xen/interface/platform.h > @@ -112,6 +112,7 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_platform_quirk_t); > #define XEN_FW_DISK_INFO 1 /* from int 13 AH=08/41/48 */ > #define XEN_FW_DISK_MBR_SIGNATURE 2 /* from MBR offset 0x1b8 */ > #define XEN_FW_VBEDDC_INFO 3 /* from int 10 AX=4f15 */ > +#define XEN_FW_KBD_SHIFT_FLAGS 5 /* Int16, Fn02: Get keyboard shift > flags. */ > struct xenpf_firmware_info { > /* IN variables. */ > uint32_t type; > @@ -142,6 +143,8 @@ struct xenpf_firmware_info { > /* must refer to 128-byte buffer */ > GUEST_HANDLE(uchar) edid; > } vbeddc_info; /* XEN_FW_VBEDDC_INFO */ > + uint8_t kbd_shift_flags; /* XEN_FW_KBD_SHIFT_FLAGS */ > + I'd prefer to not have stray empty line here - if anything, it should go before the new union member. Jan > } u; > }; > DEFINE_GUEST_HANDLE_STRUCT(xenpf_firmware_info_t); > -- > 1.7.7.6 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |