|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/6] xen: infrastructure to have cross-platform video drivers
On Wed, 2012-12-05 at 18:19 +0000, Stefano Stabellini wrote:
> - introduce a new HAS_VIDEO config variable;
> - build xen/drivers/video/font* if HAS_VIDEO;
> - rename vga_puts to video_puts;
> - rename vga_init to video_init;
> - rename vga_endboot to video_endboot.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
For the general concept + arm specific bits (such as they are..)
> ---
> xen/arch/arm/Rules.mk | 1 +
> xen/arch/x86/Rules.mk | 1 +
> xen/drivers/Makefile | 2 +-
> xen/drivers/char/console.c | 12 ++++++------
> xen/drivers/video/Makefile | 10 +++++-----
> xen/drivers/video/vesa.c | 4 ++--
> xen/drivers/video/vga.c | 12 ++++++------
> xen/include/asm-x86/config.h | 1 +
> xen/include/xen/vga.h | 9 +--------
> xen/include/xen/video.h | 24 ++++++++++++++++++++++++
> 10 files changed, 48 insertions(+), 28 deletions(-)
> create mode 100644 xen/include/xen/video.h
>
> diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk
> index a45c654..fa9f9c1 100644
> --- a/xen/arch/arm/Rules.mk
> +++ b/xen/arch/arm/Rules.mk
> @@ -7,6 +7,7 @@
> #
>
> HAS_DEVICE_TREE := y
> +HAS_VIDEO := y
>
> CFLAGS += -fno-builtin -fno-common -Wredundant-decls
> CFLAGS += -iwithprefix include -Werror -Wno-pointer-arith -pipe
> diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
> index 963850f..0a9d68d 100644
> --- a/xen/arch/x86/Rules.mk
> +++ b/xen/arch/x86/Rules.mk
> @@ -3,6 +3,7 @@
>
> HAS_ACPI := y
> HAS_VGA := y
> +HAS_VIDEO := y
> HAS_CPUFREQ := y
> HAS_PCI := y
> HAS_PASSTHROUGH := y
> diff --git a/xen/drivers/Makefile b/xen/drivers/Makefile
> index 7239375..9c70f20 100644
> --- a/xen/drivers/Makefile
> +++ b/xen/drivers/Makefile
> @@ -3,4 +3,4 @@ subdir-$(HAS_CPUFREQ) += cpufreq
> subdir-$(HAS_PCI) += pci
> subdir-$(HAS_PASSTHROUGH) += passthrough
> subdir-$(HAS_ACPI) += acpi
> -subdir-$(HAS_VGA) += video
> +subdir-$(HAS_VIDEO) += video
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 9e1adb5..683271e 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -21,7 +21,7 @@
> #include <xen/delay.h>
> #include <xen/guest_access.h>
> #include <xen/shutdown.h>
> -#include <xen/vga.h>
> +#include <xen/video.h>
> #include <xen/kexec.h>
> #include <asm/debugger.h>
> #include <asm/div64.h>
> @@ -297,7 +297,7 @@ static void dump_console_ring_key(unsigned char key)
> buf[sofar] = '\0';
>
> sercon_puts(buf);
> - vga_puts(buf);
> + video_puts(buf);
>
> free_xenheap_pages(buf, order);
> }
> @@ -383,7 +383,7 @@ static long guest_console_write(XEN_GUEST_HANDLE(char)
> buffer, int count)
> spin_lock_irq(&console_lock);
>
> sercon_puts(kbuf);
> - vga_puts(kbuf);
> + video_puts(kbuf);
>
> if ( opt_console_to_ring )
> {
> @@ -464,7 +464,7 @@ static void __putstr(const char *str)
> ASSERT(spin_is_locked(&console_lock));
>
> sercon_puts(str);
> - vga_puts(str);
> + video_puts(str);
>
> if ( !console_locks_busted )
> {
> @@ -592,7 +592,7 @@ void __init console_init_preirq(void)
> if ( *p == ',' )
> p++;
> if ( !strncmp(p, "vga", 3) )
> - vga_init();
> + video_init();
> else if ( !strncmp(p, "none", 4) )
> continue;
> else if ( (sh = serial_parse_handle(p)) >= 0 )
> @@ -694,7 +694,7 @@ void __init console_endboot(void)
> printk("\n");
> }
>
> - vga_endboot();
> + video_endboot();
>
> /*
> * If user specifies so, we fool the switch routine to redirect input
> diff --git a/xen/drivers/video/Makefile b/xen/drivers/video/Makefile
> index 6c3e5b4..2993c39 100644
> --- a/xen/drivers/video/Makefile
> +++ b/xen/drivers/video/Makefile
> @@ -1,5 +1,5 @@
> -obj-y := vga.o
> -obj-$(CONFIG_X86) += font_8x14.o
> -obj-$(CONFIG_X86) += font_8x16.o
> -obj-$(CONFIG_X86) += font_8x8.o
> -obj-$(CONFIG_X86) += vesa.o
> +obj-$(HAS_VGA) := vga.o
> +obj-$(HAS_VIDEO) += font_8x14.o
> +obj-$(HAS_VIDEO) += font_8x16.o
> +obj-$(HAS_VIDEO) += font_8x8.o
> +obj-$(HAS_VGA) += vesa.o
> diff --git a/xen/drivers/video/vesa.c b/xen/drivers/video/vesa.c
> index 47cd3ed..759355f 100644
> --- a/xen/drivers/video/vesa.c
> +++ b/xen/drivers/video/vesa.c
> @@ -109,7 +109,7 @@ void __init vesa_init(void)
>
> lfb = memset((void *)IOREMAP_VIRT_START, 0, vram_remap);
>
> - vga_puts = vesa_redraw_puts;
> + video_puts = vesa_redraw_puts;
>
> printk(XENLOG_INFO "vesafb: framebuffer at %#x, mapped to 0x%p, "
> "using %uk, total %uk\n",
> @@ -194,7 +194,7 @@ void __init vesa_endboot(bool_t keep)
> if ( keep )
> {
> xpos = 0;
> - vga_puts = vesa_scroll_puts;
> + video_puts = vesa_scroll_puts;
> }
> else
> {
> diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c
> index a98bd00..40e5963 100644
> --- a/xen/drivers/video/vga.c
> +++ b/xen/drivers/video/vga.c
> @@ -21,7 +21,7 @@ static unsigned char *video;
>
> static void vga_text_puts(const char *s);
> static void vga_noop_puts(const char *s) {}
> -void (*vga_puts)(const char *) = vga_noop_puts;
> +void (*video_puts)(const char *) = vga_noop_puts;
>
> /*
> * 'vga=<mode-specifier>[,keep]' where <mode-specifier> is one of:
> @@ -62,7 +62,7 @@ void vesa_endboot(bool_t keep);
> #define vesa_endboot(x) ((void)0)
> #endif
>
> -void __init vga_init(void)
> +void __init video_init(void)
> {
> char *p;
>
> @@ -85,7 +85,7 @@ void __init vga_init(void)
> columns = vga_console_info.u.text_mode_3.columns;
> lines = vga_console_info.u.text_mode_3.rows;
> memset(video, 0, columns * lines * 2);
> - vga_puts = vga_text_puts;
> + video_puts = vga_text_puts;
> break;
> case XEN_VGATYPE_VESA_LFB:
> case XEN_VGATYPE_EFI_LFB:
> @@ -97,16 +97,16 @@ void __init vga_init(void)
> }
> }
>
> -void __init vga_endboot(void)
> +void __init video_endboot(void)
> {
> - if ( vga_puts == vga_noop_puts )
> + if ( video_puts == vga_noop_puts )
> return;
>
> printk("Xen is %s VGA console.\n",
> vgacon_keep ? "keeping" : "relinquishing");
>
> if ( !vgacon_keep )
> - vga_puts = vga_noop_puts;
> + video_puts = vga_noop_puts;
> else
> {
> int bus, devfn;
> diff --git a/xen/include/asm-x86/config.h b/xen/include/asm-x86/config.h
> index b69dbe6..2169627 100644
> --- a/xen/include/asm-x86/config.h
> +++ b/xen/include/asm-x86/config.h
> @@ -38,6 +38,7 @@
> #define CONFIG_ACPI_CSTATE 1
>
> #define CONFIG_VGA 1
> +#define CONFIG_VIDEO 1
>
> #define CONFIG_HOTPLUG 1
> #define CONFIG_HOTPLUG_CPU 1
> diff --git a/xen/include/xen/vga.h b/xen/include/xen/vga.h
> index cc690b9..f72b63d 100644
> --- a/xen/include/xen/vga.h
> +++ b/xen/include/xen/vga.h
> @@ -9,17 +9,10 @@
> #ifndef _XEN_VGA_H
> #define _XEN_VGA_H
>
> -#include <public/xen.h>
> +#include <xen/video.h>
>
> #ifdef CONFIG_VGA
> extern struct xen_vga_console_info vga_console_info;
> -void vga_init(void);
> -void vga_endboot(void);
> -extern void (*vga_puts)(const char *);
> -#else
> -#define vga_init() ((void)0)
> -#define vga_endboot() ((void)0)
> -#define vga_puts(s) ((void)0)
> #endif
>
> #endif /* _XEN_VGA_H */
> diff --git a/xen/include/xen/video.h b/xen/include/xen/video.h
> new file mode 100644
> index 0000000..e9bc92e
> --- /dev/null
> +++ b/xen/include/xen/video.h
> @@ -0,0 +1,24 @@
> +/*
> + * vga.h
> + *
> + * This file is subject to the terms and conditions of the GNU General
> Public
> + * License. See the file COPYING in the main directory of this archive
> + * for more details.
> + */
> +
> +#ifndef _XEN_VIDEO_H
> +#define _XEN_VIDEO_H
> +
> +#include <public/xen.h>
> +
> +#ifdef CONFIG_VIDEO
> +void video_init(void);
> +extern void (*video_puts)(const char *);
> +void video_endboot(void);
> +#else
> +#define video_init() ((void)0)
> +#define video_puts(s) ((void)0)
> +#define video_endboot() ((void)0)
> +#endif
> +
> +#endif /* _XEN_VIDEO_H */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |