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

📄 sis_main.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
📖 第 1 页 / 共 3 页
字号:
#ifndef _SISFB_MAIN#define _SISFB_MAIN/* Comments and changes marked with "TW" by Thomas Winischhofer <thomas@winischhofer.net> */#include "vstruct.h"/* ------------------- Constant Definitions ------------------------- */#undef LINUXBIOS   /* turn this on when compiling for LINUXBIOS */#define AGPOFF     /* default is turn off AGP */#define SISFAIL(x) do { printk(x "\n"); return -EINVAL; } while(0)#define VER_MAJOR                 1#define VER_MINOR                 5#define VER_LEVEL                 7#include "sis.h"/* 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 MAX_ROM_SCAN              0x10000#define HW_CURSOR_CAP             0x80#define TURBO_QUEUE_CAP           0x40#define AGP_CMD_QUEUE_CAP         0x20#define VM_CMD_QUEUE_CAP          0x10#define MMIO_CMD_QUEUE_CAP        0x08/* 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 SISSR			  SiS_Pr.SiS_P3c4#define SISCR                     SiS_Pr.SiS_P3d4#define SISDACA                   SiS_Pr.SiS_P3c8#define SISDACD                   SiS_Pr.SiS_P3c9#define SISPART1                  SiS_Pr.SiS_Part1Port#define SISPART2                  SiS_Pr.SiS_Part2Port#define SISPART3                  SiS_Pr.SiS_Part3Port#define SISPART4                  SiS_Pr.SiS_Part4Port#define SISPART5                  SiS_Pr.SiS_Part5Port#define SISDAC2A                  SISPART5#define SISDAC2D                  (SISPART5 + 1)#define SISMISCR                  (SiS_Pr.RelIO + 0x1c)#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 config memory size offset */#define MMIO_QUEUE_PHYBASE        0x85C0#define MMIO_QUEUE_WRITEPORT      0x85C4#define MMIO_QUEUE_READPORT       0x85C8#define IND_SIS_CRT2_WRITE_ENABLE_300 0x24#define IND_SIS_CRT2_WRITE_ENABLE_315 0x2F#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  /* 300/630/730 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 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/740 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/650/740 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_EXTERNAL_CHIP_MASK    	   0x0E  /* CR37 */#define SIS_EXTERNAL_CHIP_SIS301           0x01  /* in CR37 << 1 ! */#define SIS_EXTERNAL_CHIP_LVDS             0x02  /* in CR37 << 1 ! */#define SIS_EXTERNAL_CHIP_TRUMPION         0x03  /* in CR37 << 1 ! */#define SIS_EXTERNAL_CHIP_LVDS_CHRONTEL    0x04  /* in CR37 << 1 ! */#define SIS_EXTERNAL_CHIP_CHRONTEL         0x05  /* in CR37 << 1 ! */#define SIS310_EXTERNAL_CHIP_LVDS          0x02  /* in CR37 << 1 ! */#define SIS310_EXTERNAL_CHIP_LVDS_CHRONTEL 0x03  /* in CR37 << 1 ! */#define SIS_AGP_2X                0x20  /* CR48 */#define BRI_DRAM_SIZE_MASK        0x70  /* PCI bridge config data */#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#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/* Useful macros */#define inSISREG(base)          inb(base)#define outSISREG(base,val)     outb(val,base)#define orSISREG(base,val)      do { \                                  unsigned char __Temp = inb(base); \                                  outSISREG(base, __Temp | (val)); \                                } while (0)#define andSISREG(base,val)     do { \                                  unsigned char __Temp = inb(base); \                                  outSISREG(base, __Temp & (val)); \                                } while (0)#define inSISIDXREG(base,idx,var)   do { \                                      outb(idx,base); var=inb((base)+1); \                                    } while (0)#define outSISIDXREG(base,idx,val)  do { \                                      outb(idx,base); outb((val),(base)+1); \                                    } while (0)#define orSISIDXREG(base,idx,val)   do { \                                      unsigned char __Temp; \                                      outb(idx,base);   \                                      __Temp = inb((base)+1)|(val); \                                      outSISIDXREG(base,idx,__Temp); \                                    } while (0)#define andSISIDXREG(base,idx,and)  do { \                                      unsigned char __Temp; \                                      outb(idx,base);   \                                      __Temp = inb((base)+1)&(and); \                                      outSISIDXREG(base,idx,__Temp); \                                    } while (0)#define setSISIDXREG(base,idx,and,or)   do { \                                          unsigned char __Temp; \                                          outb(idx,base);   \                                          __Temp = (inb((base)+1)&(and))|(or); \                                          outSISIDXREG(base,idx,__Temp); \                                        } while (0)/* ------------------- Global Variables ----------------------------- *//* Fbcon variables */static struct fb_info sis_fb_info;static struct display sis_disp;static int    video_type = FB_TYPE_PACKED_PIXELS;#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,33)static struct display_switch sisfb_sw;#endifstatic struct fb_var_screeninfo default_var = {	xres:           0,	yres:           0,	xres_virtual:   0,	yres_virtual:   0,	xoffset:        0,	yoffset:        0,	bits_per_pixel: 0,	grayscale:      0,	red:            {0, 8, 0},	green:          {0, 8, 0},	blue:           {0, 8, 0},	transp:         {0, 0, 0},	nonstd:         0,	activate:       FB_ACTIVATE_NOW,	height:         -1,	width:          -1,	accel_flags:    0,	pixclock:       0,	left_margin:    0,	right_margin:   0,	upper_margin:   0,	lower_margin:   0,	hsync_len:      0,	vsync_len:      0,

⌨️ 快捷键说明

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