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

📄 sis_main.h

📁 该文件是rt_linux
💻 H
📖 第 1 页 / 共 3 页
字号:
typedef struct _SIS_OHALLOC {	struct _SIS_OHALLOC *poha_next;	SIS_OH aoh[1];} SIS_OHALLOC;typedef struct _SIS_HEAP {	SIS_OH oh_free;	SIS_OH oh_used;	SIS_OH *poh_freelist;	SIS_OHALLOC *poha_chain;	unsigned long max_freesize;} SIS_HEAP;static unsigned long sisfb_hwcursor_vbase;static unsigned long sisfb_heap_start;static unsigned long sisfb_heap_end;static unsigned long sisfb_heap_size;static SIS_HEAP      sisfb_heap;// Eden Chenstatic const struct _sis_TV_filter {	u8 filter[9][4];} sis_TV_filter[] = {	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_0 */	   {0x00,0xE0,0x10,0x60},	   {0x00,0xEE,0x10,0x44},	   {0x00,0xF4,0x10,0x38},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0x00,0x00,0x10,0x20},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_1 */	   {0x00,0xE0,0x10,0x60},	   {0x00,0xEE,0x10,0x44},	   {0x00,0xF4,0x10,0x38},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0x00,0x00,0x10,0x20},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_2 */	   {0xF5,0xEE,0x1B,0x44},	   {0xF8,0xF4,0x18,0x38},	   {0xEB,0x04,0x25,0x18},	   {0xF1,0x05,0x1F,0x16},	   {0xF6,0x06,0x1A,0x14},	   {0xFA,0x06,0x16,0x14},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_3 */	   {0xF1,0x04,0x1F,0x18},	   {0xEE,0x0D,0x22,0x06},	   {0xF7,0x06,0x19,0x14},	   {0xF4,0x0B,0x1C,0x0A},	   {0xFA,0x07,0x16,0x12},	   {0xF9,0x0A,0x17,0x0C},	   {0x00,0x07,0x10,0x12}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_4 */	   {0x00,0xE0,0x10,0x60},	   {0x00,0xEE,0x10,0x44},	   {0x00,0xF4,0x10,0x38},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0x00,0x00,0x10,0x20},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_5 */	   {0xF5,0xEE,0x1B,0x44},	   {0xF8,0xF4,0x18,0x38},	   {0xEB,0x04,0x25,0x18},	   {0xF1,0x05,0x1F,0x16},	   {0xF6,0x06,0x1A,0x14},	   {0xFA,0x06,0x16,0x14},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_6 */	   {0xEB,0x04,0x25,0x18},	   {0xE7,0x0E,0x29,0x04},	   {0xEE,0x0C,0x22,0x08},	   {0xF6,0x0B,0x1A,0x0A},	   {0xF9,0x0A,0x17,0x0C},	   {0xFC,0x0A,0x14,0x0C},	   {0x00,0x08,0x10,0x10}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* NTSCFilter_7 */	   {0xEC,0x02,0x24,0x1C},	   {0xF2,0x04,0x1E,0x18},	   {0xEB,0x15,0x25,0xF6},	   {0xF4,0x10,0x1C,0x00},	   {0xF8,0x0F,0x18,0x02},	   {0x00,0x04,0x10,0x18},	   {0x01,0x06,0x0F,0x14}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_0 */	   {0x00,0xE0,0x10,0x60},	   {0x00,0xEE,0x10,0x44},	   {0x00,0xF4,0x10,0x38},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0x00,0x00,0x10,0x20},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_1 */	   {0x00,0xE0,0x10,0x60},	   {0x00,0xEE,0x10,0x44},	   {0x00,0xF4,0x10,0x38},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0x00,0x00,0x10,0x20},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_2 */	   {0xF5,0xEE,0x1B,0x44},	   {0xF8,0xF4,0x18,0x38},	   {0xF1,0xF7,0x01,0x32},	   {0xF5,0xFB,0x1B,0x2A},	   {0xF9,0xFF,0x17,0x22},	   {0xFB,0x01,0x15,0x1E},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_3 */	   {0xF5,0xFB,0x1B,0x2A},	   {0xEE,0xFE,0x22,0x24},	   {0xF3,0x00,0x1D,0x20},	   {0xF9,0x03,0x17,0x1A},	   {0xFB,0x02,0x14,0x1E},	   {0xFB,0x04,0x15,0x18},	   {0x00,0x06,0x10,0x14}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_4 */	   {0x00,0xE0,0x10,0x60},	   {0x00,0xEE,0x10,0x44},	   {0x00,0xF4,0x10,0x38},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0x00,0x00,0x10,0x20},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_5 */	   {0xF5,0xEE,0x1B,0x44},	   {0xF8,0xF4,0x18,0x38},	   {0xF1,0xF7,0x1F,0x32},	   {0xF5,0xFB,0x1B,0x2A},	   {0xF9,0xFF,0x17,0x22},	   {0xFB,0x01,0x15,0x1E},	   {0x00,0x04,0x10,0x18}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_6 */	   {0xF5,0xEE,0x1B,0x2A},	   {0xEE,0xFE,0x22,0x24},	   {0xF3,0x00,0x1D,0x20},	   {0xF9,0x03,0x17,0x1A},	   {0xFB,0x02,0x14,0x1E},	   {0xFB,0x04,0x15,0x18},	   {0x00,0x06,0x10,0x14}, 	   {0xFF,0xFF,0xFF,0xFF} }},	{ {{0x00,0x00,0x00,0x40},  /* PALFilter_7 */	   {0xF5,0xEE,0x1B,0x44},	   {0xF8,0xF4,0x18,0x38},	   {0xFC,0xFB,0x14,0x2A},	   {0xEB,0x05,0x25,0x16},	   {0xF1,0x05,0x1F,0x16},	   {0xFA,0x07,0x16,0x12},	   {0x00,0x07,0x10,0x12}, 	   {0xFF,0xFF,0xFF,0xFF} }}};static int           filter = -1;static unsigned char filter_tb;//~Eden Chen/* ---------------------- Routine prototypes ------------------------- *//* Interface used by the world */#ifndef MODULEint             sisfb_setup(char *options);#endifstatic 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);#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34)static int      sisfb_set_par(struct fb_info *info);#endif#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,33)static int      sisfb_set_var(struct fb_var_screeninfo *var, int con,			struct fb_info *info);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);#endifstatic int      sisfb_ioctl(struct inode *inode, struct file *file,		       	unsigned int cmd, unsigned long arg, int con,		       	struct fb_info *info);/* Interface to the low level console driver */int             sisfb_init(void);#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,33)static int      sisfb_update_var(int con, struct fb_info *info);static int      sisfb_switch(int con, struct fb_info *info);#endif#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34)static int      sisfb_blank(int blank, struct fb_info *info);#elsestatic void     sisfb_blank(int blank, struct fb_info *info);#endif/* hardware access routines */void            sisfb_set_reg4(u16 port, unsigned long data);u32             sisfb_get_reg3(u16 port);/* 2D accelerator functions */extern int      sisfb_initaccel(void);#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34)extern void     fbcon_sis_fillrect(struct fb_info *info, struct fb_fillrect *rect);extern void     fbcon_sis_copyarea(struct fb_info *info, struct fb_copyarea *area);extern void     cfb_imageblit(struct fb_info *info, struct fb_image *image);#endif/* Internal routines */static void     sisfb_search_mode(const char *name);static int      sisfb_validate_mode(int modeindex);static u8       sisfb_search_refresh_rate(unsigned int rate);static int      sisfb_setcolreg(unsigned regno, unsigned red, unsigned green,			unsigned blue, unsigned transp,			struct fb_info *fb_info);static int      sisfb_do_set_var(struct fb_var_screeninfo *var, int isactive,		      	struct fb_info *info);#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,33)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);#endifstatic void     sisfb_pre_setmode(void);static void     sisfb_post_setmode(void);static void     sisfb_crtc_to_var(struct fb_var_screeninfo *var);/* Chipset-dependent Routines */#ifdef CONFIG_FB_SIS_300static int      sisfb_get_dram_size_300(void);static void     sisfb_detect_VB_connect_300(void);static void     sisfb_get_VB_type_300(void);static int      sisfb_has_VB_300(void);#endif#ifdef CONFIG_FB_SIS_315static int      sisfb_get_dram_size_315(void);static void     sisfb_detect_VB_connect_315(void);static void     sisfb_get_VB_type_315(void);static int      sisfb_has_VB_315(void);#endif/* TW: Sensing routines */void            SiS_Sense30x(void);int             SISDoSense(int tempbl, int tempbh, int tempcl, int tempch);void            SiS_SenseCh(void);/* Routines from init.c/init301.c */extern void 	SiSRegInit(SiS_Private *SiS_Pr, USHORT BaseAddr);extern BOOLEAN  SiSInit(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension);extern BOOLEAN  SiSSetMode(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT ModeNo);extern void     SetEnableDstn(SiS_Private *SiS_Pr);extern void     SiS_LongWait(SiS_Private *SiS_Pr);/* TW: Chrontel TV functions */extern USHORT 	SiS_GetCH700x(SiS_Private *SiS_Pr, USHORT tempbx);extern void 	SiS_SetCH700x(SiS_Private *SiS_Pr, USHORT tempbx);extern USHORT 	SiS_GetCH701x(SiS_Private *SiS_Pr, USHORT tempbx);extern void 	SiS_SetCH701x(SiS_Private *SiS_Pr, USHORT tempbx);extern void     SiS_SetCH70xxANDOR(SiS_Private *SiS_Pr, USHORT tempax,USHORT tempbh);extern void     SiS_DDC2Delay(SiS_Private *SiS_Pr, USHORT delaytime);/* Export functions  */static void     sis_get_glyph(struct fb_info *info, SIS_GLYINFO *gly);void            sis_dispinfo(struct ap_data *rec);void            sis_malloc(struct sis_memreq *req);void            sis_free(unsigned long base);/* heap routines */static int      sisfb_heap_init(void);static SIS_OH   *sisfb_poh_new_node(void);static SIS_OH   *sisfb_poh_allocate(unsigned long size);static void     sisfb_delete_node(SIS_OH *poh);static void     sisfb_insert_node(SIS_OH *pohList, SIS_OH *poh);static SIS_OH   *sisfb_poh_free(unsigned long base);static void     sisfb_free_node(SIS_OH *poh);/* routines to access PCI configuration space */BOOLEAN         sisfb_query_VGA_config_space(PSIS_HW_DEVICE_INFO psishw_ext,	          	unsigned long offset, unsigned long set, unsigned long *value);BOOLEAN         sisfb_query_north_bridge_space(PSIS_HW_DEVICE_INFO psishw_ext,	         	unsigned long offset, unsigned long set, unsigned long *value);#endif

⌨️ 快捷键说明

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