diff --git a/drivers/staging/xgifb/vb_setmode.c b/drivers/staging/xgifb/vb_setmode.c
index 29fcf2c..41f29a3 100644
--- a/drivers/staging/xgifb/vb_setmode.c
+++ b/drivers/staging/xgifb/vb_setmode.c
@@ -4555,11 +4555,11 @@
 	if (enable)
 		tempbx = pVBInfo->SetFlag & EnableChA;
 	else
-		tempbx = pVBInfo->SetFlag & DisableChA;
+		tempbx = 0;
 
 	tempah = ~((unsigned short) xgifb_reg_get(pVBInfo->Part1Port, 0x2E));
 
-	if (tempbx & (EnableChA | DisableChA)) {
+	if (tempbx & EnableChA) {
 		if (!(tempah & 0x08)) /* Chk LCDA Mode */
 			return 0;
 	}
@@ -4585,10 +4585,6 @@
 					      XGI_SetCRT2ToLCDA))
 						/* Disable Channel B */
 						tempah = 0xBF;
-
-					if (pVBInfo->SetFlag & DisableChA)
-						/* Force to disable Channel B */
-						tempah &= 0x7F;
 				}
 			}
 		}
@@ -4605,14 +4601,12 @@
 				xgifb_reg_or(pVBInfo->Part4Port, 0x30, 0x80);
 		}
 
-		if ((pVBInfo->SetFlag & DisableChA) || (pVBInfo->VBInfo
-				& (DisableCRT2Display | XGI_SetCRT2ToLCDA
-						| SetSimuScanMode)))
+		if (pVBInfo->VBInfo & (DisableCRT2Display | XGI_SetCRT2ToLCDA |
+				       SetSimuScanMode))
 			XGI_DisplayOff(xgifb_info, HwDeviceExtension, pVBInfo);
 
 		if (pVBInfo->VBInfo & XGI_SetCRT2ToLCDA) {
-			if ((pVBInfo->SetFlag & DisableChA) || (pVBInfo->VBInfo
-					& XGI_SetCRT2ToLCDA))
+			if (pVBInfo->VBInfo & XGI_SetCRT2ToLCDA)
 				/* Power down */
 				xgifb_reg_and(pVBInfo->Part1Port, 0x1e, 0xdf);
 		}
@@ -5469,12 +5463,10 @@
 
 	if (pVBInfo->VBType & (VB_SIS301B | VB_SIS302B | VB_SIS301LV
 			| VB_SIS302LV | VB_XGI301C)) {
-		if (!(pVBInfo->SetFlag & DisableChA)) {
-			if ((pVBInfo->SetFlag & EnableChA) ||
-			    (pVBInfo->VBInfo & SetCRT2ToDualEdge)) {
-				/* Power on */
-				xgifb_reg_set(pVBInfo->Part1Port, 0x1E, 0x20);
-			}
+		if ((pVBInfo->SetFlag & EnableChA) ||
+		    (pVBInfo->VBInfo & SetCRT2ToDualEdge)) {
+			/* Power on */
+			xgifb_reg_set(pVBInfo->Part1Port, 0x1E, 0x20);
 		}
 
 		if (pVBInfo->VBInfo & (SetCRT2ToLCD | SetCRT2ToTV |
@@ -5527,9 +5519,6 @@
 				if (pVBInfo->VBInfo & XGI_SetCRT2ToLCDA)
 					tempah = tempah ^ 0xC0;
 
-				if (pVBInfo->SetFlag &  DisableChA)
-					tempah &= 0x7F;
-
 				if (pVBInfo->SetFlag &  EnableChA)
 					tempah |= 0x80;
 			}
@@ -5538,10 +5527,8 @@
 		/* EnablePart4_1F */
 		xgifb_reg_or(pVBInfo->Part4Port, 0x1F, tempah);
 
-		if (!(pVBInfo->SetFlag & DisableChA)) {
-			XGI_DisableGatingCRT(HwDeviceExtension, pVBInfo);
-			XGI_DisplayOn(xgifb_info, HwDeviceExtension, pVBInfo);
-		}
+		XGI_DisableGatingCRT(HwDeviceExtension, pVBInfo);
+		XGI_DisplayOn(xgifb_info, HwDeviceExtension, pVBInfo);
 	} /* 301 */
 	else { /* LVDS */
 		if (pVBInfo->VBInfo & (SetCRT2ToTV | SetCRT2ToLCD
