vmwarefb 0.5.0
PATCH 1/1 vmwarefb 0.5.0
Hi,
this is the initial release (code is a few hours old) of a framebuffer driver for VMware SVGA display.
Successfully tested on Workstation 3.1 for Linux.
The patch applies against Linux 2.4.19-pre8.
Signature · 9 lines
Best regards,
Denis Oliver Kropp
.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"
Convergence GmbHCREDITS +1 -1
@@ -1660,7 +1660,7 @@ N: Denis O. Kropp E: [email protected] -D: NeoMagic framebuffer driver +D: NeoMagic and VMware framebuffer driver S: Badensche Str. 46 S: 10715 Berlin S: Germany
drivers/video/Config.in +14 -8
@@ -147,6 +147,7 @@ bool ' SIS 315H/315 support' CONFIG_FB_SIS_315 fi tristate ' NeoMagic display support (EXPERIMENTAL)' CONFIG_FB_NEOMAGIC + tristate ' VMware SVGA display support (EXPERIMENTAL)' CONFIG_FB_VMWARE_SVGA tristate ' 3Dfx Banshee/Voodoo3 display support (EXPERIMENTAL)' CONFIG_FB_3DFX tristate ' 3Dfx Voodoo Graphics (sst1) support (EXPERIMENTAL)' CONFIG_FB_VOODOO1 tristate ' Trident support (EXPERIMENTAL)' CONFIG_FB_TRIDENT
@@ -274,7 +275,8 @@ "$CONFIG_FB_SA1100" = "y" -o "$CONFIG_FB_3DFX" = "y" -o \ "$CONFIG_FB_PMAG_BA" = "y" -o "$CONFIG_FB_PMAGB_B" = "y" -o \ "$CONFIG_FB_MAXINE" = "y" -o "$CONFIG_FB_TX3912" = "y" -o \ - "$CONFIG_FB_SIS" = "y" -o "$CONFIG_FB_NEOMAGIC" = "y" ]; then + "$CONFIG_FB_SIS" = "y" -o "$CONFIG_FB_NEOMAGIC" = "y" -o \ + "$CONFIG_FB_VMWARE_SVGA" = "y" ]; then define_tristate CONFIG_FBCON_CFB8 y else if [ "$CONFIG_FB_ACORN" = "m" -o "$CONFIG_FB_ATARI" = "m" -o \
@@ -295,7 +297,8 @@ "$CONFIG_FB_PMAG_BA" = "m" -o "$CONFIG_FB_PMAGB_B" = "m" -o \ "$CONFIG_FB_MAXINE" = "m" -o "$CONFIG_FB_RADEON" = "m" -o \ "$CONFIG_FB_SA1100" = "m" -o "$CONFIG_FB_SIS" = "m" -o \ - "$CONFIG_FB_TX3912" = "m" -o "$CONFIG_FB_NEOMAGIC" = "m" ]; then + "$CONFIG_FB_TX3912" = "m" -o "$CONFIG_FB_NEOMAGIC" = "m" -o \ + "$CONFIG_FB_VMWARE_SVGA" = "m" ]; then define_tristate CONFIG_FBCON_CFB8 m fi fi
@@ -313,7 +316,7 @@ "$CONFIG_FB_CYBER2000" = "y" -o "$CONFIG_FB_3DFX" = "y" -o \ "$CONFIG_FB_SIS" = "y" -o "$CONFIG_FB_SA1100" = "y" -o \ "$CONFIG_FB_PVR2" = "y" -o "$CONFIG_FB_VOODOO1" = "y" -o \ - "$CONFIG_FB_NEOMAGIC" = "y" ]; then + "$CONFIG_FB_NEOMAGIC" = "y" -o "$CONFIG_FB_VMWARE_SVGA" = "y" ]; then define_tristate CONFIG_FBCON_CFB16 y else if [ "$CONFIG_FB_ATARI" = "m" -o "$CONFIG_FB_ATY" = "m" -o \
@@ -330,7 +333,7 @@ "$CONFIG_FB_CYBER2000" = "m" -o "$CONFIG_FB_SIS" = "m" -o \ "$CONFIG_FB_SA1100" = "m" -o "$CONFIG_FB_RADEON" = "m" -o \ "$CONFIG_FB_PVR2" = "m" -o "$CONFIG_FB_VOODOO1" = "m" -o \ - "$CONFIG_FB_NEOMAGIC" = "m" ]; then + "$CONFIG_FB_NEOMAGIC" = "m" -o "$CONFIG_FB_VMWARE_SVGA" = "m" ]; then define_tristate CONFIG_FBCON_CFB16 m fi fi
@@ -339,7 +342,8 @@ "$CONFIG_FB_MATROX" = "y" -o "$CONFIG_FB_PM2" = "y" -o \ "$CONFIG_FB_ATY128" = "y" -o "$CONFIG_FB_RADEON" = "y" -o \ "$CONFIG_FB_CYBER2000" = "y" -o "$CONFIG_FB_PVR2" = "y" -o \ - "$CONFIG_FB_VOODOO1" = "y" -o "$CONFIG_FB_NEOMAGIC" = "y" ]; then + "$CONFIG_FB_VOODOO1" = "y" -o "$CONFIG_FB_NEOMAGIC" = "y" -o \ + "$CONFIG_FB_VMWARE_SVGA" = "y" ]; then define_tristate CONFIG_FBCON_CFB24 y else if [ "$CONFIG_FB_ATY" = "m" -o "$CONFIG_FB_VIRTUAL" = "m" -o \
@@ -347,7 +351,8 @@ "$CONFIG_FB_MATROX" = "m" -o "$CONFIG_FB_PM2" = "m" -o \ "$CONFIG_FB_ATY128" = "m" -o "$CONFIG_FB_RADEON" = "m" -o \ "$CONFIG_FB_CYBER2000" = "m" -o "$CONFIG_FB_PVR2" = "m" -o \ - "$CONFIG_FB_VOODOO1" = "m" -o "$CONFIG_FB_NEOMAGIC" = "y" ]; then + "$CONFIG_FB_VOODOO1" = "m" -o "$CONFIG_FB_NEOMAGIC" = "y" -o \ + "$CONFIG_FB_VMWARE_SVGA" = "m" ]; then define_tristate CONFIG_FBCON_CFB24 m fi fi
@@ -361,7 +366,7 @@ "$CONFIG_FB_FM2" = "y" -o "$CONFIG_FB_SGIVW" = "y" -o \ "$CONFIG_FB_RADEON" = "y" -o "$CONFIG_FB_PVR2" = "y" -o \ "$CONFIG_FB_3DFX" = "y" -o "$CONFIG_FB_SIS" = "y" -o \ - "$CONFIG_FB_VOODOO1" = "y" ]; then + "$CONFIG_FB_VOODOO1" = "y" -o "$CONFIG_FB_VMWARE_SVGA" = "y" ]; then define_tristate CONFIG_FBCON_CFB32 y else if [ "$CONFIG_FB_ATARI" = "m" -o "$CONFIG_FB_ATY" = "m" -o \
@@ -373,7 +378,8 @@ "$CONFIG_FB_RIVA" = "m" -o "$CONFIG_FB_ATY128" = "m" -o \ "$CONFIG_FB_3DFX" = "m" -o "$CONFIG_FB_RADEON" = "m" -o \ "$CONFIG_FB_SGIVW" = "m" -o "$CONFIG_FB_SIS" = "m" -o \ - "$CONFIG_FB_PVR2" = "m" -o "$CONFIG_FB_VOODOO1" = "m" ]; then + "$CONFIG_FB_PVR2" = "m" -o "$CONFIG_FB_VOODOO1" = "m" -o \ + "$CONFIG_FB_VMWARE_SVGA" = "m" ]; then define_tristate CONFIG_FBCON_CFB32 m fi fi
drivers/video/Makefile +5 -0
@@ -99,6 +99,11 @@ obj-y += riva/rivafb.o endif +subdir-$(CONFIG_FB_VMWARE_SVGA) += vmware +ifeq ($(CONFIG_FB_VMWARE_SVGA),y) +obj-y += vmware/vmware.o +endif + subdir-$(CONFIG_FB_SIS) += sis ifeq ($(CONFIG_FB_SIS),y) obj-y += sis/sisfb.o
drivers/video/fbmem.c +5 -0
@@ -76,6 +76,8 @@extern int aty128fb_setup (char *);extern int neofb_init (void );extern int neofb_setup (char *); +extern int vmwarefb_init (void ); +extern int vmwarefb_setup (char *);extern int igafb_init (void );extern int igafb_setup (char *);extern int imsttfb_init (void );
@@ -187,6 +189,9 @@#endif #ifdef CONFIG_FB_NEOMAGIC { "neo", neofb_init, neofb_setup }, +#endif +#ifdef CONFIG_FB_VMWARE_SVGA + { "vmware", vmwarefb_init, vmwarefb_setup }, #endif #ifdef CONFIG_FB_VIRGE { "virge", virgefb_init, virgefb_setup },
drivers/video/vmware/Makefile +15 -0
@@ -0,0 +1,15 @@ +# +# Makefile for the VMware SVGA framebuffer driver +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# +# Note 2! The CFLAGS definitions are now in the main makefile... + +O_TARGET := vmware.o + +obj-y := vmwarefb.o +obj-m := $(O_TARGET) + +include $(TOPDIR)/Rules.make
drivers/video/vmware/guest_os.h +27 -0
@@ -0,0 +1,27 @@ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/guest_os.h,v 1.1 2001/04/05 19:29:44 dawes Exp $ */ +/* ********************************************************* +* Copyright (C) 1999-2001 VMware, Inc. +* All Rights Reserved +* Id: guest_os.h,v 1.5 2001/01/26 23:32:15 yoel Exp $ +* **********************************************************/ + +#ifndef _GUEST_OS_H_ +#define _GUEST_OS_H_ + +#define GUEST_OS_BASE 0x5000 + +#define GUEST_OS_DOS (GUEST_OS_BASE+1) +#define GUEST_OS_WIN31 (GUEST_OS_BASE+2) +#define GUEST_OS_WINDOWS95 (GUEST_OS_BASE+3) +#define GUEST_OS_WINDOWS98 (GUEST_OS_BASE+4) +#define GUEST_OS_WINDOWSME (GUEST_OS_BASE+5) +#define GUEST_OS_NT (GUEST_OS_BASE+6) +#define GUEST_OS_WIN2000 (GUEST_OS_BASE+7) +#define GUEST_OS_LINUX (GUEST_OS_BASE+8) +#define GUEST_OS_OS2 (GUEST_OS_BASE+9) +#define GUEST_OS_OTHER (GUEST_OS_BASE+10) +#define GUEST_OS_FREEBSD (GUEST_OS_BASE+11) +#define GUEST_OS_WHISTLER (GUEST_OS_BASE+12) + + +#endif
drivers/video/vmware/svga_limits.h +53 -0
53 lines not on this page · raw message
drivers/video/vmware/svga_reg.h +298 -0
298 lines not on this page · raw message
drivers/video/vmware/vmwarefb.c +1524 -0
1,524 lines not on this page · raw message
drivers/video/vmware/vmwarefb.h +192 -0
192 lines not on this page · raw message
include/linux/fb.h +2 -0
@@ -96,6 +96,8 @@#define FB_ACCEL_3DLABS_PERMEDIA3 37/* 3Dlabs Permedia 3 */ #define FB_ACCEL_ATI_RADEON 38/* ATI Radeon family */ +#define FB_ACCEL_VMWARE_SVGA 50/* VMware Virtual SVGA Graphics */ +#define FB_ACCEL_VMWARE_SVGA2 51/* VMware Virtual SVGA Graphics */ #define FB_ACCEL_NEOMAGIC_NM2070 90/* NeoMagic NM2070 */ #define FB_ACCEL_NEOMAGIC_NM2090 91/* NeoMagic NM2090 */