[PATCH] drivers/video/sis/sis_main.c: removal of old code
Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Thomas Winischhofer <thomas@winischhofer.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
2dc350283d
Коммит
4370409a92
|
@ -35,9 +35,7 @@
|
||||||
|
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
|
|
||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#endif
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/smp_lock.h>
|
#include <linux/smp_lock.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
|
@ -58,9 +56,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
#include <linux/vt_kern.h>
|
|
||||||
#endif
|
|
||||||
#include <linux/capability.h>
|
#include <linux/capability.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
|
@ -70,35 +65,9 @@
|
||||||
#include <asm/mtrr.h>
|
#include <asm/mtrr.h>
|
||||||
#endif
|
#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.h"
|
||||||
#include "sis_main.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
|
|
||||||
|
|
||||||
static void sisfb_handle_command(struct sis_video_info *ivideo,
|
static void sisfb_handle_command(struct sis_video_info *ivideo,
|
||||||
struct sisfb_cmd *sisfb_command);
|
struct sisfb_cmd *sisfb_command);
|
||||||
|
|
||||||
|
@ -114,17 +83,7 @@ sisfb_setdefaultparms(void)
|
||||||
sisfb_max = -1;
|
sisfb_max = -1;
|
||||||
sisfb_userom = -1;
|
sisfb_userom = -1;
|
||||||
sisfb_useoem = -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;
|
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_parm_rate = -1;
|
||||||
sisfb_crt1off = 0;
|
sisfb_crt1off = 0;
|
||||||
sisfb_forcecrt1 = -1;
|
sisfb_forcecrt1 = -1;
|
||||||
|
@ -142,10 +101,6 @@ sisfb_setdefaultparms(void)
|
||||||
sisfb_tvxposoffset = 0;
|
sisfb_tvxposoffset = 0;
|
||||||
sisfb_tvyposoffset = 0;
|
sisfb_tvyposoffset = 0;
|
||||||
sisfb_nocrt2rate = 0;
|
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__)
|
#if !defined(__i386__) && !defined(__x86_64__)
|
||||||
sisfb_resetcard = 0;
|
sisfb_resetcard = 0;
|
||||||
sisfb_videoram = 0;
|
sisfb_videoram = 0;
|
||||||
|
@ -162,14 +117,11 @@ sisfb_search_vesamode(unsigned int vesamode, BOOLEAN quiet)
|
||||||
/* We don't know the hardware specs yet and there is no ivideo */
|
/* We don't know the hardware specs yet and there is no ivideo */
|
||||||
|
|
||||||
if(vesamode == 0) {
|
if(vesamode == 0) {
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
sisfb_mode_idx = MODE_INDEX_NONE;
|
|
||||||
#else
|
|
||||||
if(!quiet)
|
if(!quiet)
|
||||||
printk(KERN_ERR "sisfb: Invalid mode. Using default.\n");
|
printk(KERN_ERR "sisfb: Invalid mode. Using default.\n");
|
||||||
|
|
||||||
sisfb_mode_idx = DEFAULT_MODE;
|
sisfb_mode_idx = DEFAULT_MODE;
|
||||||
#endif
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,7 +167,6 @@ sisfb_search_mode(char *name, BOOLEAN quiet)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
|
|
||||||
if(!strnicmp(name, sisbios_mode[MODE_INDEX_NONE].name, strlen(name))) {
|
if(!strnicmp(name, sisbios_mode[MODE_INDEX_NONE].name, strlen(name))) {
|
||||||
if(!quiet)
|
if(!quiet)
|
||||||
printk(KERN_ERR "sisfb: Mode 'none' not supported anymore. Using default.\n");
|
printk(KERN_ERR "sisfb: Mode 'none' not supported anymore. Using default.\n");
|
||||||
|
@ -223,7 +174,7 @@ sisfb_search_mode(char *name, BOOLEAN quiet)
|
||||||
sisfb_mode_idx = DEFAULT_MODE;
|
sisfb_mode_idx = DEFAULT_MODE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if(strlen(name) <= 19) {
|
if(strlen(name) <= 19) {
|
||||||
strcpy(strbuf1, name);
|
strcpy(strbuf1, name);
|
||||||
for(i = 0; i < strlen(strbuf1); i++) {
|
for(i = 0; i < strlen(strbuf1); i++) {
|
||||||
|
@ -1315,20 +1266,7 @@ sisfb_do_set_var(struct fb_var_screeninfo *var, int isactive, struct fb_info *in
|
||||||
ivideo->refresh_rate = 60;
|
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) {
|
if(isactive) {
|
||||||
#endif
|
|
||||||
/* If acceleration to be used? Need to know
|
/* If acceleration to be used? Need to know
|
||||||
* before pre/post_set_mode()
|
* before pre/post_set_mode()
|
||||||
*/
|
*/
|
||||||
|
@ -1367,9 +1305,7 @@ sisfb_do_set_var(struct fb_var_screeninfo *var, int isactive, struct fb_info *in
|
||||||
ivideo->current_linelength = ivideo->video_linelength;
|
ivideo->current_linelength = ivideo->video_linelength;
|
||||||
ivideo->current_pixclock = var->pixclock;
|
ivideo->current_pixclock = var->pixclock;
|
||||||
ivideo->current_refresh_rate = ivideo->refresh_rate;
|
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;
|
ivideo->sisfb_lastrates[ivideo->mode_no] = ivideo->refresh_rate;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1435,18 +1371,6 @@ sisfb_pan_var(struct sis_video_info *ivideo, struct fb_var_screeninfo *var)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------ FBDev related routines for 2.4 series ----------- */
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
|
|
||||||
#include "sisfb_fbdev_2_4.h"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ------------ FBDev related routines for 2.6 series ----------- */
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
sisfb_open(struct fb_info *info, int user)
|
sisfb_open(struct fb_info *info, int user)
|
||||||
{
|
{
|
||||||
|
@ -1744,8 +1668,6 @@ sisfb_blank(int blank, struct fb_info *info)
|
||||||
return sisfb_myblank(ivideo, blank);
|
return sisfb_myblank(ivideo, blank);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ----------- FBDev related routines for all series ---------- */
|
/* ----------- FBDev related routines for all series ---------- */
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
|
||||||
|
@ -1969,20 +1891,6 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
|
||||||
|
|
||||||
/* ---------------- fb_ops structures ----------------- */
|
/* ---------------- 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 = {
|
static struct fb_ops sisfb_ops = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.fb_open = sisfb_open,
|
.fb_open = sisfb_open,
|
||||||
|
@ -2004,7 +1912,6 @@ static struct fb_ops sisfb_ops = {
|
||||||
#endif
|
#endif
|
||||||
.fb_ioctl = sisfb_ioctl
|
.fb_ioctl = sisfb_ioctl
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ---------------- Chip generation dependent routines ---------------- */
|
/* ---------------- Chip generation dependent routines ---------------- */
|
||||||
|
|
||||||
|
@ -4100,16 +4007,6 @@ sisfb_setup(char *options)
|
||||||
sisfb_search_mode(this_opt + 5, FALSE);
|
sisfb_search_mode(this_opt + 5, FALSE);
|
||||||
} else if(!strnicmp(this_opt, "vesa:", 5)) {
|
} else if(!strnicmp(this_opt, "vesa:", 5)) {
|
||||||
sisfb_search_vesamode(simple_strtoul(this_opt + 5, NULL, 0), FALSE);
|
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)) {
|
} else if(!strnicmp(this_opt, "rate:", 5)) {
|
||||||
sisfb_parm_rate = simple_strtoul(this_opt + 5, NULL, 0);
|
sisfb_parm_rate = simple_strtoul(this_opt + 5, NULL, 0);
|
||||||
} else if(!strnicmp(this_opt, "forcecrt1:", 10)) {
|
} else if(!strnicmp(this_opt, "forcecrt1:", 10)) {
|
||||||
|
@ -5870,17 +5767,9 @@ sisfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
if(sisfb_off)
|
if(sisfb_off)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
|
||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,3))
|
|
||||||
sis_fb_info = framebuffer_alloc(sizeof(*ivideo), &pdev->dev);
|
sis_fb_info = framebuffer_alloc(sizeof(*ivideo), &pdev->dev);
|
||||||
if(!sis_fb_info)
|
if(!sis_fb_info)
|
||||||
return -ENOMEM;
|
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 = (struct sis_video_info *)sis_fb_info->par;
|
||||||
ivideo->memyselfandi = sis_fb_info;
|
ivideo->memyselfandi = sis_fb_info;
|
||||||
|
@ -5970,10 +5859,6 @@ sisfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
ivideo->tvxpos = sisfb_tvxposoffset;
|
ivideo->tvxpos = sisfb_tvxposoffset;
|
||||||
ivideo->tvypos = sisfb_tvyposoffset;
|
ivideo->tvypos = sisfb_tvyposoffset;
|
||||||
ivideo->sisfb_nocrt2rate = sisfb_nocrt2rate;
|
ivideo->sisfb_nocrt2rate = sisfb_nocrt2rate;
|
||||||
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,0)
|
|
||||||
ivideo->sisfb_inverse = sisfb_inverse;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ivideo->refresh_rate = 0;
|
ivideo->refresh_rate = 0;
|
||||||
if(ivideo->sisfb_parm_rate != -1) {
|
if(ivideo->sisfb_parm_rate != -1) {
|
||||||
ivideo->refresh_rate = ivideo->sisfb_parm_rate;
|
ivideo->refresh_rate = ivideo->sisfb_parm_rate;
|
||||||
|
@ -6049,10 +5934,6 @@ sisfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
strcpy(sis_fb_info->modename, ivideo->myid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ivideo->SiS_Pr.ChipType = ivideo->chip;
|
ivideo->SiS_Pr.ChipType = ivideo->chip;
|
||||||
|
|
||||||
ivideo->SiS_Pr.ivideo = (void *)ivideo;
|
ivideo->SiS_Pr.ivideo = (void *)ivideo;
|
||||||
|
@ -6134,20 +6015,6 @@ sisfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
#endif
|
#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 active\n");
|
|
||||||
ret = -EBUSY;
|
|
||||||
goto error_4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Search and copy ROM image */
|
/* Search and copy ROM image */
|
||||||
ivideo->bios_abase = NULL;
|
ivideo->bios_abase = NULL;
|
||||||
ivideo->SiS_Pr.VirtualRomBase = NULL;
|
ivideo->SiS_Pr.VirtualRomBase = NULL;
|
||||||
|
@ -6281,9 +6148,6 @@ error_0: iounmap(ivideo->video_vbase);
|
||||||
error_1: release_mem_region(ivideo->video_base, ivideo->video_size);
|
error_1: release_mem_region(ivideo->video_base, ivideo->video_size);
|
||||||
error_2: release_mem_region(ivideo->mmio_base, ivideo->mmio_size);
|
error_2: release_mem_region(ivideo->mmio_base, ivideo->mmio_size);
|
||||||
error_3: vfree(ivideo->bios_abase);
|
error_3: vfree(ivideo->bios_abase);
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
error_4:
|
|
||||||
#endif
|
|
||||||
if(ivideo->lpcdev)
|
if(ivideo->lpcdev)
|
||||||
SIS_PCI_PUT_DEVICE(ivideo->lpcdev);
|
SIS_PCI_PUT_DEVICE(ivideo->lpcdev);
|
||||||
if(ivideo->nbridge)
|
if(ivideo->nbridge)
|
||||||
|
@ -6586,7 +6450,6 @@ error_4:
|
||||||
sis_fb_info->fix = ivideo->sisfb_fix;
|
sis_fb_info->fix = ivideo->sisfb_fix;
|
||||||
sis_fb_info->screen_base = ivideo->video_vbase + ivideo->video_offset;
|
sis_fb_info->screen_base = ivideo->video_vbase + ivideo->video_offset;
|
||||||
sis_fb_info->fbops = &sisfb_ops;
|
sis_fb_info->fbops = &sisfb_ops;
|
||||||
|
|
||||||
sisfb_get_fix(&sis_fb_info->fix, -1, sis_fb_info);
|
sisfb_get_fix(&sis_fb_info->fix, -1, sis_fb_info);
|
||||||
sis_fb_info->pseudo_palette = ivideo->pseudo_palette;
|
sis_fb_info->pseudo_palette = ivideo->pseudo_palette;
|
||||||
|
|
||||||
|
@ -6603,10 +6466,6 @@ error_4:
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
vc_resize_con(1, 1, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(register_framebuffer(sis_fb_info) < 0) {
|
if(register_framebuffer(sis_fb_info) < 0) {
|
||||||
printk(KERN_ERR "sisfb: Fatal error: Failed to register framebuffer\n");
|
printk(KERN_ERR "sisfb: Fatal error: Failed to register framebuffer\n");
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
@ -6653,12 +6512,7 @@ error_4:
|
||||||
|
|
||||||
|
|
||||||
printk(KERN_INFO "fb%d: %s frame buffer device version %d.%d.%d\n",
|
printk(KERN_INFO "fb%d: %s frame buffer device version %d.%d.%d\n",
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
sis_fb_info->node, ivideo->myid, VER_MAJOR, VER_MINOR, VER_LEVEL);
|
||||||
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: Copyright (C) 2001-2005 Thomas Winischhofer\n");
|
printk(KERN_INFO "sisfb: Copyright (C) 2001-2005 Thomas Winischhofer\n");
|
||||||
|
|
||||||
|
@ -6732,11 +6586,7 @@ static void __devexit sisfb_remove(struct pci_dev *pdev)
|
||||||
/* Unregister the framebuffer */
|
/* Unregister the framebuffer */
|
||||||
if(ivideo->registered) {
|
if(ivideo->registered) {
|
||||||
unregister_framebuffer(sis_fb_info);
|
unregister_framebuffer(sis_fb_info);
|
||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,3))
|
|
||||||
framebuffer_release(sis_fb_info);
|
framebuffer_release(sis_fb_info);
|
||||||
#else
|
|
||||||
kfree(sis_fb_info);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OK, our ivideo is gone for good from here. */
|
/* OK, our ivideo is gone for good from here. */
|
||||||
|
@ -6762,7 +6612,6 @@ static struct pci_driver sisfb_driver = {
|
||||||
|
|
||||||
SISINITSTATIC int __init sisfb_init(void)
|
SISINITSTATIC int __init sisfb_init(void)
|
||||||
{
|
{
|
||||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
|
|
||||||
#ifndef MODULE
|
#ifndef MODULE
|
||||||
char *options = NULL;
|
char *options = NULL;
|
||||||
|
|
||||||
|
@ -6770,16 +6619,13 @@ SISINITSTATIC int __init sisfb_init(void)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
sisfb_setup(options);
|
sisfb_setup(options);
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
return pci_register_driver(&sisfb_driver);
|
return pci_register_driver(&sisfb_driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
|
|
||||||
#ifndef MODULE
|
#ifndef MODULE
|
||||||
module_init(sisfb_init);
|
module_init(sisfb_init);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
/* MODULE */
|
/* MODULE */
|
||||||
|
@ -6799,9 +6645,6 @@ static int pdc1 = -1;
|
||||||
static int noaccel = -1;
|
static int noaccel = -1;
|
||||||
static int noypan = -1;
|
static int noypan = -1;
|
||||||
static int nomax = -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 userom = -1;
|
||||||
static int useoem = -1;
|
static int useoem = -1;
|
||||||
static char *tvstandard = NULL;
|
static char *tvstandard = NULL;
|
||||||
|
@ -6861,10 +6704,6 @@ static int __init sisfb_init_module(void)
|
||||||
else if(nomax == 0)
|
else if(nomax == 0)
|
||||||
sisfb_max = 1;
|
sisfb_max = 1;
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
if(inverse) sisfb_inverse = 1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(mem)
|
if(mem)
|
||||||
sisfb_parm_mem = mem;
|
sisfb_parm_mem = mem;
|
||||||
|
|
||||||
|
@ -6913,35 +6752,6 @@ MODULE_DESCRIPTION("SiS 300/540/630/730/315/55x/65x/661/74x/330/76x/34x, XGI V3X
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_AUTHOR("Thomas Winischhofer <thomas@winischhofer.net>, Others");
|
MODULE_AUTHOR("Thomas Winischhofer <thomas@winischhofer.net>, 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(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(mem, int, 0);
|
||||||
module_param(noaccel, int, 0);
|
module_param(noaccel, int, 0);
|
||||||
module_param(noypan, int, 0);
|
module_param(noypan, int, 0);
|
||||||
|
@ -6966,18 +6776,7 @@ module_param(nocrt2rate, int, 0);
|
||||||
module_param(resetcard, int, 0);
|
module_param(resetcard, int, 0);
|
||||||
module_param(videoram, int, 0);
|
module_param(videoram, int, 0);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
|
|
||||||
MODULE_PARM_DESC(mem,
|
|
||||||
"\nDetermines the beginning of the video memory heap in KB. This heap is used\n"
|
|
||||||
"for video RAM management for eg. DRM/DRI. On 300 series, the default depends\n"
|
|
||||||
"on the amount of video RAM available. If 8MB of video RAM or less is available,\n"
|
|
||||||
"the heap starts at 4096KB, if between 8 and 16MB are available at 8192KB,\n"
|
|
||||||
"otherwise at 12288KB. On 315/330/340 series, the heap size is 32KB by default.\n"
|
|
||||||
"The value is to be specified without 'KB' and must match the MaxXFBMem setting\n"
|
|
||||||
"for XFree86 4.x/X.org 6.7 and later.\n");
|
|
||||||
#else
|
|
||||||
MODULE_PARM_DESC(mem,
|
MODULE_PARM_DESC(mem,
|
||||||
"\nDetermines the beginning of the video memory heap in KB. This heap is used\n"
|
"\nDetermines the beginning of the video memory heap in KB. This heap is used\n"
|
||||||
"for video RAM management for eg. DRM/DRI. On 300 series, the default depends\n"
|
"for video RAM management for eg. DRM/DRI. On 300 series, the default depends\n"
|
||||||
|
@ -6985,7 +6784,6 @@ MODULE_PARM_DESC(mem,
|
||||||
"the heap starts at 4096KB, if between 8 and 16MB are available at 8192KB,\n"
|
"the heap starts at 4096KB, if between 8 and 16MB are available at 8192KB,\n"
|
||||||
"otherwise at 12288KB. On 315/330/340 series, the heap size is 32KB by default.\n"
|
"otherwise at 12288KB. On 315/330/340 series, the heap size is 32KB by default.\n"
|
||||||
"The value is to be specified without 'KB'.\n");
|
"The value is to be specified without 'KB'.\n");
|
||||||
#endif
|
|
||||||
|
|
||||||
MODULE_PARM_DESC(noaccel,
|
MODULE_PARM_DESC(noaccel,
|
||||||
"\nIf set to anything other than 0, 2D acceleration will be disabled.\n"
|
"\nIf set to anything other than 0, 2D acceleration will be disabled.\n"
|
||||||
|
@ -7002,23 +6800,6 @@ MODULE_PARM_DESC(nomax,
|
||||||
"enable the user to positively specify a virtual Y size of the screen using\n"
|
"enable the user to positively specify a virtual Y size of the screen using\n"
|
||||||
"fbset. (default: 0)\n");
|
"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 and\n"
|
|
||||||
"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 if\n"
|
|
||||||
"sisfb is a module; this leaves the console untouched and the driver will\n"
|
|
||||||
"only do the video memory management for eg. DRM/DRI; 800x600x8 if sisfb\n"
|
|
||||||
"is in the kernel)\n");
|
|
||||||
MODULE_PARM_DESC(vesa,
|
|
||||||
"\nSelects the desired display mode by VESA defined mode number, eg. 0x117\n"
|
|
||||||
"(default: 0x0000 if sisfb is a module; this leaves the console untouched\n"
|
|
||||||
"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,
|
MODULE_PARM_DESC(mode,
|
||||||
"\nSelects the desired default display mode in the format XxYxDepth,\n"
|
"\nSelects the desired default display mode in the format XxYxDepth,\n"
|
||||||
"eg. 1024x768x16. Other formats supported include XxY-Depth and\n"
|
"eg. 1024x768x16. Other formats supported include XxY-Depth and\n"
|
||||||
|
@ -7028,7 +6809,6 @@ MODULE_PARM_DESC(mode,
|
||||||
MODULE_PARM_DESC(vesa,
|
MODULE_PARM_DESC(vesa,
|
||||||
"\nSelects the desired default display mode by VESA defined mode number, eg.\n"
|
"\nSelects the desired default display mode by VESA defined mode number, eg.\n"
|
||||||
"0x117 (default: 0x0103)\n");
|
"0x117 (default: 0x0103)\n");
|
||||||
#endif
|
|
||||||
|
|
||||||
MODULE_PARM_DESC(rate,
|
MODULE_PARM_DESC(rate,
|
||||||
"\nSelects the desired vertical refresh rate for CRT1 (external VGA) in Hz.\n"
|
"\nSelects the desired vertical refresh rate for CRT1 (external VGA) in Hz.\n"
|
||||||
|
@ -7094,12 +6874,6 @@ MODULE_PARM_DESC(nocrt2rate,
|
||||||
"\nSetting this to 1 will force the driver to use the default refresh rate for\n"
|
"\nSetting this to 1 will force the driver to use the default refresh rate for\n"
|
||||||
"CRT2 if CRT2 type is VGA. (default: 0, use same rate as CRT1)\n");
|
"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 this\n"
|
|
||||||
"does not seem to work. (default: 0)\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(__i386__) && !defined(__x86_64__)
|
#if !defined(__i386__) && !defined(__x86_64__)
|
||||||
#ifdef CONFIG_FB_SIS_300
|
#ifdef CONFIG_FB_SIS_300
|
||||||
MODULE_PARM_DESC(resetcard,
|
MODULE_PARM_DESC(resetcard,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче