Commit aa387d63 authored by Jan Beulich's avatar Jan Beulich Committed by Konrad Rzeszutek Wilk

xen/vga: add the xen EFI video mode support

In order to add xen EFI frambebuffer video support, it is required to add
xen-efi's new video type (XEN_VGATYPE_EFI_LFB) case and handle it in the
function xen_init_vga and set the video type to VIDEO_TYPE_EFI to enable
efi video mode.

The original patch from which this was broken out from:
 http://marc.info/?i=4E099AA6020000780004A4C6@nat28.tlf.novell.comSigned-off-by: default avatarJan Beulich <JBeulich@novell.com>
Signed-off-by: default avatarTang Liang <liang.tang@oracle.com>
[v2: The original author is Jan Beulich and Liang Tang ported it to upstream]
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent ffb8b233
...@@ -35,6 +35,7 @@ void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size) ...@@ -35,6 +35,7 @@ void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size)
info->u.text_mode_3.font_height; info->u.text_mode_3.font_height;
break; break;
case XEN_VGATYPE_EFI_LFB:
case XEN_VGATYPE_VESA_LFB: case XEN_VGATYPE_VESA_LFB:
if (size < offsetof(struct dom0_vga_console_info, if (size < offsetof(struct dom0_vga_console_info,
u.vesa_lfb.gbl_caps)) u.vesa_lfb.gbl_caps))
...@@ -54,6 +55,12 @@ void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size) ...@@ -54,6 +55,12 @@ void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size)
screen_info->blue_pos = info->u.vesa_lfb.blue_pos; screen_info->blue_pos = info->u.vesa_lfb.blue_pos;
screen_info->rsvd_size = info->u.vesa_lfb.rsvd_size; screen_info->rsvd_size = info->u.vesa_lfb.rsvd_size;
screen_info->rsvd_pos = info->u.vesa_lfb.rsvd_pos; screen_info->rsvd_pos = info->u.vesa_lfb.rsvd_pos;
if (info->video_type == XEN_VGATYPE_EFI_LFB) {
screen_info->orig_video_isVGA = VIDEO_TYPE_EFI;
break;
}
if (size >= offsetof(struct dom0_vga_console_info, if (size >= offsetof(struct dom0_vga_console_info,
u.vesa_lfb.gbl_caps) u.vesa_lfb.gbl_caps)
+ sizeof(info->u.vesa_lfb.gbl_caps)) + sizeof(info->u.vesa_lfb.gbl_caps))
......
...@@ -454,6 +454,7 @@ struct dom0_vga_console_info { ...@@ -454,6 +454,7 @@ struct dom0_vga_console_info {
uint8_t video_type; uint8_t video_type;
#define XEN_VGATYPE_TEXT_MODE_3 0x03 #define XEN_VGATYPE_TEXT_MODE_3 0x03
#define XEN_VGATYPE_VESA_LFB 0x23 #define XEN_VGATYPE_VESA_LFB 0x23
#define XEN_VGATYPE_EFI_LFB 0x70
union { union {
struct { struct {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment