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

📄 sis_main.h

📁 一个2.4.21版本的嵌入式linux内核
💻 H
📖 第 1 页 / 共 3 页
字号:
	u8 gmask[72];	int ngmask;} SIS_GLYINFO;#endiftypedef struct _SIS_OH {	struct _SIS_OH *poh_next;	struct _SIS_OH *poh_prev;	unsigned long offset;	unsigned long size;} SIS_OH;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;static 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;/* ---------------------- Prototypes ------------------------- *//* Interface used by the world */#ifndef MODULEint             sisfb_setup(char *options);#endif/* Interface to the low level console driver */int             sisfb_init(void);/* fbdev routines */#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)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,			      struct fb_info *info);static int      sisfb_set_var(struct fb_var_screeninfo *var, 			      int con,			      struct fb_info *info);static void     sisfb_crtc_to_var(struct fb_var_screeninfo *var);			      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);			static int      sisfb_update_var(int con, 				 struct fb_info *info);static int      sisfb_switch(int con, 			     struct fb_info *info);static void     sisfb_blank(int blank, 			    struct fb_info *info);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);static void     sis_get_glyph(struct fb_info *info,                               SIS_GLYINFO *gly);static int 	sisfb_mmap(struct fb_info *info, struct file *file,		           struct vm_area_struct *vma);	static int      sisfb_ioctl(struct inode *inode, struct file *file,		       	    unsigned int cmd, unsigned long arg, int con,		       	    struct fb_info *info);		      #endif			#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)static int      sisfb_set_par(struct fb_info *info);static int      sisfb_blank(int blank,                             struct fb_info *info);			static int 	sisfb_mmap(struct fb_info *info, struct file *file,		           struct vm_area_struct *vma);			    extern void     fbcon_sis_fillrect(struct fb_info *info,                                    const struct fb_fillrect *rect);extern void     fbcon_sis_copyarea(struct fb_info *info,                                    const struct fb_copyarea *area);extern int      fbcon_sis_sync(struct fb_info *info);static int      sisfb_ioctl(struct inode *inode, 	 		    struct file *file,		       	    unsigned int cmd, 			    unsigned long arg, 		       	    struct fb_info *info);extern int	sisfb_mode_rate_to_dclock(SiS_Private *SiS_Pr, 			      PSIS_HW_DEVICE_INFO HwDeviceExtension,			      unsigned char modeno, unsigned char rateindex);	extern int      sisfb_mode_rate_to_ddata(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension,			 unsigned char modeno, unsigned char rateindex,			 unsigned int *left_margin, unsigned int *right_margin, 			 unsigned int *upper_margin, unsigned int *lower_margin,			 unsigned int *hsync_len, unsigned int *vsync_len,			 unsigned int *sync, unsigned int *vmode);			      		    			      #endif			static int      sisfb_get_fix(struct fb_fix_screeninfo *fix, int con,			      struct fb_info *info);/* Internal 2D accelerator functions */extern int      sisfb_initaccel(void);extern void     sisfb_syncaccel(void);/* Internal general routines */static void     sisfb_search_mode(const char *name);static int      sisfb_validate_mode(int modeindex, unsigned long vbflags);static u8       sisfb_search_refresh_rate(unsigned int rate, int index);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);static void     sisfb_pre_setmode(void);static void     sisfb_post_setmode(void);static char *   sis_find_rom(void);static BOOLEAN  sisfb_CheckVBRetrace(void);static BOOLEAN  sisfbcheckvretracecrt2(void);static BOOLEAN  sisfbcheckvretracecrt1(void);static BOOLEAN  sisfb_bridgeisslave(void);static void     sisfb_detect_VB_connect(void);static void     sisfb_get_VB_type(void);/* SiS-specific Export functions */void            sis_dispinfo(struct ap_data *rec);void            sis_malloc(struct sis_memreq *req);void            sis_free(unsigned long base);/* Internal hardware access routines */void            sisfb_set_reg4(u16 port, unsigned long data);u32             sisfb_get_reg3(u16 port);/* Chipset-dependent internal routines */#ifdef CONFIG_FB_SIS_300static int      sisfb_get_dram_size_300(void);#endif#ifdef CONFIG_FB_SIS_315static int      sisfb_get_dram_size_315(void);#endif/* Internal 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);/* Internal 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);/* 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     SiS_SetEnableDstn(SiS_Private *SiS_Pr);extern void     SiS_LongWait(SiS_Private *SiS_Pr);/* 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);/* Sensing routines */void            SiS_Sense30x(void);int             SISDoSense(int tempbl, int tempbh, int tempcl, int tempch);void            SiS_SenseCh(void);						#endif

⌨️ 快捷键说明

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