[PATCH] video: fbdev: sis: clean up some inconsistent indenting

Helge Deller deller at gmx.de
Fri Jun 14 07:16:54 UTC 2024


On 6/14/24 08:53, Jiapeng Chong wrote:
> No functional modification involved.
>
> drivers/video/fbdev/sis/sis_main.c:2511 SiS_Sense30x() warn: inconsistent indenting.
>
> Reported-by: Abaci Robot <abaci at linux.alibaba.com>
> Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=9330
> Signed-off-by: Jiapeng Chong <jiapeng.chong at linux.alibaba.com>


Jiapeng, I see your motivation, but sorry, I will not apply this patch.
Please fix indentings only when you have to touch the code anyway, e.g.
when fixing or modifying a specific function. Otherwise you just make
backporting smaller fixes impossible.

Helge


> ---
>   drivers/video/fbdev/sis/sis_main.c | 502 +++++++++++++++--------------
>   1 file changed, 260 insertions(+), 242 deletions(-)
>
> diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
> index 009bf1d92644..fc5b9a0d78bf 100644
> --- a/drivers/video/fbdev/sis/sis_main.c
> +++ b/drivers/video/fbdev/sis/sis_main.c
> @@ -2384,266 +2384,284 @@ static int SISDoSense(struct sis_video_info *ivideo, u16 type, u16 test)
>
>   static void SiS_Sense30x(struct sis_video_info *ivideo)
>   {
> -    u8  backupP4_0d,backupP2_00,backupP2_4d,backupSR_1e,biosflag=0;
> -    u16 svhs=0, svhs_c=0;
> -    u16 cvbs=0, cvbs_c=0;
> -    u16 vga2=0, vga2_c=0;
> -    int myflag, result;
> -    char stdstr[] = "sisfb: Detected";
> -    char tvstr[]  = "TV connected to";
> -
> -    if(ivideo->vbflags2 & VB2_301) {
> -       svhs = 0x00b9; cvbs = 0x00b3; vga2 = 0x00d1;
> -       myflag = SiS_GetReg(SISPART4, 0x01);
> -       if(myflag & 0x04) {
> -	  svhs = 0x00dd; cvbs = 0x00ee; vga2 = 0x00fd;
> -       }
> -    } else if(ivideo->vbflags2 & (VB2_301B | VB2_302B)) {
> -       svhs = 0x016b; cvbs = 0x0174; vga2 = 0x0190;
> -    } else if(ivideo->vbflags2 & (VB2_301LV | VB2_302LV)) {
> -       svhs = 0x0200; cvbs = 0x0100;
> -    } else if(ivideo->vbflags2 & (VB2_301C | VB2_302ELV | VB2_307T | VB2_307LV)) {
> -       svhs = 0x016b; cvbs = 0x0110; vga2 = 0x0190;
> -    } else
> -       return;
> -
> -    vga2_c = 0x0e08; svhs_c = 0x0404; cvbs_c = 0x0804;
> -    if(ivideo->vbflags & (VB2_301LV|VB2_302LV|VB2_302ELV|VB2_307LV)) {
> -       svhs_c = 0x0408; cvbs_c = 0x0808;
> -    }
> -
> -    biosflag = 2;
> -    if(ivideo->haveXGIROM) {
> -       biosflag = ivideo->bios_abase[0x58] & 0x03;
> -    } else if(ivideo->newrom) {
> -       if(ivideo->bios_abase[0x5d] & 0x04) biosflag |= 0x01;
> -    } else if(ivideo->sisvga_engine == SIS_300_VGA) {
> -       if(ivideo->bios_abase) {
> -          biosflag = ivideo->bios_abase[0xfe] & 0x03;
> -       }
> -    }
> -
> -    if(ivideo->chip == SIS_300) {
> -       myflag = SiS_GetReg(SISSR, 0x3b);
> -       if(!(myflag & 0x01)) vga2 = vga2_c = 0;
> -    }
> -
> -    if(!(ivideo->vbflags2 & VB2_SISVGA2BRIDGE)) {
> -       vga2 = vga2_c = 0;
> -    }
> -
> -    backupSR_1e = SiS_GetReg(SISSR, 0x1e);
> -    SiS_SetRegOR(SISSR, 0x1e, 0x20);
> -
> -    backupP4_0d = SiS_GetReg(SISPART4, 0x0d);
> -    if(ivideo->vbflags2 & VB2_30xC) {
> -	SiS_SetRegANDOR(SISPART4, 0x0d, ~0x07, 0x01);
> -    } else {
> -       SiS_SetRegOR(SISPART4, 0x0d, 0x04);
> -    }
> -    SiS_DDC2Delay(&ivideo->SiS_Pr, 0x2000);
> -
> -    backupP2_00 = SiS_GetReg(SISPART2, 0x00);
> -    SiS_SetReg(SISPART2, 0x00, ((backupP2_00 | 0x1c) & 0xfc));
> -
> -    backupP2_4d = SiS_GetReg(SISPART2, 0x4d);
> -    if(ivideo->vbflags2 & VB2_SISYPBPRBRIDGE) {
> -	SiS_SetReg(SISPART2, 0x4d, (backupP2_4d & ~0x10));
> -    }
> -
> -    if(!(ivideo->vbflags2 & VB2_30xCLV)) {
> -       SISDoSense(ivideo, 0, 0);
> -    }
> -
> -    SiS_SetRegAND(SISCR, 0x32, ~0x14);
> -
> -    if(vga2_c || vga2) {
> -       if(SISDoSense(ivideo, vga2, vga2_c)) {
> -          if(biosflag & 0x01) {
> -	     printk(KERN_INFO "%s %s SCART output\n", stdstr, tvstr);
> -	     SiS_SetRegOR(SISCR, 0x32, 0x04);
> -	  } else {
> -	     printk(KERN_INFO "%s secondary VGA connection\n", stdstr);
> -	     SiS_SetRegOR(SISCR, 0x32, 0x10);
> -	  }
> -       }
> -    }
> -
> -    SiS_SetRegAND(SISCR, 0x32, 0x3f);
> -
> -    if(ivideo->vbflags2 & VB2_30xCLV) {
> -       SiS_SetRegOR(SISPART4, 0x0d, 0x04);
> -    }
> -
> -    if((ivideo->sisvga_engine == SIS_315_VGA) && (ivideo->vbflags2 & VB2_SISYPBPRBRIDGE)) {
> -       SiS_SetReg(SISPART2, 0x4d, (backupP2_4d | 0x10));
> -       SiS_DDC2Delay(&ivideo->SiS_Pr, 0x2000);
> -       if((result = SISDoSense(ivideo, svhs, 0x0604))) {
> -          if((result = SISDoSense(ivideo, cvbs, 0x0804))) {
> -	     printk(KERN_INFO "%s %s YPbPr component output\n", stdstr, tvstr);
> -	     SiS_SetRegOR(SISCR, 0x32, 0x80);
> -	  }
> -       }
> -       SiS_SetReg(SISPART2, 0x4d, backupP2_4d);
> -    }
> -
> -    SiS_SetRegAND(SISCR, 0x32, ~0x03);
> -
> -    if(!(ivideo->vbflags & TV_YPBPR)) {
> -       if((result = SISDoSense(ivideo, svhs, svhs_c))) {
> -          printk(KERN_INFO "%s %s SVIDEO output\n", stdstr, tvstr);
> -	   SiS_SetRegOR(SISCR, 0x32, 0x02);
> -       }
> -       if((biosflag & 0x02) || (!result)) {
> -          if(SISDoSense(ivideo, cvbs, cvbs_c)) {
> -	     printk(KERN_INFO "%s %s COMPOSITE output\n", stdstr, tvstr);
> -	     SiS_SetRegOR(SISCR, 0x32, 0x01);
> -          }
> -       }
> -    }
> -
> -    SISDoSense(ivideo, 0, 0);
> -
> -    SiS_SetReg(SISPART2, 0x00, backupP2_00);
> -    SiS_SetReg(SISPART4, 0x0d, backupP4_0d);
> -    SiS_SetReg(SISSR, 0x1e, backupSR_1e);
> -
> -    if(ivideo->vbflags2 & VB2_30xCLV) {
> -	biosflag = SiS_GetReg(SISPART2, 0x00);
> -       if(biosflag & 0x20) {
> -          for(myflag = 2; myflag > 0; myflag--) {
> -	     biosflag ^= 0x20;
> -	     SiS_SetReg(SISPART2, 0x00, biosflag);
> -	  }
> -       }
> -    }
> -
> -    SiS_SetReg(SISPART2, 0x00, backupP2_00);
> +	u8 backupP4_0d, backupP2_00, backupP2_4d, backupSR_1e, biosflag = 0;
> +	u16 svhs = 0, svhs_c = 0;
> +	u16 cvbs = 0, cvbs_c = 0;
> +	u16 vga2 = 0, vga2_c = 0;
> +	int myflag, result;
> +	char stdstr[] = "sisfb: Detected";
> +	char tvstr[]  = "TV connected to";
> +
> +	if (ivideo->vbflags2 & VB2_301) {
> +		svhs = 0x00b9; cvbs = 0x00b3; vga2 = 0x00d1;
> +		myflag = SiS_GetReg(SISPART4, 0x01);
> +		if (myflag & 0x04) {
> +			svhs = 0x00dd; cvbs = 0x00ee; vga2 = 0x00fd;
> +		}
> +	} else if (ivideo->vbflags2 & (VB2_301B | VB2_302B)) {
> +		svhs = 0x016b; cvbs = 0x0174; vga2 = 0x0190;
> +	} else if (ivideo->vbflags2 & (VB2_301LV | VB2_302LV)) {
> +		svhs = 0x0200; cvbs = 0x0100;
> +	} else if (ivideo->vbflags2 & (VB2_301C | VB2_302ELV | VB2_307T | VB2_307LV)) {
> +		svhs = 0x016b; cvbs = 0x0110; vga2 = 0x0190;
> +	} else
> +		return;
> +
> +	vga2_c = 0x0e08; svhs_c = 0x0404; cvbs_c = 0x0804;
> +	if (ivideo->vbflags & (VB2_301LV | VB2_302LV | VB2_302ELV | VB2_307LV)) {
> +		svhs_c = 0x0408; cvbs_c = 0x0808;
> +	}
> +
> +	biosflag = 2;
> +	if (ivideo->haveXGIROM) {
> +		biosflag = ivideo->bios_abase[0x58] & 0x03;
> +	} else if (ivideo->newrom) {
> +		if (ivideo->bios_abase[0x5d] & 0x04)
> +			biosflag |= 0x01;
> +	} else if (ivideo->sisvga_engine == SIS_300_VGA) {
> +		if (ivideo->bios_abase)
> +			biosflag = ivideo->bios_abase[0xfe] & 0x03;
> +	}
> +
> +	if (ivideo->chip == SIS_300) {
> +		myflag = SiS_GetReg(SISSR, 0x3b);
> +		if (!(myflag & 0x01))
> +			vga2 = vga2_c = 0;
> +	}
> +
> +	if (!(ivideo->vbflags2 & VB2_SISVGA2BRIDGE))
> +		vga2 = vga2_c = 0;
> +
> +	backupSR_1e = SiS_GetReg(SISSR, 0x1e);
> +	SiS_SetRegOR(SISSR, 0x1e, 0x20);
> +
> +	backupP4_0d = SiS_GetReg(SISPART4, 0x0d);
> +	if (ivideo->vbflags2 & VB2_30xC)
> +		SiS_SetRegANDOR(SISPART4, 0x0d, ~0x07, 0x01);
> +	else
> +		SiS_SetRegOR(SISPART4, 0x0d, 0x04);
> +
> +	SiS_DDC2Delay(&ivideo->SiS_Pr, 0x2000);
> +
> +	backupP2_00 = SiS_GetReg(SISPART2, 0x00);
> +	SiS_SetReg(SISPART2, 0x00, ((backupP2_00 | 0x1c) & 0xfc));
> +
> +	backupP2_4d = SiS_GetReg(SISPART2, 0x4d);
> +	if (ivideo->vbflags2 & VB2_SISYPBPRBRIDGE)
> +		SiS_SetReg(SISPART2, 0x4d, (backupP2_4d & ~0x10));
> +
> +	if (!(ivideo->vbflags2 & VB2_30xCLV))
> +		SISDoSense(ivideo, 0, 0);
> +
> +	SiS_SetRegAND(SISCR, 0x32, ~0x14);
> +
> +	if (vga2_c || vga2) {
> +		if (SISDoSense(ivideo, vga2, vga2_c)) {
> +			if (biosflag & 0x01) {
> +				printk(KERN_INFO "%s %s SCART output\n", stdstr, tvstr);
> +				SiS_SetRegOR(SISCR, 0x32, 0x04);
> +			} else {
> +				printk(KERN_INFO "%s secondary VGA connection\n", stdstr);
> +				SiS_SetRegOR(SISCR, 0x32, 0x10);
> +			}
> +		}
> +	}
> +
> +	SiS_SetRegAND(SISCR, 0x32, 0x3f);
> +
> +	if (ivideo->vbflags2 & VB2_30xCLV)
> +		SiS_SetRegOR(SISPART4, 0x0d, 0x04);
> +
> +	if ((ivideo->sisvga_engine == SIS_315_VGA) && (ivideo->vbflags2 & VB2_SISYPBPRBRIDGE)) {
> +		SiS_SetReg(SISPART2, 0x4d, (backupP2_4d | 0x10));
> +		SiS_DDC2Delay(&ivideo->SiS_Pr, 0x2000);
> +		result = SISDoSense(ivideo, svhs, 0x0604);
> +		if (result) {
> +			result = SISDoSense(ivideo, cvbs, 0x0804);
> +			if (result) {
> +				printk(KERN_INFO "%s %s YPbPr component output\n", stdstr, tvstr);
> +				SiS_SetRegOR(SISCR, 0x32, 0x80);
> +			}
> +		}
> +		SiS_SetReg(SISPART2, 0x4d, backupP2_4d);
> +	}
> +
> +	SiS_SetRegAND(SISCR, 0x32, ~0x03);
> +
> +	if (!(ivideo->vbflags & TV_YPBPR)) {
> +		result = SISDoSense(ivideo, svhs, svhs_c);
> +		if (result) {
> +			printk(KERN_INFO "%s %s SVIDEO output\n", stdstr, tvstr);
> +			SiS_SetRegOR(SISCR, 0x32, 0x02);
> +		}
> +		if ((biosflag & 0x02) || (!result)) {
> +			if (SISDoSense(ivideo, cvbs, cvbs_c)) {
> +				printk(KERN_INFO "%s %s COMPOSITE output\n", stdstr, tvstr);
> +				SiS_SetRegOR(SISCR, 0x32, 0x01);
> +			}
> +		}
> +	}
> +
> +	SISDoSense(ivideo, 0, 0);
> +
> +	SiS_SetReg(SISPART2, 0x00, backupP2_00);
> +	SiS_SetReg(SISPART4, 0x0d, backupP4_0d);
> +	SiS_SetReg(SISSR, 0x1e, backupSR_1e);
> +
> +	if (ivideo->vbflags2 & VB2_30xCLV) {
> +		biosflag = SiS_GetReg(SISPART2, 0x00);
> +		if (biosflag & 0x20) {
> +			for (myflag = 2; myflag > 0; myflag--) {
> +				biosflag ^= 0x20;
> +				SiS_SetReg(SISPART2, 0x00, biosflag);
> +			}
> +		}
> +	}
> +
> +	SiS_SetReg(SISPART2, 0x00, backupP2_00);
>   }
>
>   /* Determine and detect attached TV's on Chrontel */
>   static void SiS_SenseCh(struct sis_video_info *ivideo)
>   {
>   #if defined(CONFIG_FB_SIS_300) || defined(CONFIG_FB_SIS_315)
> -    u8 temp1, temp2;
> -    char stdstr[] = "sisfb: Chrontel: Detected TV connected to";
> +	u8 temp1, temp2;
> +	char stdstr[] = "sisfb: Chrontel: Detected TV connected to";
>   #endif
>   #ifdef CONFIG_FB_SIS_300
> -    unsigned char test[3];
> -    int i;
> +	unsigned char test[3];
> +	int i;
>   #endif
>
> -    if(ivideo->chip < SIS_315H) {
> +	if (ivideo->chip < SIS_315H) {
>
>   #ifdef CONFIG_FB_SIS_300
> -       ivideo->SiS_Pr.SiS_IF_DEF_CH70xx = 1;		/* Chrontel 700x */
> -       SiS_SetChrontelGPIO(&ivideo->SiS_Pr, 0x9c);	/* Set general purpose IO for Chrontel communication */
> -       SiS_DDC2Delay(&ivideo->SiS_Pr, 1000);
> -       temp1 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x25);
> -       /* See Chrontel TB31 for explanation */
> -       temp2 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x0e);
> -       if(((temp2 & 0x07) == 0x01) || (temp2 & 0x04)) {
> -	  SiS_SetCH700x(&ivideo->SiS_Pr, 0x0e, 0x0b);
> -	  SiS_DDC2Delay(&ivideo->SiS_Pr, 300);
> -       }
> -       temp2 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x25);
> -       if(temp2 != temp1) temp1 = temp2;
> -
> -       if((temp1 >= 0x22) && (temp1 <= 0x50)) {
> -	   /* Read power status */
> -	   temp1 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x0e);
> -	   if((temp1 & 0x03) != 0x03) {
> -		/* Power all outputs */
> -		SiS_SetCH700x(&ivideo->SiS_Pr, 0x0e,0x0b);
> -		SiS_DDC2Delay(&ivideo->SiS_Pr, 300);
> -	   }
> -	   /* Sense connected TV devices */
> -	   for(i = 0; i < 3; i++) {
> -	       SiS_SetCH700x(&ivideo->SiS_Pr, 0x10, 0x01);
> -	       SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> -	       SiS_SetCH700x(&ivideo->SiS_Pr, 0x10, 0x00);
> -	       SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> -	       temp1 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x10);
> -	       if(!(temp1 & 0x08))       test[i] = 0x02;
> -	       else if(!(temp1 & 0x02))  test[i] = 0x01;
> -	       else                      test[i] = 0;
> -	       SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> -	   }
> +		ivideo->SiS_Pr.SiS_IF_DEF_CH70xx = 1;	/* Chrontel 700x */
> +		/* Set general purpose IO for Chrontel communication */
> +		SiS_SetChrontelGPIO(&ivideo->SiS_Pr, 0x9c);
> +		SiS_DDC2Delay(&ivideo->SiS_Pr, 1000);
> +		temp1 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x25);
> +		/* See Chrontel TB31 for explanation */
> +		temp2 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x0e);
> +		if (((temp2 & 0x07) == 0x01) || (temp2 & 0x04)) {
> +			SiS_SetCH700x(&ivideo->SiS_Pr, 0x0e, 0x0b);
> +			SiS_DDC2Delay(&ivideo->SiS_Pr, 300);
> +		}
> +		temp2 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x25);
> +		if (temp2 != temp1)
> +			temp1 = temp2;
> +
> +		if ((temp1 >= 0x22) && (temp1 <= 0x50)) {
> +			/* Read power status */
> +			temp1 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x0e);
> +			if ((temp1 & 0x03) != 0x03) {
> +				/* Power all outputs */
> +				SiS_SetCH700x(&ivideo->SiS_Pr, 0x0e, 0x0b);
> +				SiS_DDC2Delay(&ivideo->SiS_Pr, 300);
> +			}
> +			/* Sense connected TV devices */
> +			for (i = 0; i < 3; i++) {
> +				SiS_SetCH700x(&ivideo->SiS_Pr, 0x10, 0x01);
> +				SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> +				SiS_SetCH700x(&ivideo->SiS_Pr, 0x10, 0x00);
> +				SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> +				temp1 = SiS_GetCH700x(&ivideo->SiS_Pr, 0x10);
> +
> +				if (!(temp1 & 0x08))
> +					test[i] = 0x02;
> +				else if (!(temp1 & 0x02))
> +					test[i] = 0x01;
> +				else
> +					test[i] = 0;
> +				SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> +			}
>
> -	   if(test[0] == test[1])      temp1 = test[0];
> -	   else if(test[0] == test[2]) temp1 = test[0];
> -	   else if(test[1] == test[2]) temp1 = test[1];
> -	   else {
> -		printk(KERN_INFO
> -			"sisfb: TV detection unreliable - test results varied\n");
> -		temp1 = test[2];
> -	   }
> -	   if(temp1 == 0x02) {
> -		printk(KERN_INFO "%s SVIDEO output\n", stdstr);
> -		ivideo->vbflags |= TV_SVIDEO;
> -		SiS_SetRegOR(SISCR, 0x32, 0x02);
> -		SiS_SetRegAND(SISCR, 0x32, ~0x05);
> -	   } else if (temp1 == 0x01) {
> -		printk(KERN_INFO "%s CVBS output\n", stdstr);
> -		ivideo->vbflags |= TV_AVIDEO;
> -		SiS_SetRegOR(SISCR, 0x32, 0x01);
> -		SiS_SetRegAND(SISCR, 0x32, ~0x06);
> -	   } else {
> -		SiS_SetCH70xxANDOR(&ivideo->SiS_Pr, 0x0e, 0x01, 0xF8);
> -		SiS_SetRegAND(SISCR, 0x32, ~0x07);
> -	   }
> -       } else if(temp1 == 0) {
> -	  SiS_SetCH70xxANDOR(&ivideo->SiS_Pr, 0x0e, 0x01, 0xF8);
> -	  SiS_SetRegAND(SISCR, 0x32, ~0x07);
> -       }
> -       /* Set general purpose IO for Chrontel communication */
> -       SiS_SetChrontelGPIO(&ivideo->SiS_Pr, 0x00);
> +			if (test[0] == test[1])
> +				temp1 = test[0];
> +			else if (test[0] == test[2])
> +				temp1 = test[0];
> +			else if (test[1] == test[2])
> +				temp1 = test[1];
> +			else {
> +				printk(KERN_INFO
> +				       "sisfb: TV detection unreliable - test results varied\n");
> +				temp1 = test[2];
> +			}
> +
> +			if (temp1 == 0x02) {
> +				printk(KERN_INFO "%s SVIDEO output\n", stdstr);
> +				ivideo->vbflags |= TV_SVIDEO;
> +				SiS_SetRegOR(SISCR, 0x32, 0x02);
> +				SiS_SetRegAND(SISCR, 0x32, ~0x05);
> +			} else if (temp1 == 0x01) {
> +				printk(KERN_INFO "%s CVBS output\n", stdstr);
> +				ivideo->vbflags |= TV_AVIDEO;
> +				SiS_SetRegOR(SISCR, 0x32, 0x01);
> +				SiS_SetRegAND(SISCR, 0x32, ~0x06);
> +			} else {
> +				SiS_SetCH70xxANDOR(&ivideo->SiS_Pr, 0x0e, 0x01, 0xF8);
> +				SiS_SetRegAND(SISCR, 0x32, ~0x07);
> +			}
> +		} else if (temp1 == 0) {
> +			SiS_SetCH70xxANDOR(&ivideo->SiS_Pr, 0x0e, 0x01, 0xF8);
> +			SiS_SetRegAND(SISCR, 0x32, ~0x07);
> +		}
> +		/* Set general purpose IO for Chrontel communication */
> +		SiS_SetChrontelGPIO(&ivideo->SiS_Pr, 0x00);
>   #endif
>
> -    } else {
> +	} else {
>
>   #ifdef CONFIG_FB_SIS_315
> -	ivideo->SiS_Pr.SiS_IF_DEF_CH70xx = 2;		/* Chrontel 7019 */
> -	temp1 = SiS_GetCH701x(&ivideo->SiS_Pr, 0x49);
> -	SiS_SetCH701x(&ivideo->SiS_Pr, 0x49, 0x20);
> -	SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> -	temp2 = SiS_GetCH701x(&ivideo->SiS_Pr, 0x20);
> -	temp2 |= 0x01;
> -	SiS_SetCH701x(&ivideo->SiS_Pr, 0x20, temp2);
> -	SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> -	temp2 ^= 0x01;
> -	SiS_SetCH701x(&ivideo->SiS_Pr, 0x20, temp2);
> -	SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> -	temp2 = SiS_GetCH701x(&ivideo->SiS_Pr, 0x20);
> -	SiS_SetCH701x(&ivideo->SiS_Pr, 0x49, temp1);
> -	temp1 = 0;
> -	if(temp2 & 0x02) temp1 |= 0x01;
> -	if(temp2 & 0x10) temp1 |= 0x01;
> -	if(temp2 & 0x04) temp1 |= 0x02;
> -	if( (temp1 & 0x01) && (temp1 & 0x02) ) temp1 = 0x04;
> -	switch(temp1) {
> -	case 0x01:
> -	     printk(KERN_INFO "%s CVBS output\n", stdstr);
> -	     ivideo->vbflags |= TV_AVIDEO;
> -	     SiS_SetRegOR(SISCR, 0x32, 0x01);
> -	     SiS_SetRegAND(SISCR, 0x32, ~0x06);
> -	     break;
> -	case 0x02:
> -	     printk(KERN_INFO "%s SVIDEO output\n", stdstr);
> -	     ivideo->vbflags |= TV_SVIDEO;
> -	     SiS_SetRegOR(SISCR, 0x32, 0x02);
> -	     SiS_SetRegAND(SISCR, 0x32, ~0x05);
> -	     break;
> -	case 0x04:
> -	     printk(KERN_INFO "%s SCART output\n", stdstr);
> -	     SiS_SetRegOR(SISCR, 0x32, 0x04);
> -	     SiS_SetRegAND(SISCR, 0x32, ~0x03);
> -	     break;
> -	default:
> -	     SiS_SetRegAND(SISCR, 0x32, ~0x07);
> -	}
> +		ivideo->SiS_Pr.SiS_IF_DEF_CH70xx = 2;		/* Chrontel 7019 */
> +		temp1 = SiS_GetCH701x(&ivideo->SiS_Pr, 0x49);
> +		SiS_SetCH701x(&ivideo->SiS_Pr, 0x49, 0x20);
> +		SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> +		temp2 = SiS_GetCH701x(&ivideo->SiS_Pr, 0x20);
> +		temp2 |= 0x01;
> +
> +		SiS_SetCH701x(&ivideo->SiS_Pr, 0x20, temp2);
> +		SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> +		temp2 ^= 0x01;
> +
> +		SiS_SetCH701x(&ivideo->SiS_Pr, 0x20, temp2);
> +		SiS_DDC2Delay(&ivideo->SiS_Pr, 0x96);
> +		temp2 = SiS_GetCH701x(&ivideo->SiS_Pr, 0x20);
> +		SiS_SetCH701x(&ivideo->SiS_Pr, 0x49, temp1);
> +		temp1 = 0;
> +
> +		if (temp2 & 0x02)
> +			temp1 |= 0x01;
> +		if (temp2 & 0x10)
> +			temp1 |= 0x01;
> +		if (temp2 & 0x04)
> +			temp1 |= 0x02;
> +		if ((temp1 & 0x01) && (temp1 & 0x02))
> +			temp1 = 0x04;
> +
> +		switch (temp1) {
> +		case 0x01:
> +			printk(KERN_INFO "%s CVBS output\n", stdstr);
> +			ivideo->vbflags |= TV_AVIDEO;
> +			SiS_SetRegOR(SISCR, 0x32, 0x01);
> +			SiS_SetRegAND(SISCR, 0x32, ~0x06);
> +			break;
> +		case 0x02:
> +			printk(KERN_INFO "%s SVIDEO output\n", stdstr);
> +			ivideo->vbflags |= TV_SVIDEO;
> +			SiS_SetRegOR(SISCR, 0x32, 0x02);
> +			SiS_SetRegAND(SISCR, 0x32, ~0x05);
> +			break;
> +		case 0x04:
> +			printk(KERN_INFO "%s SCART output\n", stdstr);
> +			SiS_SetRegOR(SISCR, 0x32, 0x04);
> +			SiS_SetRegAND(SISCR, 0x32, ~0x03);
> +			break;
> +		default:
> +			SiS_SetRegAND(SISCR, 0x32, ~0x07);
> +		}
>   #endif
> -    }
> +	}
>   }
>
>   static void sisfb_get_VB_type(struct sis_video_info *ivideo)



More information about the dri-devel mailing list