[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 |