[PATCH 62/82] remove linux/version.h from drivers/video/sis

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



changing CONFIG_LOCALVERSION rebuilds too much, for no appearent reason.

remove code for obsolete kernels:
#error "This version of sisfb requires at least 2.6.3"

FBCON_HAS_CFB8, FBCON_HAS_CFB16 and FBCON_HAS_CFB32 is appearently from 2.4

there is odd code like:
-          outSISIDXREG(SISSR,0x14,0x??);  /* 8MB, 64bit default */
+          outSISIDXREG(SISSR,0x14,0x00);  /* 8MB, 64bit default */


Signed-off-by: Olaf Hering <[email protected]>

drivers/video/sis/init.h      |    5
drivers/video/sis/init301.h   |    5
drivers/video/sis/sis.h       |   46 --
drivers/video/sis/sis_accel.c |  171 ---------
drivers/video/sis/sis_accel.h |   13
drivers/video/sis/sis_main.c  |  784 ------------------------------------------
drivers/video/sis/sis_main.h  |   55 --
drivers/video/sis/vgatypes.h  |    3
8 files changed, 1 insertion(+), 1081 deletions(-)

Index: linux-2.6.13-rc2-mm1/drivers/video/sis/init.h
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/init.h
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/init.h
@@ -68,16 +68,11 @@
#undef SIS_CP
#endif
#include <linux/config.h>
-#include <linux/version.h>
#include <linux/types.h>
#include <asm/io.h>
#include <linux/fb.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#include <linux/sisfb.h>
-#else
#include <video/sisfb.h>
#endif
-#endif

/* Mode numbers */
static const USHORT ModeIndex_320x200[]      = {0x59, 0x41, 0x00, 0x4f};
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/init301.h
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/init301.h
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/init301.h
@@ -68,15 +68,10 @@
#undef SIS_CP
#endif
#include <linux/config.h>
-#include <linux/version.h>
#include <asm/io.h>
#include <linux/types.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#include <linux/sisfb.h>
-#else
#include <video/sisfb.h>
#endif
-#endif

static const UCHAR SiS_YPbPrTable[3][64] = {
{
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/sis.h
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/sis.h
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/sis.h
@@ -23,14 +23,9 @@
#define _SIS_H

#include <linux/config.h>
-#include <linux/version.h>

#include "osdef.h"
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#include <video/sisfb.h>
-#else
-#include <linux/sisfb.h>
-#endif

#include "vgatypes.h"
#include "vstruct.h"
@@ -41,29 +36,15 @@

#undef SIS_CONFIG_COMPAT

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#include <linux/spinlock.h>
#ifdef CONFIG_COMPAT
#include <linux/ioctl32.h>
#define SIS_CONFIG_COMPAT
#endif
-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,19)
-#ifdef __x86_64__
-/* Shouldn't we check for CONFIG_IA32_EMULATION here? */
-#include <asm/ioctl32.h>
-#define SIS_CONFIG_COMPAT
-#endif
-#endif

-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
#define SIS_IOTYPE1 void __iomem
#define SIS_IOTYPE2 __iomem
#define SISINITSTATIC static
-#else
-#define SIS_IOTYPE1 unsigned char
-#define SIS_IOTYPE2
-#define SISINITSTATIC
-#endif

#undef SISFBDEBUG

@@ -382,26 +363,8 @@ struct sis_video_info {

struct fb_var_screeninfo default_var;

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
struct fb_fix_screeninfo sisfb_fix;
u32 		pseudo_palette[17];
-#endif
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	struct display 		 sis_disp;
-	struct display_switch 	 sisfb_sw;
-	struct {
-		u16 red, green, blue, pad;
-	} 		sis_palette[256];
-	union {
-#ifdef FBCON_HAS_CFB16
-		u16 cfb16[16];
-#endif
-#ifdef FBCON_HAS_CFB32
-		u32 cfb32[16];
-#endif
-	} 		sis_fbcon_cmap;
-#endif

struct sisfb_monitor {
u16 hmin;
@@ -420,10 +383,6 @@ struct sis_video_info {

int		mni;	/* Mode number index */

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	int  		currcon;
-#endif
-
unsigned long	video_size;
unsigned long 	video_base;
unsigned long	mmio_size;
@@ -457,9 +416,6 @@ struct sis_video_info {
int		sisfb_tvstd;
int		sisfb_filter;
int		sisfb_nocrt2rate;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	int		sisfb_inverse;
-#endif

u32 		heapstart;        	/* offset  */
SIS_IOTYPE1  	*sisfb_heap_start; 	/* address */
@@ -520,9 +476,7 @@ struct sis_video_info {
int    		modechanged;
unsigned char 	modeprechange;

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
u8 		sisfb_lastrates[128];
-#endif

int  		newrom;
int  		registered;
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/sis_accel.c
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/sis_accel.c
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/sis_accel.c
@@ -27,7 +27,6 @@
*/

#include <linux/config.h>
-#include <linux/version.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
@@ -41,14 +40,6 @@

#include <asm/io.h>

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#include <video/fbcon.h>
-#include <video/fbcon-cfb8.h>
-#include <video/fbcon-cfb16.h>
-#include <video/fbcon-cfb24.h>
-#include <video/fbcon-cfb32.h>
-#endif
-
#include "sis.h"
#include "sis_accel.h"

@@ -92,11 +83,9 @@ static const u8 sisPatALUConv[] =
0xFF,       /* dest = 0xFF;         1,      GXset,          0xF */
};

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34)
static const int myrops[] = {
3, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
};
-#endif

/* 300 series ----------------------------------------------------- */
#ifdef CONFIG_FB_SIS_300
@@ -312,8 +301,6 @@ void sisfb_syncaccel(struct sis_video_in
}
}

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)  /* --------------- 2.5 --------------- */
-
int fbcon_sis_sync(struct fb_info *info)
{
struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
@@ -447,71 +434,6 @@ void fbcon_sis_copyarea(struct fb_info *
}
}

-#endif
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)  /* -------------- 2.4 --------------- */
-
-void fbcon_sis_bmove(struct display *p, int srcy, int srcx,
-			    int dsty, int dstx, int height, int width)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)p->fb_info->par;
-
-	CRITFLAGS
-
-	if(!ivideo->accel) {
-	    switch(ivideo->video_bpp) {
-	    case 8:
-#ifdef FBCON_HAS_CFB8
-	       fbcon_cfb8_bmove(p, srcy, srcx, dsty, dstx, height, width);
-#endif
-	       break;
-	    case 16:
-#ifdef FBCON_HAS_CFB16
-	       fbcon_cfb16_bmove(p, srcy, srcx, dsty, dstx, height, width);
-#endif
-	       break;
-	    case 32:
-#ifdef FBCON_HAS_CFB32
-	       fbcon_cfb32_bmove(p, srcy, srcx, dsty, dstx, height, width);
-#endif
-	       break;
-            }
-	    return;
-	}
-
-	srcx *= fontwidth(p);
-	srcy *= fontheight(p);
-	dstx *= fontwidth(p);
-	dsty *= fontheight(p);
-	width *= fontwidth(p);
-	height *= fontheight(p);
-
-	if(ivideo->sisvga_engine == SIS_300_VGA) {
-#ifdef CONFIG_FB_SIS_300
-	   int xdir, ydir;
-
-	   if(srcx < dstx) xdir = 0;
-	   else            xdir = 1;
-	   if(srcy < dsty) ydir = 0;
-	   else            ydir = 1;
-
-	   CRITBEGIN
-	   SiS300SetupForScreenToScreenCopy(ivideo, xdir, ydir, 3, -1);
-	   SiS300SubsequentScreenToScreenCopy(ivideo, srcx, srcy, dstx, dsty, width, height);
-	   CRITEND
-	   SiS300Sync(ivideo);
-#endif
-	} else {
-#ifdef CONFIG_FB_SIS_315
-	   CRITBEGIN
-	   SiS310SetupForScreenToScreenCopy(ivideo, 3, -1);
-	   SiS310SubsequentScreenToScreenCopy(ivideo, srcx, srcy, dstx, dsty, width, height);
-	   CRITEND
-	   SiS310Sync(ivideo);
-#endif
-	}
-}
-
static void fbcon_sis_clear(struct vc_data *conp, struct display *p,
int srcy, int srcx, int height, int width, int color)
{
@@ -549,9 +471,6 @@ void fbcon_sis_clear8(struct vc_data *co
u32 bgx;

if(!ivideo->accel) {
-#ifdef FBCON_HAS_CFB8
-	    fbcon_cfb8_clear(conp, p, srcy, srcx, height, width);
-#endif
return;
}

@@ -566,9 +485,6 @@ void fbcon_sis_clear16(struct vc_data *c
u32 bgx;

if(!ivideo->accel) {
-#ifdef FBCON_HAS_CFB16
-	    fbcon_cfb16_clear(conp, p, srcy, srcx, height, width);
-#endif
return;
}

@@ -583,96 +499,9 @@ void fbcon_sis_clear32(struct vc_data *c
u32 bgx;

if(!ivideo->accel) {
-#ifdef FBCON_HAS_CFB32
-	    fbcon_cfb32_clear(conp, p, srcy, srcx, height, width);
-#endif
return;
}

bgx = ((u_int32_t*)p->dispsw_data)[attr_bgcol_ec(p, conp)];
fbcon_sis_clear(conp, p, srcy, srcx, height, width, bgx);
}
-
-void fbcon_sis_revc(struct display *p, int srcx, int srcy)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)p->fb_info->par;
-	CRITFLAGS
-
-	if(!ivideo->accel) {
-	    switch(ivideo->video_bpp) {
-	    case 16:
-#ifdef FBCON_HAS_CFB16
-	       fbcon_cfb16_revc(p, srcx, srcy);
-#endif
-	       break;
-	    case 32:
-#ifdef FBCON_HAS_CFB32
-	       fbcon_cfb32_revc(p, srcx, srcy);
-#endif
-	       break;
-            }
-	    return;
-	}
-
-	srcx *= fontwidth(p);
-	srcy *= fontheight(p);
-
-	if(ivideo->sisvga_engine == SIS_300_VGA) {
-#ifdef CONFIG_FB_SIS_300
-	   CRITBEGIN
-	   SiS300SetupForSolidFill(ivideo, 0, 0x0a);
-	   SiS300SubsequentSolidFillRect(ivideo, srcx, srcy, fontwidth(p), fontheight(p));
-	   CRITEND
-	   SiS300Sync(ivideo);
-#endif
-	} else {
-#ifdef CONFIG_FB_SIS_315
-	   CRITBEGIN
-	   SiS310SetupForSolidFill(ivideo, 0, 0x0a);
-	   SiS310SubsequentSolidFillRect(ivideo, srcx, srcy, fontwidth(p), fontheight(p));
-	   CRITEND
-	   SiS310Sync(ivideo);
-#endif
-	}
-}
-
-#ifdef FBCON_HAS_CFB8
-struct display_switch fbcon_sis8 = {
-	.setup		= fbcon_cfb8_setup,
-	.bmove		= fbcon_sis_bmove,
-	.clear		= fbcon_sis_clear8,
-	.putc		= fbcon_cfb8_putc,
-	.putcs		= fbcon_cfb8_putcs,
-	.revc		= fbcon_cfb8_revc,
-	.clear_margins	= fbcon_cfb8_clear_margins,
-	.fontwidthmask	= FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16)
-};
-#endif
-#ifdef FBCON_HAS_CFB16
-struct display_switch fbcon_sis16 = {
-	.setup		= fbcon_cfb16_setup,
-	.bmove		= fbcon_sis_bmove,
-	.clear		= fbcon_sis_clear16,
-	.putc		= fbcon_cfb16_putc,
-	.putcs		= fbcon_cfb16_putcs,
-	.revc		= fbcon_sis_revc,
-	.clear_margins	= fbcon_cfb16_clear_margins,
-	.fontwidthmask	= FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16)
-};
-#endif
-#ifdef FBCON_HAS_CFB32
-struct display_switch fbcon_sis32 = {
-	.setup		= fbcon_cfb32_setup,
-	.bmove		= fbcon_sis_bmove,
-	.clear		= fbcon_sis_clear32,
-	.putc		= fbcon_cfb32_putc,
-	.putcs		= fbcon_cfb32_putcs,
-	.revc		= fbcon_sis_revc,
-	.clear_margins	= fbcon_cfb32_clear_margins,
-	.fontwidthmask	= FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16)
-};
-#endif
-
-#endif /* KERNEL VERSION */
-
-
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/sis_accel.h
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/sis_accel.h
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/sis_accel.h
@@ -390,20 +390,7 @@
int  sisfb_initaccel(struct sis_video_info *ivideo);
void sisfb_syncaccel(struct sis_video_info *ivideo);

-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,33)
-void fbcon_sis_bmove(struct display *p, int srcy, int srcx, int dsty,
-			int dstx, int height, int width);
-void fbcon_sis_revc(struct display *p, int srcy, int srcx);
-void fbcon_sis_clear8(struct vc_data *conp, struct display *p, int srcy,
-			int srcx, int height, int width);
-void fbcon_sis_clear16(struct vc_data *conp, struct display *p, int srcy,
-			int srcx, int height, int width);
-void fbcon_sis_clear32(struct vc_data *conp, struct display *p, int srcy,
-			int srcx, int height, int width);
-#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34)
void fbcon_sis_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
void fbcon_sis_copyarea(struct fb_info *info, const struct fb_copyarea *area);
-#endif

#endif
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/sis_main.c
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/sis_main.c
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/sis_main.c
@@ -33,11 +33,8 @@
*/

#include <linux/config.h>
-#include <linux/version.h>
#include <linux/module.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#include <linux/moduleparam.h>
-#endif
#include <linux/kernel.h>
#include <linux/smp_lock.h>
#include <linux/spinlock.h>
@@ -65,35 +62,9 @@
#include <asm/mtrr.h>
#endif

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#include <video/fbcon.h>
-#include <video/fbcon-cfb8.h>
-#include <video/fbcon-cfb16.h>
-#include <video/fbcon-cfb24.h>
-#include <video/fbcon-cfb32.h>
-#endif
-
#include "sis.h"
#include "sis_main.h"

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3)
-#error "This version of sisfb requires at least 2.6.3"
-#endif
-#endif
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#ifdef FBCON_HAS_CFB8
-extern struct display_switch fbcon_sis8;
-#endif
-#ifdef FBCON_HAS_CFB16
-extern struct display_switch fbcon_sis16;
-#endif
-#ifdef FBCON_HAS_CFB32
-extern struct display_switch fbcon_sis32;
-#endif
-#endif
-
/* ------------------ Internal helper routines ----------------- */

static void __init
@@ -106,17 +77,7 @@ sisfb_setdefaultparms(void)
sisfb_max 		= -1;
sisfb_userom    	= -1;
sisfb_useoem    	= -1;
-#ifdef MODULE
-	/* Module: "None" for 2.4, default mode for 2.5+ */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-	sisfb_mode_idx 		= -1;
-#else
-	sisfb_mode_idx  	= MODE_INDEX_NONE;
-#endif
-#else
-	/* Static: Default mode */
sisfb_mode_idx  	= -1;
-#endif
sisfb_parm_rate 	= -1;
sisfb_crt1off 		= 0;
sisfb_forcecrt1 	= -1;
@@ -135,10 +96,6 @@ sisfb_setdefaultparms(void)
sisfb_tvyposoffset 	= 0;
sisfb_filter 		= -1;
sisfb_nocrt2rate 	= 0;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	sisfb_inverse   	= 0;
-	sisfb_fontname[0] 	= 0;
-#endif
#if !defined(__i386__) && !defined(__x86_64__)
sisfb_resetcard 	= 0;
sisfb_videoram  	= 0;
@@ -153,14 +110,10 @@ sisfb_search_vesamode(unsigned int vesam
/* BEWARE: We don't know the hardware specs yet and there is no ivideo */

if(vesamode == 0) {
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-		sisfb_mode_idx = MODE_INDEX_NONE;
-#else
if(!quiet) {
printk(KERN_ERR "sisfb: Invalid mode. Using default.n");
}
sisfb_mode_idx = DEFAULT_MODE;
-#endif
return;
}

@@ -203,7 +156,6 @@ sisfb_search_mode(char *name, BOOLEAN qu
return;
}

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
if(!strnicmp(name, sisbios_mode[MODE_INDEX_NONE].name, strlen(name))) {
if(!quiet) {
printk(KERN_ERR "sisfb: Mode 'none' not supported anymore. Using default.n");
@@ -211,7 +163,6 @@ sisfb_search_mode(char *name, BOOLEAN qu
sisfb_mode_idx = DEFAULT_MODE;
return;
}
-#endif
if(strlen(name) <= 19) {
strcpy(strbuf1, name);
for(i=0; i<strlen(strbuf1); i++) {
@@ -1129,20 +1080,7 @@ sisfb_do_set_var(struct fb_var_screeninf
ivideo->refresh_rate = 60;
}

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	if(ivideo->sisfb_thismonitor.datavalid) {
-	   if(!sisfb_verify_rate(ivideo, &ivideo->sisfb_thismonitor, ivideo->sisfb_mode_idx,
-	                         ivideo->rate_idx, ivideo->refresh_rate)) {
-	      printk(KERN_INFO "sisfb: WARNING: Refresh rate exceeds monitor specs!n");
-	   }
-	}
-#endif
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	if(((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) && isactive) {
-#else
if(isactive) {
-#endif
sisfb_pre_setmode(ivideo);

if(SiSSetMode(&ivideo->SiS_Pr, &ivideo->sishw_ext, ivideo->mode_no) == 0) {
@@ -1185,9 +1123,7 @@ sisfb_do_set_var(struct fb_var_screeninf
ivideo->current_linelength = ivideo->video_linelength;
ivideo->current_pixclock = var->pixclock;
ivideo->current_refresh_rate = ivideo->refresh_rate;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
ivideo->sisfb_lastrates[ivideo->mode_no] = ivideo->refresh_rate;
-#endif
}

return 0;
@@ -1240,524 +1176,6 @@ sisfb_pan_var(struct sis_video_info *ivi
return 0;
}

-/* ------------ FBDev related routines for 2.4 series ----------- */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-
-static void
-sisfb_crtc_to_var(struct sis_video_info *ivideo, struct fb_var_screeninfo *var)
-{
-	u16 VRE, VBE, VRS, VBS, VDE, VT;
-	u16 HRE, HBE, HRS, HBS, HDE, HT;
-	u8  sr_data, cr_data, cr_data2, cr_data3, mr_data;
-	int A, B, C, D, E, F, temp;
-	unsigned int hrate, drate, maxyres;
-
-	inSISIDXREG(SISSR, IND_SIS_COLOR_MODE, sr_data);
-
-	if(sr_data & SIS_INTERLACED_MODE)
-	   var->vmode = FB_VMODE_INTERLACED;
-	else
-	   var->vmode = FB_VMODE_NONINTERLACED;
-
-	switch((sr_data & 0x1C) >> 2) {
-	case SIS_8BPP_COLOR_MODE:
-		var->bits_per_pixel = 8;
-		break;
-	case SIS_16BPP_COLOR_MODE:
-		var->bits_per_pixel = 16;
-		break;
-	case SIS_32BPP_COLOR_MODE:
-		var->bits_per_pixel = 32;
-		break;
-	}
-
-	sisfb_bpp_to_var(ivideo, var);
-
-	inSISIDXREG(SISSR, 0x0A, sr_data);
-        inSISIDXREG(SISCR, 0x06, cr_data);
-        inSISIDXREG(SISCR, 0x07, cr_data2);
-
-	VT = (cr_data & 0xFF) |
-	     ((u16) (cr_data2 & 0x01) << 8) |
-	     ((u16) (cr_data2 & 0x20) << 4) |
-	     ((u16) (sr_data  & 0x01) << 10);
-	A = VT + 2;
-
-	inSISIDXREG(SISCR, 0x12, cr_data);
-
-	VDE = (cr_data & 0xff) |
-	      ((u16) (cr_data2 & 0x02) << 7) |
-	      ((u16) (cr_data2 & 0x40) << 3) |
-	      ((u16) (sr_data  & 0x02) << 9);
-	E = VDE + 1;
-
-	inSISIDXREG(SISCR, 0x10, cr_data);
-
-	VRS = (cr_data & 0xff) |
-	      ((u16) (cr_data2 & 0x04) << 6) |
-	      ((u16) (cr_data2 & 0x80) << 2) |
-	      ((u16) (sr_data  & 0x08) << 7);
-	F = VRS + 1 - E;
-
-	inSISIDXREG(SISCR, 0x15, cr_data);
-	inSISIDXREG(SISCR, 0x09, cr_data3);
-
-	if(cr_data3 & 0x80) var->vmode = FB_VMODE_DOUBLE;
-
-	VBS = (cr_data & 0xff) |
-	      ((u16) (cr_data2 & 0x08) << 5) |
-	      ((u16) (cr_data3 & 0x20) << 4) |
-	      ((u16) (sr_data & 0x04) << 8);
-
-	inSISIDXREG(SISCR, 0x16, cr_data);
-
-	VBE = (cr_data & 0xff) | ((u16) (sr_data & 0x10) << 4);
-	temp = VBE - ((E - 1) & 511);
-	B = (temp > 0) ? temp : (temp + 512);
-
-	inSISIDXREG(SISCR, 0x11, cr_data);
-
-	VRE = (cr_data & 0x0f) | ((sr_data & 0x20) >> 1);
-	temp = VRE - ((E + F - 1) & 31);
-	C = (temp > 0) ? temp : (temp + 32);
-
-	D = B - F - C;
-
-        var->yres = E;
-	var->upper_margin = D;
-	var->lower_margin = F;
-	var->vsync_len = C;
-
-	if((var->vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED) {
-	   var->yres <<= 1;
-	   var->upper_margin <<= 1;
-	   var->lower_margin <<= 1;
-	   var->vsync_len <<= 1;
-	} else if((var->vmode & FB_VMODE_MASK) == FB_VMODE_DOUBLE) {
-	   var->yres >>= 1;
-	   var->upper_margin >>= 1;
-	   var->lower_margin >>= 1;
-	   var->vsync_len >>= 1;
-	}
-
-	inSISIDXREG(SISSR, 0x0b, sr_data);
-	inSISIDXREG(SISCR, 0x00, cr_data);
-
-	HT = (cr_data & 0xff) | ((u16) (sr_data & 0x03) << 8);
-	A = HT + 5;
-
-	inSISIDXREG(SISCR, 0x01, cr_data);
-
-	HDE = (cr_data & 0xff) | ((u16) (sr_data & 0x0C) << 6);
-	E = HDE + 1;
-
-	inSISIDXREG(SISCR, 0x04, cr_data);
-
-	HRS = (cr_data & 0xff) | ((u16) (sr_data & 0xC0) << 2);
-	F = HRS - E - 3;
-
-	inSISIDXREG(SISCR, 0x02, cr_data);
-
-	HBS = (cr_data & 0xff) | ((u16) (sr_data & 0x30) << 4);
-
-	inSISIDXREG(SISSR, 0x0c, sr_data);
-	inSISIDXREG(SISCR, 0x03, cr_data);
-	inSISIDXREG(SISCR, 0x05, cr_data2);
-
-	HBE = (cr_data & 0x1f) |
-	      ((u16) (cr_data2 & 0x80) >> 2) |
-	      ((u16) (sr_data  & 0x03) << 6);
-	HRE = (cr_data2 & 0x1f) | ((sr_data & 0x04) << 3);
-
-	temp = HBE - ((E - 1) & 255);
-	B = (temp > 0) ? temp : (temp + 256);
-
-	temp = HRE - ((E + F + 3) & 63);
-	C = (temp > 0) ? temp : (temp + 64);
-
-	D = B - F - C;
-
-	var->xres = E * 8;
-	if(var->xres_virtual < var->xres) {
-		var->xres_virtual = var->xres;
-	}
-
-	if((var->xres == 320) &&
-	   (var->yres == 200 || var->yres == 240)) {
-		/* Terrible hack, but the correct CRTC data for
-	  	 * these modes only produces a black screen...
-	  	 */
-       		var->left_margin = (400 - 376);
-       		var->right_margin = (328 - 320);
-       		var->hsync_len = (376 - 328);
-	} else {
-	   	var->left_margin = D * 8;
-	   	var->right_margin = F * 8;
-	   	var->hsync_len = C * 8;
-	}
-	var->activate = FB_ACTIVATE_NOW;
-
-	var->sync = 0;
-
-	mr_data = inSISREG(SISMISCR);
-	if(mr_data & 0x80)
-	   var->sync &= ~FB_SYNC_VERT_HIGH_ACT;
-	else
-	   var->sync |= FB_SYNC_VERT_HIGH_ACT;
-
-	if(mr_data & 0x40)
-	   var->sync &= ~FB_SYNC_HOR_HIGH_ACT;
-	else
-	   var->sync |= FB_SYNC_HOR_HIGH_ACT;
-
-	VT += 2;
-	VT <<= 1;
-	HT = (HT + 5) * 8;
-
-	if((var->vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED) {
-	   VT <<= 1;
-	}
-	hrate = ivideo->refresh_rate * VT / 2;
-	drate = (hrate * HT) / 1000;
-	var->pixclock = (u32) (1000000000 / drate);
-
-	if(ivideo->sisfb_ypan) {
-	   maxyres = sisfb_calc_maxyres(ivideo, var);
-	   if(ivideo->sisfb_max) {
-	      var->yres_virtual = maxyres;
-	   } else {
-	      if(var->yres_virtual > maxyres) {
-	         var->yres_virtual = maxyres;
-	      }
-	   }
-	   if(var->yres_virtual <= var->yres) {
-	      var->yres_virtual = var->yres;
-	   }
-	} else {
-	   var->yres_virtual = var->yres;
-	}
-
-}
-
-static int
-sis_getcolreg(unsigned regno, unsigned *red, unsigned *green, unsigned *blue,
-			 unsigned *transp, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-
-	if(regno >= ivideo->video_cmap_len) return 1;
-
-	*red   = ivideo->sis_palette[regno].red;
-	*green = ivideo->sis_palette[regno].green;
-	*blue  = ivideo->sis_palette[regno].blue;
-	*transp = 0;
-
-	return 0;
-}
-
-static int
-sisfb_setcolreg(unsigned regno, unsigned red, unsigned green, unsigned blue,
-                           unsigned transp, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-
-	if(regno >= ivideo->video_cmap_len) return 1;
-
-	ivideo->sis_palette[regno].red   = red;
-	ivideo->sis_palette[regno].green = green;
-	ivideo->sis_palette[regno].blue  = blue;
-
-	switch(ivideo->video_bpp) {
-#ifdef FBCON_HAS_CFB8
-	case 8:
-	        outSISREG(SISDACA, regno);
-		outSISREG(SISDACD, (red >> 10));
-		outSISREG(SISDACD, (green >> 10));
-		outSISREG(SISDACD, (blue >> 10));
-		if(ivideo->currentvbflags & VB_DISPTYPE_DISP2) {
-		        outSISREG(SISDAC2A, regno);
-			outSISREG(SISDAC2D, (red >> 8));
-			outSISREG(SISDAC2D, (green >> 8));
-			outSISREG(SISDAC2D, (blue >> 8));
-		}
-		break;
-#endif
-#ifdef FBCON_HAS_CFB16
-	case 16:
-		ivideo->sis_fbcon_cmap.cfb16[regno] =
-		    ((red & 0xf800)) | ((green & 0xfc00) >> 5) | ((blue & 0xf800) >> 11);
-		break;
-#endif
-#ifdef FBCON_HAS_CFB32
-	case 32:
-		red   >>= 8;
-		green >>= 8;
-		blue  >>= 8;
-		ivideo->sis_fbcon_cmap.cfb32[regno] = (red << 16) | (green << 8) | (blue);
-		break;
-#endif
-	}
-
-	return 0;
-}
-
-static void
-sisfb_set_disp(int con, struct fb_var_screeninfo *var, struct fb_info *info)
-{
-	struct sis_video_info    *ivideo = (struct sis_video_info *)info->par;
-	struct display           *display;
-	struct display_switch    *sw;
-	struct fb_fix_screeninfo fix;
-	long   flags;
-
-	display = (con >= 0) ? &fb_display[con] : &ivideo->sis_disp;
-
-	sisfb_get_fix(&fix, con, info);
-
-	display->var = *var;
-	display->screen_base = (char *)ivideo->video_vbase;
-	display->visual = fix.visual;
-	display->type = fix.type;
-	display->type_aux = fix.type_aux;
-	display->ypanstep = fix.ypanstep;
-	display->ywrapstep = fix.ywrapstep;
-	display->line_length = fix.line_length;
-	display->can_soft_blank = 1;
-	display->inverse = ivideo->sisfb_inverse;
-	display->next_line = fix.line_length;
-
-	save_flags(flags);
-
-	switch(ivideo->video_bpp) {
-#ifdef FBCON_HAS_CFB8
-	case 8:	sw = ivideo->accel ? &fbcon_sis8 : &fbcon_cfb8;
-		break;
-#endif
-#ifdef FBCON_HAS_CFB16
-	case 16:sw = ivideo->accel ? &fbcon_sis16 : &fbcon_cfb16;
-		display->dispsw_data = &ivideo->sis_fbcon_cmap.cfb16;
-		break;
-#endif
-#ifdef FBCON_HAS_CFB32
-	case 32:sw = ivideo->accel ? &fbcon_sis32 : &fbcon_cfb32;
-		display->dispsw_data = &ivideo->sis_fbcon_cmap.cfb32;
-		break;
-#endif
-	default:sw = &fbcon_dummy;
-		break;
-	}
-	memcpy(&ivideo->sisfb_sw, sw, sizeof(*sw));
-	display->dispsw = &ivideo->sisfb_sw;
-
-	restore_flags(flags);
-
-        if(ivideo->sisfb_ypan) {
-  	    /* display->scrollmode = 0;  */
-	} else {
-	    display->scrollmode = SCROLL_YREDRAW;
-	    ivideo->sisfb_sw.bmove = fbcon_redraw_bmove;
-	}
-}
-
-static void
-sisfb_do_install_cmap(int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-
-        if(con != ivideo->currcon) return;
-
-        if(fb_display[con].cmap.len) {
-		fb_set_cmap(&fb_display[con].cmap, 1, sisfb_setcolreg, info);
-        } else {
-		int size = sisfb_get_cmap_len(&fb_display[con].var);
-		fb_set_cmap(fb_default_cmap(size), 1, sisfb_setcolreg, info);
-	}
-}
-
-static int
-sisfb_get_var(struct fb_var_screeninfo *var, int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-
-	if(con == -1) {
-		memcpy(var, &ivideo->default_var, sizeof(struct fb_var_screeninfo));
-	} else {
-		*var = fb_display[con].var;
-	}
-
-	if(ivideo->sisfb_fstn) {
-	   	if(var->xres == 320 && var->yres == 480) var->yres = 240;
-        }
-
-	return 0;
-}
-
-static int
-sisfb_set_var(struct fb_var_screeninfo *var, int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-	int err;
-
-	fb_display[con].var.activate = FB_ACTIVATE_NOW;
-
-        if(sisfb_do_set_var(var, con == ivideo->currcon, info)) {
-		sisfb_crtc_to_var(ivideo, var);
-		return -EINVAL;
-	}
-
-	sisfb_crtc_to_var(ivideo, var);
-
-	sisfb_set_disp(con, var, info);
-
-	if(info->changevar) {
-		(*info->changevar)(con);
-	}
-
-	if((err = fb_alloc_cmap(&fb_display[con].cmap, 0, 0))) {
-		return err;
-	}
-
-	sisfb_do_install_cmap(con, info);
-
-#if 0	/* Why was this called here? */
-	unsigned int cols, rows;
-	cols = sisbios_mode[ivideo->sisfb_mode_idx].cols;
-	rows = sisbios_mode[ivideo->sisfb_mode_idx].rows;
- 	vc_resize_con(rows, cols, fb_display[con].conp->vc_num);
-#endif
-	return 0;
-}
-
-static int
-sisfb_get_cmap(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-	struct display *display;
-
-	display = (con >= 0) ? &fb_display[con] : &ivideo->sis_disp;
-
-        if(con == ivideo->currcon) {
-
-		return fb_get_cmap(cmap, kspc, sis_getcolreg, info);
-
-	} else if(display->cmap.len) {
-
-		fb_copy_cmap(&display->cmap, cmap, kspc ? 0 : 2);
-
-	} else {
-
-		int size = sisfb_get_cmap_len(&display->var);
-		fb_copy_cmap(fb_default_cmap(size), cmap, kspc ? 0 : 2);
-
-	}
-
-	return 0;
-}
-
-static int
-sisfb_set_cmap(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-	struct display *display;
-	int err, size;
-
-	display = (con >= 0) ? &fb_display[con] : &ivideo->sis_disp;
-
-	size = sisfb_get_cmap_len(&display->var);
-	if(display->cmap.len != size) {
-		err = fb_alloc_cmap(&display->cmap, size, 0);
-		if(err)	return err;
-	}
-
-	if(con == ivideo->currcon) {
-		return fb_set_cmap(cmap, kspc, sisfb_setcolreg, info);
-	} else {
-		fb_copy_cmap(cmap, &display->cmap, kspc ? 0 : 1);
-	}
-
-	return 0;
-}
-
-static int
-sisfb_pan_display(struct fb_var_screeninfo *var, int con, struct fb_info* info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-	int err;
-
-	if(var->vmode & FB_VMODE_YWRAP) return -EINVAL;
-
-	if((var->xoffset+fb_display[con].var.xres > fb_display[con].var.xres_virtual) ||
-	   (var->yoffset+fb_display[con].var.yres > fb_display[con].var.yres_virtual)) {
-		return -EINVAL;
-	}
-
-        if(con == ivideo->currcon) {
-	   	if((err = sisfb_pan_var(ivideo, var)) < 0) return err;
-	}
-
-	fb_display[con].var.xoffset = var->xoffset;
-	fb_display[con].var.yoffset = var->yoffset;
-
-	return 0;
-}
-
-static int
-sisfb_update_var(int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-
-        return(sisfb_pan_var(ivideo, &fb_display[con].var));
-}
-
-static int
-sisfb_switch(int con, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-	int cols, rows;
-
-        if(fb_display[ivideo->currcon].cmap.len) {
-		fb_get_cmap(&fb_display[ivideo->currcon].cmap, 1, sis_getcolreg, info);
-	}
-
-	fb_display[con].var.activate = FB_ACTIVATE_NOW;
-
-	if(!memcmp(&fb_display[con].var, &fb_display[ivideo->currcon].var,
-	                           	sizeof(struct fb_var_screeninfo))) {
-		ivideo->currcon = con;
-		return 1;
-	}
-
-	ivideo->currcon = con;
-
-	sisfb_do_set_var(&fb_display[con].var, 1, info);
-
-	sisfb_set_disp(con, &fb_display[con].var, info);
-
-	sisfb_do_install_cmap(con, info);
-
-	cols = sisbios_mode[ivideo->sisfb_mode_idx].cols;
-	rows = sisbios_mode[ivideo->sisfb_mode_idx].rows;
-	vc_resize_con(rows, cols, fb_display[con].conp->vc_num);
-
-	sisfb_update_var(con, info);
-
-	return 1;
-}
-
-static void
-sisfb_blank(int blank, struct fb_info *info)
-{
-	struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
-
-	sisfb_myblank(ivideo, blank);
-}
-#endif
-
-/* ------------ FBDev related routines for 2.6 series ----------- */
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-
static int
sisfb_open(struct fb_info *info, int user)
{
@@ -1814,11 +1232,7 @@ sisfb_set_par(struct fb_info *info)
if((err = sisfb_do_set_var(&info->var, 1, info))) {
return err;
}
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
-	sisfb_get_fix(&info->fix, info->currcon, info);
-#else
sisfb_get_fix(&info->fix, -1, info);
-#endif
return 0;
}

@@ -2043,16 +1457,11 @@ sisfb_blank(int blank, struct fb_info *i
return(sisfb_myblank(ivideo, blank));
}

-#endif
-
/* ----------- FBDev related routines for all series ---------- */

static int
sisfb_ioctl(struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	    int con,
-#endif
struct fb_info *info)
{
struct sis_video_info	*ivideo = (struct sis_video_info *)info->par;
@@ -2060,9 +1469,6 @@ sisfb_ioctl(struct inode *inode, struct
struct fb_vblank  	sisvbblank;
sisfb_info        	x;
u32			gpu32 = 0;
-#ifndef __user
-#define __user
-#endif
u32 __user 		*argp = (u32 __user *)arg;

switch (cmd) {
@@ -2243,20 +1649,6 @@ sisfb_get_fix(struct fb_fix_screeninfo *

/* ----------------  fb_ops structures ----------------- */

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-static struct fb_ops sisfb_ops = {
-	.owner		= THIS_MODULE,
-	.fb_get_fix	= sisfb_get_fix,
-	.fb_get_var	= sisfb_get_var,
-	.fb_set_var	= sisfb_set_var,
-	.fb_get_cmap	= sisfb_get_cmap,
-	.fb_set_cmap	= sisfb_set_cmap,
-        .fb_pan_display = sisfb_pan_display,
-	.fb_ioctl	= sisfb_ioctl
-};
-#endif
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
static struct fb_ops sisfb_ops = {
.owner          = THIS_MODULE,
.fb_open        = sisfb_open,
@@ -2276,7 +1668,6 @@ static struct fb_ops sisfb_ops = {
.fb_compat_ioctl = sisfb_compat_ioctl,
#endif
};
-#endif

/* ---------------- Chip generation dependent routines ---------------- */

@@ -3887,16 +3278,6 @@ SISINITSTATIC int __init sisfb_setup(cha
sisfb_search_mode(this_opt + 5, FALSE);
} else if(!strnicmp(this_opt, "vesa:", 5)) {
sisfb_search_vesamode(simple_strtoul(this_opt + 5, NULL, 0), FALSE);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-		} else if(!strnicmp(this_opt, "inverse", 7)) {
-			sisfb_inverse = 1;
-			/* fb_invert_cmaps(); */
-		} else if(!strnicmp(this_opt, "font:", 5)) {
-		        if(strlen(this_opt + 5) < 40) {
-			   strncpy(sisfb_fontname, this_opt + 5, sizeof(sisfb_fontname) - 1);
-			   sisfb_fontname[sizeof(sisfb_fontname) - 1] = '0';
-			}
-#endif
} else if(!strnicmp(this_opt, "rate:", 5)) {
sisfb_parm_rate = simple_strtoul(this_opt + 5, NULL, 0);
} else if(!strnicmp(this_opt, "filter:", 7)) {
@@ -4744,7 +4125,7 @@ static void __devinit sisfb_post_sis3153
iounmap(ivideo->video_vbase);
} else {
printk(KERN_DEBUG "sisfb: Failed to map memory for size detection, assuming 8MBn");
-	   outSISIDXREG(SISSR,0x14,0x??);  /* 8MB, 64bit default */
+	   outSISIDXREG(SISSR,0x14,0x00);  /* 8MB, 64bit default */
}

/* AGP (Missing: Checks for VIA and AMD hosts) */
@@ -4774,15 +4155,8 @@ static int __devinit sisfb_probe(struct

if(sisfb_off) return -ENXIO;

-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,3))
sis_fb_info = framebuffer_alloc(sizeof(*ivideo), &pdev->dev);
if(!sis_fb_info) return -ENOMEM;
-#else
-	sis_fb_info = kmalloc(sizeof(*sis_fb_info) + sizeof(*ivideo), GFP_KERNEL);
-	if(!sis_fb_info) return -ENOMEM;
-	memset(sis_fb_info, 0, sizeof(*sis_fb_info) + sizeof(*ivideo));
-	sis_fb_info->par = ((char *)sis_fb_info + sizeof(*sis_fb_info));
-#endif

ivideo = (struct sis_video_info *)sis_fb_info->par;
ivideo->memyselfandi = sis_fb_info;
@@ -4848,9 +4222,6 @@ static int __devinit sisfb_probe(struct
ivideo->tvypos = sisfb_tvyposoffset;
ivideo->sisfb_filter = sisfb_filter;
ivideo->sisfb_nocrt2rate = sisfb_nocrt2rate;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,0)
-	ivideo->sisfb_inverse = sisfb_inverse;
-#endif

ivideo->refresh_rate = 0;
if(ivideo->sisfb_parm_rate != -1) {
@@ -4920,10 +4291,6 @@ static int __devinit sisfb_probe(struct
}
}

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	strcpy(sis_fb_info->modename, ivideo->myid);
-#endif
-
ivideo->sishw_ext.jChipType = ivideo->chip;

#ifdef CONFIG_FB_SIS_315
@@ -4993,19 +4360,6 @@ static int __devinit sisfb_probe(struct
#endif
}

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#ifdef MODULE
-	if((reg & 0x80) && (reg != 0xff)) {
-	   if((sisbios_mode[ivideo->sisfb_mode_idx].mode_no[ivideo->mni]) != 0xFF) {
-	      printk(KERN_INFO "sisfb: Cannot initialize display mode, X server is activen");
-	      pci_set_drvdata(pdev, NULL);
-	      kfree(sis_fb_info);
-	      return -EBUSY;
-	   }
-	}
-#endif
-#endif
-
ivideo->sishw_ext.bIntegratedMMEnabled = TRUE;
#ifdef CONFIG_FB_SIS_300
if(ivideo->sisvga_engine == SIS_300_VGA) {
@@ -5455,65 +4809,6 @@ static int __devinit sisfb_probe(struct

sisfb_set_vparms(ivideo);

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-
-		/* ---------------- For 2.4: Now switch the mode ------------------ */
-
-		printk(KERN_INFO "sisfb: Mode is %dx%dx%d (%dHz)n",
-	       		ivideo->video_width, ivideo->video_height, ivideo->video_bpp,
-			ivideo->refresh_rate);
-
-		sisfb_pre_setmode(ivideo);
-
-		if(SiSSetMode(&ivideo->SiS_Pr, &ivideo->sishw_ext, ivideo->mode_no) == 0) {
-			printk(KERN_ERR "sisfb: Fatal error: Setting mode[0x%x] failedn",
-									ivideo->mode_no);
-			iounmap(ivideo->video_vbase);
-			iounmap(ivideo->mmio_vbase);
-			release_mem_region(ivideo->video_base, ivideo->video_size);
-			release_mem_region(ivideo->mmio_base, ivideo->mmio_size);
-			if(ivideo->bios_abase) vfree(ivideo->bios_abase);
-			pci_set_drvdata(pdev, NULL);
-			kfree(sis_fb_info);
-			return -EINVAL;
-		}
-
-		outSISIDXREG(SISSR, IND_SIS_PASSWORD, SIS_PASSWORD);
-
-		sisfb_post_setmode(ivideo);
-
-		/* Maximize regardless of sisfb_max at startup */
-		ivideo->default_var.yres_virtual = 32767;
-
-		/* Force reset of x virtual in crtc_to_var */
-		ivideo->default_var.xres_virtual = 0;
-
-		sisfb_crtc_to_var(ivideo, &ivideo->default_var);
-
-		sisfb_calc_pitch(ivideo, &ivideo->default_var);
-		sisfb_set_pitch(ivideo);
-
-		ivideo->accel = 0;
-		if(ivideo->sisfb_accel) {
-		   ivideo->accel = -1;
-		   ivideo->default_var.accel_flags |= FB_ACCELF_TEXT;
-		}
-		sisfb_initaccel(ivideo);
-
-		sis_fb_info->node  = -1;
-		sis_fb_info->flags = FBINFO_FLAG_DEFAULT;
-		sis_fb_info->fbops = &sisfb_ops;
-		sis_fb_info->disp  = &ivideo->sis_disp;
-		sis_fb_info->blank = &sisfb_blank;
-		sis_fb_info->switch_con = &sisfb_switch;
-		sis_fb_info->updatevar  = &sisfb_update_var;
-		sis_fb_info->changevar  = NULL;
-		strcpy(sis_fb_info->fontname, sisfb_fontname);
-
-		sisfb_set_disp(-1, &ivideo->default_var, sis_fb_info);
-
-#else		/* --------- For 2.6: Setup a somewhat sane default var ------------ */
-
printk(KERN_INFO "sisfb: Default mode is %dx%dx%d (%dHz)n",
ivideo->video_width, ivideo->video_height, ivideo->video_bpp,
ivideo->refresh_rate);
@@ -5573,7 +4868,6 @@ static int __devinit sisfb_probe(struct
sis_fb_info->pseudo_palette = ivideo->pseudo_palette;

fb_alloc_cmap(&sis_fb_info->cmap, 256 , 0);
-#endif		/* 2.6 */

printk(KERN_DEBUG "sisfb: Initial vbflags 0x%lxn", (unsigned long)ivideo->vbflags);

@@ -5585,10 +4879,6 @@ static int __devinit sisfb_probe(struct
}
#endif

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-		vc_resize_con(1, 1, 0);
-#endif
-
if(register_framebuffer(sis_fb_info) < 0) {
printk(KERN_ERR "sisfb: Fatal error: Failed to register framebuffern");
iounmap(ivideo->video_vbase);
@@ -5614,11 +4904,7 @@ static int __devinit sisfb_probe(struct


printk(KERN_INFO "fb%d: %s frame buffer device, Version %d.%d.%dn",
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	       		GET_FB_IDX(sis_fb_info->node),
-#else
sis_fb_info->node,
-#endif
ivideo->myid, VER_MAJOR, VER_MINOR, VER_LEVEL);

printk(KERN_INFO "sisfb: (C) 2001-2004 Thomas Winischhofer.n");
@@ -5657,11 +4943,7 @@ static void __devexit sisfb_remove(struc
/* Unregister the framebuffer */
if(ivideo->registered) {
unregister_framebuffer(sis_fb_info);
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,3))
framebuffer_release(sis_fb_info);
-#else
-		kfree(sis_fb_info);
-#endif
}

pci_set_drvdata(pdev, NULL);
@@ -5687,7 +4969,6 @@ static struct pci_driver sisfb_driver =

SISINITSTATIC int __init sisfb_init(void)
{
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
#ifndef MODULE
char *options = NULL;

@@ -5695,15 +4976,12 @@ SISINITSTATIC int __init sisfb_init(void
return -ENODEV;
sisfb_setup(options);
#endif
-#endif
return(pci_register_driver(&sisfb_driver));
}

-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
#ifndef MODULE
module_init(sisfb_init);
#endif
-#endif

/*****************************************************/
/*                      MODULE                       */
@@ -5723,9 +5001,6 @@ static int          pdc1 = -1;
static int          noaccel = -1;
static int          noypan  = -1;
static int	    nomax = -1;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-static int          inverse = 0;
-#endif
static int          userom = -1;
static int          useoem = -1;
static char         *tvstandard = NULL;
@@ -5744,36 +5019,7 @@ MODULE_DESCRIPTION("SiS 300/540/630/730/
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Thomas Winischhofer <[email protected]>, Others");

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-MODULE_PARM(mem, "i");
-MODULE_PARM(noaccel, "i");
-MODULE_PARM(noypan, "i");
-MODULE_PARM(nomax, "i");
-MODULE_PARM(userom, "i");
-MODULE_PARM(useoem, "i");
-MODULE_PARM(mode, "s");
-MODULE_PARM(vesa, "i");
-MODULE_PARM(rate, "i");
-MODULE_PARM(forcecrt1, "i");
-MODULE_PARM(forcecrt2type, "s");
-MODULE_PARM(scalelcd, "i");
-MODULE_PARM(pdc, "i");
-MODULE_PARM(pdc1, "i");
-MODULE_PARM(specialtiming, "s");
-MODULE_PARM(lvdshl, "i");
-MODULE_PARM(tvstandard, "s");
-MODULE_PARM(tvxposoffset, "i");
-MODULE_PARM(tvyposoffset, "i");
-MODULE_PARM(filter, "i");
-MODULE_PARM(nocrt2rate, "i");
-MODULE_PARM(inverse, "i");
-#if !defined(__i386__) && !defined(__x86_64__)
-MODULE_PARM(resetcard, "i");
-MODULE_PARM(videoram, "i");
-#endif
-#endif

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
module_param(mem, int, 0);
module_param(noaccel, int, 0);
module_param(noypan, int, 0);
@@ -5799,7 +5045,6 @@ module_param(nocrt2rate, int, 0);
module_param(resetcard, int, 0);
module_param(videoram, int, 0);
#endif
-#endif

MODULE_PARM_DESC(mem,
"nDetermines the beginning of the video memory heap in KB. This heap is usedn"
@@ -5825,23 +5070,7 @@ MODULE_PARM_DESC(nomax,
"enable the user to positively specify a virtual Y size of the screen usingn"
"fbset. (default: 0)n");

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-MODULE_PARM_DESC(mode,
-        "nSelects the desired display mode in the format [X]x[Y]x[Depth], eg.n"
-          "1024x768x16. Other formats supported include XxY-Depth andn"
- 	  "XxY-Depth@Rate. If the parameter is only one (decimal or hexadecimal)n"
-	  "number, it will be interpreted as a VESA mode number. (default: none ifn"
-	  "sisfb is a module; this leaves the console untouched and the driver willn"
-	  "only do the video memory management for eg. DRM/DRI; 800x600x8 if sisfbn"
-	  "is in the kernel)n");
-MODULE_PARM_DESC(vesa,
-        "nSelects the desired display mode by VESA defined mode number, eg. 0x117n"
-          "(default: 0x0000 if sisfb is a module; this leaves the console untouchedn"
-	  "and the driver will only do the video memory management for eg. DRM/DRI;n"
-	  "0x0103 if sisfb is in the kernel)n");
-#endif

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
MODULE_PARM_DESC(mode,
"nSelects the desired default display mode in the format XxYxDepth,n"
"eg. 1024x768x16. Other formats supported include XxY-Depth andn"
@@ -5851,7 +5080,6 @@ MODULE_PARM_DESC(mode,
MODULE_PARM_DESC(vesa,
"nSelects the desired default display mode by VESA defined mode number, eg.n"
"0x117 (default: 0x0103)n");
-#endif

MODULE_PARM_DESC(rate,
"nSelects the desired vertical refresh rate for CRT1 (external VGA) in Hz.n"
@@ -5921,12 +5149,6 @@ MODULE_PARM_DESC(nocrt2rate,
"nSetting this to 1 will force the driver to use the default refresh rate forn"
"CRT2 if CRT2 type is VGA. (default: 0, use same rate as CRT1)n");

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-MODULE_PARM_DESC(inverse,
-        "nSetting this to anything but 0 should invert the display colors, but thisn"
-	  "does not seem to work. (default: 0)n");
-#endif
-
#if !defined(__i386__) && !defined(__x86_64__)
#ifdef CONFIG_FB_SIS_300
MODULE_PARM_DESC(resetcard,
@@ -5979,10 +5201,6 @@ static int __devinit sisfb_init_module(v
if(nomax == 1)        sisfb_max = 0;
else if(nomax == 0)   sisfb_max = 1;

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-	if(inverse)           sisfb_inverse = 1;
-#endif
-
if(mem)		      sisfb_parm_mem = mem;

if(userom != -1)      sisfb_userom = userom;
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/sis_main.h
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/sis_main.h
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/sis_main.h
@@ -68,15 +68,7 @@ static int sisfb_ypan = -1;
static int sisfb_max = -1;
static int sisfb_userom = 1;
static int sisfb_useoem = -1;
-#ifdef MODULE
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-static int sisfb_mode_idx = -1;
-#else
-static int sisfb_mode_idx = MODE_INDEX_NONE;  /* Don't use a mode by default if we are a module */
-#endif
-#else
static int sisfb_mode_idx = -1;               /* Use a default mode if we are inside the kernel */
-#endif
static int sisfb_parm_rate = -1;
static int sisfb_crt1off = 0;
static int sisfb_forcecrt1 = -1;
@@ -95,10 +87,6 @@ static int sisfb_tvxposoffset = 0;
static int sisfb_tvyposoffset = 0;
static int sisfb_filter = -1;
static int sisfb_nocrt2rate = 0;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-static int  sisfb_inverse = 0;
-static char sisfb_fontname[40];
-#endif
#if !defined(__i386__) && !defined(__x86_64__)
static int sisfb_resetcard = 0;
static int sisfb_videoram = 0;
@@ -816,46 +804,6 @@ SISINITSTATIC int sisfb_init(void);
static int      sisfb_get_fix(struct fb_fix_screeninfo *fix, int con,
struct fb_info *info);

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-static int      sisfb_get_fix(struct fb_fix_screeninfo *fix,
-			      int con,
-			      struct fb_info *info);
-static int      sisfb_get_var(struct fb_var_screeninfo *var,
-			      int con,
-			      struct fb_info *info);
-static int      sisfb_set_var(struct fb_var_screeninfo *var,
-			      int con,
-			      struct fb_info *info);
-static void     sisfb_crtc_to_var(struct sis_video_info *ivideo,
-			          struct fb_var_screeninfo *var);
-static int      sisfb_get_cmap(struct fb_cmap *cmap,
-			       int kspc,
-			       int con,
-			       struct fb_info *info);
-static int      sisfb_set_cmap(struct fb_cmap *cmap,
-			       int kspc,
-			       int con,
-			       struct fb_info *info);
-static int      sisfb_update_var(int con,
-				 struct fb_info *info);
-static int      sisfb_switch(int con,
-			     struct fb_info *info);
-static void     sisfb_blank(int blank,
-			    struct fb_info *info);
-static void     sisfb_set_disp(int con,
-			       struct fb_var_screeninfo *var,
-                               struct fb_info *info);
-static int      sis_getcolreg(unsigned regno, unsigned *red, unsigned *green,
-			      unsigned *blue, unsigned *transp,
-			      struct fb_info *fb_info);
-static void     sisfb_do_install_cmap(int con,
-                                      struct fb_info *info);
-static int      sisfb_ioctl(struct inode *inode, struct file *file,
-		       	    unsigned int cmd, unsigned long arg, int con,
-		       	    struct fb_info *info);
-#endif
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
static int      sisfb_ioctl(struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg,
struct fb_info *info);
@@ -867,7 +815,6 @@ extern void     fbcon_sis_fillrect(struc
extern void     fbcon_sis_copyarea(struct fb_info *info,
const struct fb_copyarea *area);
extern int      fbcon_sis_sync(struct fb_info *info);
-#endif

/* Internal 2D accelerator functions */
extern int      sisfb_initaccel(struct sis_video_info *ivideo);
@@ -926,14 +873,12 @@ extern BOOLEAN  SiSDetermineROMLayout661

extern BOOLEAN  sisfb_gettotalfrommode(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceExtension,
unsigned char modeno, int *htotal, int *vtotal, unsigned char rateindex);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
extern int	sisfb_mode_rate_to_dclock(SiS_Private *SiS_Pr,
PSIS_HW_INFO HwDeviceExtension,
unsigned char modeno, unsigned char rateindex);
extern int      sisfb_mode_rate_to_ddata(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceExtension,
unsigned char modeno, unsigned char rateindex,
struct fb_var_screeninfo *var);
-#endif

/* Chrontel TV, DDC and DPMS functions */
extern USHORT 	SiS_GetCH700x(SiS_Private *SiS_Pr, USHORT tempbx);
Index: linux-2.6.13-rc2-mm1/drivers/video/sis/vgatypes.h
===================================================================
--- linux-2.6.13-rc2-mm1.orig/drivers/video/sis/vgatypes.h
+++ linux-2.6.13-rc2-mm1/drivers/video/sis/vgatypes.h
@@ -55,7 +55,6 @@

#ifdef LINUX_KERNEL  /* We don't want the X driver to depend on kernel source */
#include <linux/ioctl.h>
-#include <linux/version.h>
#endif

#ifndef FALSE
@@ -102,12 +101,10 @@ typedef unsigned char BOOLEAN;

#ifdef LINUX_KERNEL
typedef unsigned long SISIOADDRESS;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
#include <linux/types.h>  /* Need __iomem */
#undef SISIOMEMTYPE
#define SISIOMEMTYPE __iomem
#endif
-#endif

#ifdef LINUX_XF86
#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,0,0,0)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux