📄 sis_main.h
字号:
{ 0, 0, 0, 0, 0 }, 0, 0, "Generic", "LVDS/Parallel 848x480", CUT_PANEL848, "PANEL848x480" }, { 0, "", "", 0, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, 0, 0, "", "", CUT_NONE, "" }};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 - 320 */ {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 - 640 */ {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 - 720 */ {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 - 800 */ {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 - 320 */ {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 - 640 */ {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 - 720 */ {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 - 800 */ {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} }}};/* ---------------------- 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 */static int sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info);#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 sis_video_info *ivideo, 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 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_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg, struct fb_info *info);static int sisfb_set_par(struct fb_info *info);static int sisfb_blank(int blank, struct fb_info *info); 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);#endif /* Internal 2D accelerator functions */extern int sisfb_initaccel(struct sis_video_info *ivideo);extern void sisfb_syncaccel(struct sis_video_info *ivideo);/* Internal general routines */static void sisfb_search_mode(char *name, BOOLEAN quiet);static int sisfb_validate_mode(struct sis_video_info *ivideo, int modeindex, u32 vbflags);static u8 sisfb_search_refresh_rate(struct sis_video_info *ivideo, 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(struct sis_video_info *ivideo);static void sisfb_post_setmode(struct sis_video_info *ivideo);static char * sis_find_rom(struct pci_dev *pdev);static BOOLEAN sisfb_CheckVBRetrace(struct sis_video_info *ivideo);static BOOLEAN sisfbcheckvretracecrt2(struct sis_video_info *ivideo);static BOOLEAN sisfbcheckvretracecrt1(struct sis_video_info *ivideo);static BOOLEAN sisfb_bridgeisslave(struct sis_video_info *ivideo);static void sisfb_detect_VB_connect(struct sis_video_info *ivideo);static void sisfb_get_VB_type(struct sis_video_info *ivideo);static void sisfb_set_TVxposoffset(struct sis_video_info *ivideo, int val);static void sisfb_set_TVyposoffset(struct sis_video_info *ivideo, int val);/* SiS-specific exported functions */void sis_malloc(struct sis_memreq *req);void sis_free(u32 base);/* Internal heap routines */static int sisfb_heap_init(struct sis_video_info *ivideo);static SIS_OH *sisfb_poh_new_node(void);static SIS_OH *sisfb_poh_allocate(u32 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(u32 base);static void sisfb_free_node(SIS_OH *poh);/* Sensing routines */static void SiS_Sense30x(struct sis_video_info *ivideo);static void SiS_SenseCh(struct sis_video_info *ivideo);/* Routines from init.c/init301.c */extern USHORT SiS_GetModeID(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay, int Depth, BOOLEAN FSTN);extern USHORT SiS_GetModeID_LCD(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay, int Depth, BOOLEAN FSTN, USHORT CustomT, int LCDwith, int LCDheight);extern USHORT SiS_GetModeID_TV(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay, int Depth);extern USHORT SiS_GetModeID_VGA2(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay, int Depth);extern void SiSRegInit(SiS_Private *SiS_Pr, SISIOADDRESS BaseAddr);extern BOOLEAN SiSSetMode(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceInfo, USHORT ModeNo);extern void SiS_SetEnableDstn(SiS_Private *SiS_Pr, int enable);extern void SiS_SetEnableFstn(SiS_Private *SiS_Pr, int enable);extern BOOLEAN SiSDetermineROMLayout661(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo);extern BOOLEAN sisfb_gettotalfrommode(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceExtension, unsigned char modeno, int *htotal, int *vtotal, unsigned char rateindex);#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)extern int sisfb_mode_rate_to_dclock(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceExtension, unsigned char modeno, unsigned char rateindex);extern int sisfb_mode_rate_to_ddata(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceExtension, unsigned char modeno, unsigned char rateindex, struct fb_var_screeninfo *var);#endif/* Chrontel TV, DDC and DPMS 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);extern void SiS_SetChrontelGPIO(SiS_Private *SiS_Pr, USHORT myvbinfo);extern USHORT SiS_HandleDDC(SiS_Private *SiS_Pr, ULONG VBFlags, int VGAEngine, USHORT adaptnum, USHORT DDCdatatype, unsigned char *buffer);extern USHORT SiS_ReadDDC1Bit(SiS_Private *SiS_Pr);extern void SiS_Chrontel701xBLOn(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceInfo);extern void SiS_Chrontel701xBLOff(SiS_Private *SiS_Pr);extern void SiS_SiS30xBLOn(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceInfo);extern void SiS_SiS30xBLOff(SiS_Private *SiS_Pr, PSIS_HW_INFO HwDeviceInfo);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -