patch-2.4.0-test2 linux/drivers/video/sisfb.c
Next file: linux/drivers/video/skeletonfb.c
Previous file: linux/drivers/video/sgivwfb.c
Back to the patch index
Back to the overall index
- Lines: 137
- Date:
Fri Jun 23 20:55:46 2000
- Orig file:
v2.4.0-test1/linux/drivers/video/sisfb.c
- Orig date:
Mon Jun 19 16:32:00 2000
diff -u --recursive --new-file v2.4.0-test1/linux/drivers/video/sisfb.c linux/drivers/video/sisfb.c
@@ -43,9 +43,10 @@
#define FALSE 0
#define TRUE 1
-/* Draw Function */
+/* Draw Function
#define FBIOGET_GLYPH 0x4620
#define FBIOGET_HWCINFO 0x4621
+*/
#define BR(x) (0x8200 | (x) << 2)
#define BITBLT 0x00000000
@@ -115,7 +116,8 @@
#define MMIO_SIZE 0x20000 /* 128K MMIO capability */
#define MAX_ROM_SCAN 0x10000
-#define RESERVED_MEM_SIZE 0x400000 /* 4M */
+#define RESERVED_MEM_SIZE_4M 0x400000 /* 4M */
+#define RESERVED_MEM_SIZE_8M 0x800000 /* 8M */
/* Mode set stuff */
#define DEFAULT_MODE 0
@@ -173,9 +175,9 @@
const char *name;
} dev_list[] = {
{
- PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS_300, "SIS 300"}, {
- PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS_540, "SIS 540"}, {
- PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS_630, "SIS 630"}, {
+ PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_300, "SIS 300"}, {
+ PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_540, "SIS 540"}, {
+ PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_630, "SIS 630"}, {
0, 0, NULL}
};
@@ -422,8 +424,6 @@
/* Interface used by the world */
int sisfb_setup(char *options);
-static int sisfb_open(struct fb_info *info, int user);
-static int sisfb_release(struct fb_info *info, int user);
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,
@@ -1022,8 +1022,11 @@
struct OH *poh;
u8 jTemp, tq_state;
- heap_start = (unsigned long) ivideo.video_vbase + RESERVED_MEM_SIZE;
- //heap_start = (unsigned long)ivideo.video_vbase + (video_size - RESERVED_MEM_SIZE);
+ if(ivideo.video_size > 0x800000) /* video ram is large than 8M */
+ heap_start = (unsigned long) ivideo.video_vbase + RESERVED_MEM_SIZE_8M;
+ else
+ heap_start = (unsigned long) ivideo.video_vbase + RESERVED_MEM_SIZE_4M;
+
heap_end = (unsigned long) ivideo.video_vbase + ivideo.video_size;
heap_size = heap_end - heap_start;
@@ -1400,6 +1403,7 @@
static u16 get_modeID_length(unsigned long ROMAddr, u16 ModeNo)
{
+#if 0
unsigned char ModeID;
u16 modeidlength;
u16 usModeIDOffset;
@@ -1413,6 +1417,8 @@
ModeID = *((unsigned char *) (ROMAddr + usModeIDOffset));
}
return (modeidlength);
+#endif
+ return(10);
}
static int search_modeID(unsigned long ROMAddr, u16 ModeNo)
@@ -2457,22 +2463,6 @@
/* ------------------ Public Routines ------------------------------- */
/*
- * Open/Release the frame buffer device
- */
-
-static int sisfb_open(struct fb_info *info, int user)
-{
- MOD_INC_USE_COUNT;
- return (0);
-}
-
-static int sisfb_release(struct fb_info *info, int user)
-{
- MOD_DEC_USE_COUNT;
- return (0);
-}
-
-/*
* Get the Fixed Part of the Display
*/
@@ -2485,7 +2475,11 @@
strcpy(fix->id, fb_info.modename);
fix->smem_start = ivideo.video_base;
- fix->smem_len = RESERVED_MEM_SIZE; /* reserved for Xserver */
+ if(ivideo.video_size > 0x800000)
+ fix->smem_len = RESERVED_MEM_SIZE_8M; /* reserved for Xserver */
+ else
+ fix->smem_len = RESERVED_MEM_SIZE_4M; /* reserved for Xserver */
+
fix->type = video_type;
fix->type_aux = 0;
if (ivideo.video_bpp == 8)
@@ -2694,16 +2688,15 @@
}
static struct fb_ops sisfb_ops = {
- sisfb_open,
- sisfb_release,
- sisfb_get_fix,
- sisfb_get_var,
- sisfb_set_var,
- sisfb_get_cmap,
- sisfb_set_cmap,
- sisfb_pan_display,
- sisfb_ioctl,
- sisfb_mmap
+ 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,
+ fb_mmap: sisfb_mmap,
};
int sisfb_setup(char *options)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)