staging/xgifb: Simplify XGI_GetRatePtrCRT2
authorPeter Huewe <peterhuewe@gmx.de>
Sun, 3 Feb 2013 21:54:30 +0000 (22:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Feb 2013 18:46:27 +0000 (10:46 -0800)
Since the smaller LCDRefreshIndex is contained identically in LCDARefreshIndex
we can simply use LCDARefreshIndex and skip the if/else.

Since LCDARefreshIndex is only used readonly and contains only small
unsigned values we also change its declaration to const u8.

In order to prevent an out-of-bounds access I changed the mask from 0x0F
to 0x07 and added a dummy value.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/xgifb/vb_setmode.c

index 8eb23a41bc3e7b8ed423406779dce06655fc9b15..02e76c5edbfc7915cad5df13ce57d32b64dd516e 100644 (file)
@@ -5470,9 +5470,8 @@ unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE,
                unsigned short ModeNo, unsigned short ModeIdIndex,
                struct vb_device_info *pVBInfo)
 {
-       short LCDRefreshIndex[] = { 0x00, 0x00, 0x03, 0x01 },
-                       LCDARefreshIndex[] = { 0x00, 0x00, 0x03, 0x01, 0x01,
-                                       0x01, 0x01 };
+       const u8 LCDARefreshIndex[] = {
+               0x00, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00 };
 
        unsigned short RefreshRateTableIndex, i, index, temp;
 
@@ -5489,15 +5488,8 @@ unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE,
        if (pVBInfo->SetFlag & ProgrammingCRT2) {
                if (pVBInfo->VBInfo & (SetCRT2ToLCD | XGI_SetCRT2ToLCDA)) {
                        if (pVBInfo->IF_DEF_LVDS == 0) {
-                               if (pVBInfo->VBType & (VB_SIS301B | VB_SIS302B
-                                               | VB_SIS301LV | VB_SIS302LV
-                                               | VB_XGI301C))
-                                       /* 301b */
-                                       temp = LCDARefreshIndex[
-                                               pVBInfo->LCDResInfo & 0x0F];
-                               else
-                                       temp = LCDRefreshIndex[
-                                               pVBInfo->LCDResInfo & 0x0F];
+                               temp = LCDARefreshIndex[
+                                       pVBInfo->LCDResInfo & 0x07];
 
                                if (index > temp)
                                        index = temp;