Staging: xgifb: Refactor XGI_GetVBType().
authorMiguel Gómez <magomez@igalia.com>
Fri, 6 Jul 2012 10:40:47 +0000 (12:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Jul 2012 23:59:30 +0000 (16:59 -0700)
Refactor XGI_GetVBType() to reduce indentation and fix style warnings.

Signed-off-by: Miguel Gómez <magomez@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/xgifb/vb_setmode.c

index 03edf36..251145e 100644 (file)
@@ -2559,42 +2559,45 @@ void XGI_GetVBType(struct vb_device_info *pVBInfo)
 {
        unsigned short flag, tempbx, tempah;
 
-       if (pVBInfo->IF_DEF_LVDS == 0) {
-               tempbx = VB_SIS302B;
-               flag = xgifb_reg_get(pVBInfo->Part4Port, 0x00);
-               if (flag != 0x02) {
-                       tempbx = VB_SIS301;
-                       flag = xgifb_reg_get(pVBInfo->Part4Port, 0x01);
-                       if (flag >= 0xB0) {
-                               tempbx = VB_SIS301B;
-                               if (flag >= 0xC0) {
-                                       tempbx = VB_XGI301C;
-                                       if (flag >= 0xD0) {
-                                               tempbx = VB_SIS301LV;
-                                               if (flag >= 0xE0) {
-                                                       tempbx = VB_SIS302LV;
-                                                       tempah = xgifb_reg_get(
-                                                           pVBInfo->Part4Port,
-                                                           0x39);
-                                                       if (tempah != 0xFF)
-                                                               tempbx =
-                                                                   VB_XGI301C;
-                                               }
-                                       }
-                               }
+       if (pVBInfo->IF_DEF_LVDS != 0)
+               return;
 
-                               if (tempbx & (VB_SIS301B | VB_SIS302B)) {
-                                       flag = xgifb_reg_get(
-                                                       pVBInfo->Part4Port,
-                                                       0x23);
+       tempbx = VB_SIS302B;
+       flag = xgifb_reg_get(pVBInfo->Part4Port, 0x00);
+       if (flag == 0x02)
+               goto finish;
 
-                                       if (!(flag & 0x02))
-                                               tempbx = tempbx | VB_NoLCD;
-                               }
-                       }
-               }
-               pVBInfo->VBType = tempbx;
+       tempbx = VB_SIS301;
+       flag = xgifb_reg_get(pVBInfo->Part4Port, 0x01);
+       if (flag < 0xB0)
+               goto finish;
+
+       tempbx = VB_SIS301B;
+       if (flag < 0xC0)
+               goto bigger_than_0xB0;
+
+       tempbx = VB_XGI301C;
+       if (flag < 0xD0)
+               goto bigger_than_0xB0;
+
+       tempbx = VB_SIS301LV;
+       if (flag < 0xE0)
+               goto bigger_than_0xB0;
+
+       tempbx = VB_SIS302LV;
+       tempah = xgifb_reg_get(pVBInfo->Part4Port, 0x39);
+       if (tempah != 0xFF)
+               tempbx = VB_XGI301C;
+
+bigger_than_0xB0:
+       if (tempbx & (VB_SIS301B | VB_SIS302B)) {
+               flag = xgifb_reg_get(pVBInfo->Part4Port, 0x23);
+               if (!(flag & 0x02))
+                       tempbx = tempbx | VB_NoLCD;
        }
+
+finish:
+       pVBInfo->VBType = tempbx;
 }
 
 static void XGI_GetVBInfo(unsigned short ModeNo, unsigned short ModeIdIndex,