[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 05.12.12 at 19:19, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
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: Jan Beulich <jbeulich@xxxxxxxx>

> ---
>  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 */
> -- 
> 1.7.2.5



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.