mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
staging/xgifb: Replace delay lookup tables with constant values
For TV Devices: The values taken from XGI_TVDelayList are always overwritten with the values from XGI_TVDelayList2 since the if condition for using the values from XGI_TVDelayList2 is identical with the check to enter this scope and thus always true. The delay values in XGI_TVDelayList2 is always 0x22 so we can simply replace it with this constant value. For LCD Devices: The LCD_DelayCompensation field is always set to 0x12 so we can simply replace this field with a constant value. This saves about 500 bytes in compiled size. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
64e2498b6c
commit
03f76fc617
@ -105,9 +105,6 @@ void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo)
|
||||
else
|
||||
pVBInfo->LCDCapList = XGI_LCDCapList;
|
||||
|
||||
pVBInfo->XGI_TVDelayList = XGI301TVDelayList;
|
||||
pVBInfo->XGI_TVDelayList2 = XGI301TVDelayList2;
|
||||
|
||||
pVBInfo->pXGINew_I2CDefinition = &XG40_I2CDefinition;
|
||||
|
||||
if (ChipType >= XG20)
|
||||
@ -5712,32 +5709,19 @@ static void XGI_GetTVPtrIndex2(unsigned short *tempbx, unsigned char *tempcl,
|
||||
|
||||
static void XGI_SetDelayComp(struct vb_device_info *pVBInfo)
|
||||
{
|
||||
unsigned short index;
|
||||
|
||||
unsigned char tempah, tempbl, tempbh;
|
||||
|
||||
if (pVBInfo->VBType & (VB_SIS301B | VB_SIS302B | VB_SIS301LV
|
||||
| VB_SIS302LV | VB_XGI301C)) {
|
||||
if (pVBInfo->VBInfo & (SetCRT2ToLCD | XGI_SetCRT2ToLCDA
|
||||
| SetCRT2ToTV | SetCRT2ToRAMDAC)) {
|
||||
tempbl = 0;
|
||||
tempbh = 0;
|
||||
|
||||
index = XGI_GetTVPtrIndex(pVBInfo); /* Get TV Delay */
|
||||
tempbl = pVBInfo->XGI_TVDelayList[index];
|
||||
|
||||
if (pVBInfo->VBType & (VB_SIS301B | VB_SIS302B
|
||||
| VB_SIS301LV | VB_SIS302LV
|
||||
| VB_XGI301C))
|
||||
tempbl = pVBInfo->XGI_TVDelayList2[index];
|
||||
tempbl = XGI301TVDelay;
|
||||
|
||||
if (pVBInfo->VBInfo & SetCRT2ToDualEdge)
|
||||
tempbl = tempbl >> 4;
|
||||
if (pVBInfo->VBInfo & (SetCRT2ToLCD | XGI_SetCRT2ToLCDA)) {
|
||||
/* Get LCD Delay */
|
||||
index = XGI_GetLCDCapPtr(pVBInfo);
|
||||
tempbh = pVBInfo->LCDCapList[index].
|
||||
LCD_DelayCompensation;
|
||||
tempbh = XGI301LCDDelay;
|
||||
|
||||
if (!(pVBInfo->VBInfo & XGI_SetCRT2ToLCDA))
|
||||
tempbl = tempbh;
|
||||
@ -5763,10 +5747,7 @@ static void XGI_SetDelayComp(struct vb_device_info *pVBInfo)
|
||||
tempbl = 0;
|
||||
tempbh = 0;
|
||||
if (pVBInfo->VBInfo & SetCRT2ToLCD) {
|
||||
/* / Get LCD Delay */
|
||||
tempah = pVBInfo->LCDCapList[
|
||||
XGI_GetLCDCapPtr(pVBInfo)].
|
||||
LCD_DelayCompensation;
|
||||
tempah = XGI301LCDDelay;
|
||||
tempah &= 0x0f;
|
||||
tempah = tempah << 4;
|
||||
xgifb_reg_and_or(pVBInfo->Part1Port, 0x2D, 0x0f,
|
||||
|
@ -126,7 +126,6 @@ struct XGI330_LCDCapStruct {
|
||||
unsigned char LCD_ID;
|
||||
unsigned short LCD_Capability;
|
||||
unsigned char LCD_SetFlag;
|
||||
unsigned char LCD_DelayCompensation;
|
||||
unsigned char LCD_HSyncWidth;
|
||||
unsigned char LCD_VSyncWidth;
|
||||
unsigned char LCD_VCLK;
|
||||
@ -262,8 +261,6 @@ struct vb_device_info {
|
||||
struct SiS_MCLKData *MCLKData;
|
||||
struct XGI_ECLKDataStruct *ECLKData;
|
||||
|
||||
unsigned char *XGI_TVDelayList;
|
||||
unsigned char *XGI_TVDelayList2;
|
||||
unsigned char *NTSCTiming;
|
||||
unsigned char *PALTiming;
|
||||
unsigned char *HiTVExtTiming;
|
||||
|
@ -1993,70 +1993,70 @@ static unsigned short LCDLenList[] = {
|
||||
/* Dual link only */
|
||||
static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
|
||||
/* LCDCap1024x768 */
|
||||
{Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
|
||||
{Panel_1024x768, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
|
||||
0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
|
||||
/* LCDCap1280x1024 */
|
||||
{Panel_1280x1024, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
|
||||
0x012, 0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCap1400x1050 */
|
||||
{Panel_1400x1050, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
|
||||
0x012, 0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCap1600x1200 */
|
||||
{Panel_1600x1200, XGI_LCDDualLink+DefaultLCDCap, LCDToFull,
|
||||
0x012, 0xC0, 0x03, VCLK162,
|
||||
0xC0, 0x03, VCLK162,
|
||||
0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCap1024x768x75 */
|
||||
{Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
|
||||
{Panel_1024x768x75, DefaultLCDCap, 0, 0x60, 0, VCLK78_75,
|
||||
0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
|
||||
/* LCDCap1280x1024x75 */
|
||||
{Panel_1280x1024x75, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
|
||||
0x012, 0x90, 0x03, VCLK135_5,
|
||||
0x90, 0x03, VCLK135_5,
|
||||
0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCapDefault */
|
||||
{0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
|
||||
{0xFF, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
|
||||
0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
|
||||
};
|
||||
|
||||
static struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
|
||||
/* LCDCap1024x768 */
|
||||
{Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
|
||||
{Panel_1024x768, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
|
||||
0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
|
||||
/* LCDCap1280x1024 */
|
||||
{Panel_1280x1024, DefaultLCDCap, StLCDBToA,
|
||||
0x012, 0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCap1400x1050 */
|
||||
{Panel_1400x1050, DefaultLCDCap, StLCDBToA,
|
||||
0x012, 0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x03, VCLK108_2_315,
|
||||
0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCap1600x1200 */
|
||||
{Panel_1600x1200, DefaultLCDCap, LCDToFull,
|
||||
0x012, 0xC0, 0x03, VCLK162,
|
||||
0xC0, 0x03, VCLK162,
|
||||
0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCap1024x768x75 */
|
||||
{Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
|
||||
{Panel_1024x768x75, DefaultLCDCap, 0, 0x60, 0, VCLK78_75,
|
||||
0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
|
||||
/* LCDCap1280x1024x75 */
|
||||
{Panel_1280x1024x75, DefaultLCDCap, StLCDBToA,
|
||||
0x012, 0x90, 0x03, VCLK135_5,
|
||||
0x90, 0x03, VCLK135_5,
|
||||
0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
|
||||
/* LCDCapDefault */
|
||||
{0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
|
||||
{0xFF, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
|
||||
0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
|
||||
0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
|
||||
};
|
||||
@ -2482,36 +2482,8 @@ static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = {
|
||||
{0xFF, 0x00, 0} /* End mark */
|
||||
};
|
||||
|
||||
static unsigned char XGI301TVDelayList[] = {
|
||||
0x22, /* ; 0 ExtNTSCDelay */
|
||||
0x22, /* ; 1 StNTSCDelay */
|
||||
0x22, /* ; 2 ExtPALDelay */
|
||||
0x22, /* ; 3 StPALDelay */
|
||||
0x88, /* ; 4 ExtHiTVDelay(1080i) */
|
||||
0xBB, /* ; 5 StHiTVDelay(1080i) */
|
||||
0x22, /* ; 6 ExtYPbPrDelay(525i) */
|
||||
0x22, /* ; 7 StYPbPrDealy(525i) */
|
||||
0x22, /* ; 8 ExtYPbPrDelay(525p) */
|
||||
0x22, /* ; 9 StYPbPrDealy(525p) */
|
||||
0x22, /* ; A ExtYPbPrDelay(750p) */
|
||||
0x22 /* B StYPbPrDealy(750p) */
|
||||
};
|
||||
|
||||
static unsigned char XGI301TVDelayList2[] = {
|
||||
0x22, /* ; 0 ExtNTSCDelay */
|
||||
0x22, /* ; 1 StNTSCDelay */
|
||||
0x22, /* ; 2 ExtPALDelay */
|
||||
0x22, /* ; 3 StPALDelay */
|
||||
0x22, /* ; 4 ExtHiTVDelay */
|
||||
0x22, /* ; 5 StHiTVDelay */
|
||||
0x22, /* ; 6 ExtYPbPrDelay(525i) */
|
||||
0x22, /* ; 7 StYPbPrDealy(525i) */
|
||||
0x22, /* ; 8 ExtYPbPrDelay(525p) */
|
||||
0x22, /* ; 9 StYPbPrDealy(525p) */
|
||||
0x22, /* ; A ExtYPbPrDelay(750p) */
|
||||
0x22 /* ; B StYPbPrDealy(750p) */
|
||||
};
|
||||
|
||||
#define XGI301TVDelay 0x22
|
||||
#define XGI301LCDDelay 0x12
|
||||
|
||||
static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
|
||||
0x04, /* ; 0 Adaptive */
|
||||
|
Loading…
Reference in New Issue
Block a user