[PATCH 01/20] staging: xgifb: ReadVBIOSTablData(): avoid duplicating code
Aaro Koskinen
aaro.koskinen at iki.fi
Sun Dec 4 18:46:43 UTC 2011
If the count (j) is 0xff, just do the loop once.
Signed-off-by: Aaro Koskinen <aaro.koskinen at iki.fi>
---
drivers/staging/xgifb/vb_init.c | 65 ++++++--------------------------------
1 files changed, 11 insertions(+), 54 deletions(-)
diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c
index 9b86f4f..d4f96bb 100644
--- a/drivers/staging/xgifb/vb_init.c
+++ b/drivers/staging/xgifb/vb_init.c
@@ -1106,59 +1106,10 @@ static void ReadVBIOSTablData(unsigned char ChipType,
pVBInfo->IF_DEF_LVDS = 1;
i = pVideoMemory[0x316] | (pVideoMemory[0x317] << 8);
j = pVideoMemory[i - 1];
- if (j != 0xff) {
- k = 0;
- do {
- pVBInfo->XG21_LVDSCapList[k].
- LVDS_Capability
- = pVideoMemory[i] |
- (pVideoMemory[i + 1] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSHT
- = pVideoMemory[i + 2] |
- (pVideoMemory[i + 3] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSVT
- = pVideoMemory[i + 4] |
- (pVideoMemory[i + 5] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSHDE
- = pVideoMemory[i + 6] |
- (pVideoMemory[i + 7] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSVDE
- = pVideoMemory[i + 8] |
- (pVideoMemory[i + 9] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSHFP
- = pVideoMemory[i + 10] |
- (pVideoMemory[i + 11] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSVFP
- = pVideoMemory[i + 12] |
- (pVideoMemory[i + 13] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSHSYNC
- = pVideoMemory[i + 14] |
- (pVideoMemory[i + 15] << 8);
- pVBInfo->XG21_LVDSCapList[k].LVDSVSYNC
- = pVideoMemory[i + 16] |
- (pVideoMemory[i + 17] << 8);
- pVBInfo->XG21_LVDSCapList[k].VCLKData1
- = pVideoMemory[i + 18];
- pVBInfo->XG21_LVDSCapList[k].VCLKData2
- = pVideoMemory[i + 19];
- pVBInfo->XG21_LVDSCapList[k].PSC_S1
- = pVideoMemory[i + 20];
- pVBInfo->XG21_LVDSCapList[k].PSC_S2
- = pVideoMemory[i + 21];
- pVBInfo->XG21_LVDSCapList[k].PSC_S3
- = pVideoMemory[i + 22];
- pVBInfo->XG21_LVDSCapList[k].PSC_S4
- = pVideoMemory[i + 23];
- pVBInfo->XG21_LVDSCapList[k].PSC_S5
- = pVideoMemory[i + 24];
- i += 25;
- j--;
- k++;
- } while ((j > 0) &&
- (k < (sizeof(XGI21_LCDCapList) /
- sizeof(struct
- XGI21_LVDSCapStruct))));
- } else {
+ if (j == 0xff)
+ j = 1;
+ k = 0;
+ do {
pVBInfo->XG21_LVDSCapList[0].LVDS_Capability
= pVideoMemory[i] |
(pVideoMemory[i + 1] << 8);
@@ -1200,7 +1151,13 @@ static void ReadVBIOSTablData(unsigned char ChipType,
= pVideoMemory[i + 23];
pVBInfo->XG21_LVDSCapList[0].PSC_S5
= pVideoMemory[i + 24];
- }
+ i += 25;
+ j--;
+ k++;
+ } while ((j > 0) &&
+ (k < (sizeof(XGI21_LCDCapList) /
+ sizeof(struct
+ XGI21_LVDSCapStruct))));
}
}
}
--
1.7.2.5
More information about the devel
mailing list