[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