⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sis_main.h

📁 microwindows移植到S3C44B0的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _SISFB_MAIN#define _SISFB_MAIN/* Comments and changes marked with "TW" by Thomas Winischhofer <tw@webit.com> *//* ------------------- Constant Definitions ------------------------- */#undef LINUXBIOS   /* turn on when use LINUXBIOS */#define AGPOFF     /* default is turn off AGP */#define VER_MAJOR                 1#define VER_MINOR                 3#define VER_LEVEL                 13 /* TW: To be included in pci_ids.h */#ifndef PCI_DEVICE_ID_SI_650_VGA#define PCI_DEVICE_ID_SI_650_VGA  0x6325#endif#ifndef PCI_DEVICE_ID_SI_650#define PCI_DEVICE_ID_SI_650      0x0650#endif/* TW end */#define DEFAULT_MODE              3#define DEFAULT_LCDMODE           12#define DEFAULT_TVMODE            12#define MODE_INDEX_NONE           0 /* TW: index for mode=none */#define MAX_ROM_SCAN              0x10000#define TURBO_QUEUE_CAP           0x80#define HW_CURSOR_CAP             0x40#define AGP_CMD_QUEUE_CAP         0x80#define VM_CMD_QUEUE_CAP          0x20/* For 300 series */#ifdef CONFIG_FB_SIS_300#define TURBO_QUEUE_AREA_SIZE     0x80000 /* 512K */#endif/* For 315 series */#ifdef CONFIG_FB_SIS_315#define COMMAND_QUEUE_AREA_SIZE   0x80000 /* 512K */#define COMMAND_QUEUE_THRESHOLD   0x1F#endif/* TW */#define HW_CURSOR_AREA_SIZE_315   0x4000  /* 16K */#define HW_CURSOR_AREA_SIZE_300   0x1000  /* 4K */#define OH_ALLOC_SIZE             4000#define SENTINEL                  0x7fffffff#define SEQ_ADR                   0x14#define SEQ_DATA                  0x15#define DAC_ADR                   0x18#define DAC_DATA                  0x19#define CRTC_ADR                  0x24#define CRTC_DATA                 0x25#define DAC2_ADR                  (0x16-0x30)#define DAC2_DATA                 (0x17-0x30)#define VB_PART1_ADR              (0x04-0x30)#define VB_PART1_DATA             (0x05-0x30)#define VB_PART2_ADR              (0x10-0x30)#define VB_PART2_DATA             (0x11-0x30)#define VB_PART3_ADR              (0x12-0x30)#define VB_PART3_DATA             (0x13-0x30)#define VB_PART4_ADR              (0x14-0x30)#define VB_PART4_DATA             (0x15-0x30)#define IND_SIS_PASSWORD          0x05  /* SRs */#define IND_SIS_COLOR_MODE        0x06#define IND_SIS_RAMDAC_CONTROL    0x07#define IND_SIS_DRAM_SIZE         0x14#define IND_SIS_SCRATCH_REG_16    0x16#define IND_SIS_SCRATCH_REG_17    0x17#define IND_SIS_SCRATCH_REG_1A    0x1A#define IND_SIS_MODULE_ENABLE     0x1E#define IND_SIS_PCI_ADDRESS_SET   0x20#define IND_SIS_TURBOQUEUE_ADR    0x26#define IND_SIS_TURBOQUEUE_SET    0x27#define IND_SIS_POWER_ON_TRAP     0x38#define IND_SIS_POWER_ON_TRAP2    0x39#define IND_SIS_CMDQUEUE_SET      0x26#define IND_SIS_CMDQUEUE_THRESHOLD  0x27#define IND_SIS_SCRATCH_REG_CR30  0x30  /* CRs */#define IND_SIS_SCRATCH_REG_CR31  0x31#define IND_SIS_SCRATCH_REG_CR32  0x32#define IND_SIS_SCRATCH_REG_CR33  0x33#define IND_SIS_LCD_PANEL         0x36#define IND_SIS_SCRATCH_REG_CR37  0x37#define IND_SIS_AGP_IO_PAD        0x48#define IND_BRI_DRAM_STATUS       0x63 /* PCI memory size offset */#define MMIO_QUEUE_PHYBASE        0x85C0#define MMIO_QUEUE_WRITEPORT      0x85C4#define MMIO_QUEUE_READPORT       0x85C8/* Eden Chen; TW */#define IND_SIS_CRT2_WRITE_ENABLE_300 0x24#define IND_SIS_CRT2_WRITE_ENABLE_315 0x2F/* ~Eden Chen; TW */#define SIS_PASSWORD              0x86  /* SR05 */#define SIS_INTERLACED_MODE       0x20  /* SR06 */#define SIS_8BPP_COLOR_MODE       0x0 #define SIS_15BPP_COLOR_MODE      0x1 #define SIS_16BPP_COLOR_MODE      0x2 #define SIS_32BPP_COLOR_MODE      0x4 #define SIS_DRAM_SIZE_MASK        0x3F  /* SR14 */#define SIS_DRAM_SIZE_1MB         0x00#define SIS_DRAM_SIZE_2MB         0x01#define SIS_DRAM_SIZE_4MB         0x03#define SIS_DRAM_SIZE_8MB         0x07#define SIS_DRAM_SIZE_16MB        0x0F#define SIS_DRAM_SIZE_32MB        0x1F#define SIS_DRAM_SIZE_64MB        0x3F#define SIS_DATA_BUS_MASK         0xC0#define SIS_DATA_BUS_32           0x00#define SIS_DATA_BUS_64           0x01#define SIS_DATA_BUS_128          0x02#define SIS315_DRAM_SIZE_MASK     0xF0  /* 315/640?/740? SR14 */#define SIS315_DRAM_SIZE_2MB      0x01#define SIS315_DRAM_SIZE_4MB      0x02#define SIS315_DRAM_SIZE_8MB      0x03#define SIS315_DRAM_SIZE_16MB     0x04#define SIS315_DRAM_SIZE_32MB     0x05#define SIS315_DRAM_SIZE_64MB     0x06#define SIS315_DRAM_SIZE_128MB    0x07#define SIS315_DATA_BUS_MASK      0x02#define SIS315_DATA_BUS_64        0x00#define SIS315_DATA_BUS_128       0x01#define SIS315_DUAL_CHANNEL_MASK  0x0C#define SIS315_SINGLE_CHANNEL_1_RANK  	0x0#define SIS315_SINGLE_CHANNEL_2_RANK  	0x1#define SIS315_ASYM_DDR		  	0x02#define SIS315_DUAL_CHANNEL_1_RANK    	0x3#define SIS550_DRAM_SIZE_MASK     0x3F  /* 550/650 SR14 */#define SIS550_DRAM_SIZE_4MB      0x00#define SIS550_DRAM_SIZE_8MB      0x01#define SIS550_DRAM_SIZE_16MB     0x03#define SIS550_DRAM_SIZE_24MB     0x05#define SIS550_DRAM_SIZE_32MB     0x07#define SIS550_DRAM_SIZE_64MB     0x0F#define SIS550_DRAM_SIZE_96MB     0x17#define SIS550_DRAM_SIZE_128MB    0x1F#define SIS550_DRAM_SIZE_256MB    0x3F#define SIS_SCRATCH_REG_1A_MASK   0x10#define SIS_ENABLE_2D             0x40  /* SR1E */#define SIS_MEM_MAP_IO_ENABLE     0x01  /* SR20 */#define SIS_PCI_ADDR_ENABLE       0x80#define SIS_AGP_CMDQUEUE_ENABLE   0x80  /* 315 SR26 */#define SIS_VRAM_CMDQUEUE_ENABLE  0x40#define SIS_MMIO_CMD_ENABLE       0x20#define SIS_CMD_QUEUE_SIZE_512k   0x00#define SIS_CMD_QUEUE_SIZE_1M     0x04#define SIS_CMD_QUEUE_SIZE_2M     0x08#define SIS_CMD_QUEUE_SIZE_4M     0x0C#define SIS_CMD_QUEUE_RESET       0x01#define SIS_CMD_AUTO_CORR	  0x02#define SIS_SIMULTANEOUS_VIEW_ENABLE  0x01  /* CR30 */#define SIS_MODE_SELECT_CRT2      0x02#define SIS_VB_OUTPUT_COMPOSITE   0x04#define SIS_VB_OUTPUT_SVIDEO      0x08#define SIS_VB_OUTPUT_SCART       0x10#define SIS_VB_OUTPUT_LCD         0x20#define SIS_VB_OUTPUT_CRT2        0x40#define SIS_VB_OUTPUT_HIVISION    0x80#define SIS_VB_OUTPUT_DISABLE     0x20  /* CR31 */#define SIS_DRIVER_MODE           0x40#define SIS_VB_COMPOSITE          0x01  /* CR32 */#define SIS_VB_SVIDEO             0x02#define SIS_VB_SCART              0x04#define SIS_VB_LCD                0x08#define SIS_VB_CRT2               0x10#define SIS_CRT1                  0x20#define SIS_VB_HIVISION           0x40#define SIS_VB_DVI                0x80#define SIS_VB_TV                 (SIS_VB_COMPOSITE | SIS_VB_SVIDEO | SIS_VB_SCART | SIS_VB_HIVISION)#define SIS_LCD_PANEL_800X600     0x1   /* CR36 */#define SIS_LCD_PANEL_1024X768    0x2#define SIS_LCD_PANEL_1280X1024   0x3#define SIS_LCD_PANEL_1280X960    0x4#define SIS_LCD_PANEL_640X480     0x5#define SIS_LCD_PANEL_1600x1200   0x6  /* TW */#define SIS_LCD_PANEL_320x480	  0x7  /* TW: FSTN */#define SIS_EXTERNAL_CHIP_MASK    0x0E  /* CR37 */#define SIS_EXTERNAL_CHIP_SIS301        0x01#define SIS_EXTERNAL_CHIP_LVDS          0x02  #define SIS_EXTERNAL_CHIP_TRUMPION      0x03#define SIS_EXTERNAL_CHIP_LVDS_CHRONTEL 0x04#define SIS_EXTERNAL_CHIP_CHRONTEL      0x05#define SIS_AGP_2X                0x20  /* CR48 */#define BRI_DRAM_SIZE_MASK        0x70  /* PCI bridge */#define BRI_DRAM_SIZE_2MB         0x00#define BRI_DRAM_SIZE_4MB         0x01#define BRI_DRAM_SIZE_8MB         0x02#define BRI_DRAM_SIZE_16MB        0x03#define BRI_DRAM_SIZE_32MB        0x04#define BRI_DRAM_SIZE_64MB        0x05// Eden Chen#define HW_DEVICE_EXTENSION	  SIS_HW_DEVICE_INFO#define PHW_DEVICE_EXTENSION      PSIS_HW_DEVICE_INFO#define SR_BUFFER_SIZE            5#define CR_BUFFER_SIZE            5// ~Eden Chenint enable_dstn = 0;/* ------------------- Global Variables ----------------------------- *//* Fbcon variables */static struct fb_info fb_info;static struct display disp;static int video_type = FB_TYPE_PACKED_PIXELS;static int video_linelength;static int video_cmap_len;static struct display_switch sisfb_sw;static struct fb_var_screeninfo default_var = {	0, 0, 0, 0,	0, 0,	0,	0,	{0, 8, 0},	{0, 8, 0},	{0, 8, 0},	{0, 0, 0},	0,	FB_ACTIVATE_NOW, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0,	0,	FB_VMODE_NONINTERLACED,	{0, 0, 0, 0, 0, 0}};static struct {	u16 blue, green, red, pad;} palette[256];static union {#ifdef FBCON_HAS_CFB16	u16 cfb16[16];#endif#ifdef FBCON_HAS_CFB24	u32 cfb24[16];#endif#ifdef FBCON_HAS_CFB32	u32 cfb32[16];#endif} fbcon_cmap;/* display status */static int sisfb_off = 0;static int sisfb_crt1off = 0;static int sisfb_forcecrt1 = -1;static int sisfb_inverse = 0;static int sisvga_enabled = 0;static int currcon = 0;/*karl*/static int sisfb_tvmode = 0;static int sisfb_mem = 0;static enum _VGA_ENGINE {	UNKNOWN_VGA = 0,	SIS_300_VGA,	SIS_315_VGA,} sisvga_engine = UNKNOWN_VGA;/* TW: These are to adapted to VGA_ENGINE type */static int sisfb_hwcursor_size = 0;static int sisfb_CRT2_write_enable = 0;/* mode-related variables */int sisfb_mode_idx = MODE_INDEX_NONE;  /* (TW) was -1 */u8  sisfb_mode_no = 0;u8  sisfb_rate_idx = 0;int sisfb_crt2type = -1;	/* TW: CRT2 type (for overriding autodetection) */int sisfb_queuemode = -1; 	/* TW: Use MMIO queue mode by default (310 series only) *//* data for sis components*/struct video_info ivideo;// Eden ChenHW_DEVICE_EXTENSION sishw_ext = {	NULL, NULL, NULL, NULL,	0, 0, 0, 0, 0, 0, 0, 0, 0,	NULL, NULL, NULL, NULL,	{0, 0, 0, 0}};// ~Eden Chen/* card parameters */static unsigned long sisfb_mmio_size = 0;static u8 sisfb_caps = 0;typedef enum _SIS_CMDTYPE {	MMIO_CMD = 0,	AGP_CMD_QUEUE,	VM_CMD_QUEUE,} SIS_CMDTYPE;/* Supported SiS Chips list */static struct board {	u16 vendor, device;	const char *name;} sisdev_list[] = {	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_300,     "SIS 300"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_540_VGA, "SIS 540"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_630_VGA, "SIS 630"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_315H,    "SIS 315H"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_315,     "SIS 315"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_315PRO,  "SIS 315Pro"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_550_VGA, "SIS 550"},	{PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_650_VGA, "SIS 650 VGA"},	{0, 0, NULL}};/* mode table */static const struct _sisbios_mode {	char name[15];	u8 mode_no;	u16 xres;	u16 yres;	u16 bpp;	u16 rate_idx;	u16 cols;	u16 rows;} sisbios_mode[] = {	{"none", 0xFF, 0, 0, 0, 0, 0, 0}, 		    /* TW: for mode "none" */	{"320x240x16",   0x56,  320,  240, 16, 1,  40, 15},	{"320x480x8",    0x5A,  320,  480,  8, 1,  40, 30},	{"320x480x16",   0x5B,  320,  480, 16, 1,  40, 30},	{"640x480x8",    0x2E,  640,  480,  8, 1,  80, 30},	{"640x480x16",   0x44,  640,  480, 16, 1,  80, 30},	{"640x480x24",   0x62,  640,  480, 32, 1,  80, 30}, /* TW: That's for people who mix up color- and fb depth */	{"640x480x32",   0x62,  640,  480, 32, 1,  80, 30},	{"720x480x8",    0x31,  720,  480,  8, 1,  90, 30},	{"720x480x16",   0x33,  720,  480, 16, 1,  90, 30},	{"720x480x24",   0x35,  720,  480, 32, 1,  90, 30}, /* TW */	{"720x480x32",   0x35,  720,  480, 32, 1,  90, 30},	{"720x576x8",    0x32,  720,  576,  8, 1,  90, 36},	{"720x576x16",   0x34,  720,  576, 16, 1,  90, 36},	{"720x576x24",   0x36,  720,  576, 32, 1,  90, 36}, /* TW */	{"720x576x32",   0x36,  720,  576, 32, 1,  90, 36},	{"800x600x8",    0x30,  800,  600,  8, 2, 100, 37},	{"800x600x16",   0x47,  800,  600, 16, 2, 100, 37},	{"800x600x24",   0x63,  800,  600, 32, 2, 100, 37}, /* TW */	{"800x600x32",   0x63,  800,  600, 32, 2, 100, 37},	{"1024x768x8",   0x38, 1024,  768,  8, 2, 128, 48},	{"1024x768x16",  0x4A, 1024,  768, 16, 2, 128, 48},	{"1024x768x24",  0x64, 1024,  768, 32, 2, 128, 48}, /* TW */	{"1024x768x32",  0x64, 1024,  768, 32, 2, 128, 48},	{"1280x960x8",   0x7C, 1280,  960,  8, 1, 160, 60}, /* TW */	{"1280x960x16",  0x7D, 1280,  960, 16, 1, 160, 60}, /* TW */	{"1280x960x24",  0x7E, 1280,  960, 32, 1, 160, 60}, /* TW */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -