mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
sisfb: move XGI POST RAM type detection into a subroutine
Move XGI POST RAM type detection into a separate subroutine to make further code changes easier. No changes in functionality Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Cc: Thomas Winischhofer <thomas@winischhofer.net> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
83ea0f164c
commit
74de5f4e52
1 changed files with 35 additions and 22 deletions
|
@ -4936,6 +4936,40 @@ sisfb_post_xgi_setclocks(struct sis_video_info *ivideo, u8 regb)
|
|||
sisfb_post_xgi_delay(ivideo, 0x43);
|
||||
}
|
||||
|
||||
static u8 __devinit
|
||||
sisfb_post_xgi_ramtype(struct sis_video_info *ivideo)
|
||||
{
|
||||
unsigned char *bios = ivideo->bios_abase;
|
||||
u8 ramtype;
|
||||
u8 reg;
|
||||
u8 v1;
|
||||
|
||||
ramtype = 0x00; v1 = 0x10;
|
||||
if (ivideo->haveXGIROM) {
|
||||
ramtype = bios[0x62];
|
||||
v1 = bios[0x1d2];
|
||||
}
|
||||
if (!(ramtype & 0x80)) {
|
||||
if (ivideo->chip == XGI_20) {
|
||||
SiS_SetReg(SISCR, 0x97, v1);
|
||||
reg = SiS_GetReg(SISCR, 0x97);
|
||||
if (reg & 0x10) {
|
||||
ramtype = (reg & 0x01) << 1;
|
||||
}
|
||||
} else {
|
||||
reg = SiS_GetReg(SISSR, 0x39);
|
||||
ramtype = reg & 0x02;
|
||||
if (!(ramtype)) {
|
||||
reg = SiS_GetReg(SISSR, 0x3a);
|
||||
ramtype = (reg >> 1) & 0x01;
|
||||
}
|
||||
}
|
||||
}
|
||||
ramtype &= 0x07;
|
||||
|
||||
return ramtype;
|
||||
}
|
||||
|
||||
static int __devinit
|
||||
sisfb_post_xgi(struct pci_dev *pdev)
|
||||
{
|
||||
|
@ -5380,28 +5414,7 @@ sisfb_post_xgi(struct pci_dev *pdev)
|
|||
SiS_SetReg(SISSR, 0x1c, 0x00);
|
||||
}
|
||||
|
||||
ramtype = 0x00; v1 = 0x10;
|
||||
if(ivideo->haveXGIROM) {
|
||||
ramtype = bios[0x62];
|
||||
v1 = bios[0x1d2];
|
||||
}
|
||||
if(!(ramtype & 0x80)) {
|
||||
if(ivideo->chip == XGI_20) {
|
||||
SiS_SetReg(SISCR, 0x97, v1);
|
||||
reg = SiS_GetReg(SISCR, 0x97);
|
||||
if(reg & 0x10) {
|
||||
ramtype = (reg & 0x01) << 1;
|
||||
}
|
||||
} else {
|
||||
reg = SiS_GetReg(SISSR, 0x39);
|
||||
ramtype = reg & 0x02;
|
||||
if(!(ramtype)) {
|
||||
reg = SiS_GetReg(SISSR, 0x3a);
|
||||
ramtype = (reg >> 1) & 0x01;
|
||||
}
|
||||
}
|
||||
}
|
||||
ramtype &= 0x07;
|
||||
ramtype = sisfb_post_xgi_ramtype(ivideo);
|
||||
|
||||
regb = 0; /* ! */
|
||||
|
||||
|
|
Loading…
Reference in a new issue