diff options
| -rw-r--r-- | drivers/video/sis/init.c | 537 | ||||
| -rw-r--r-- | drivers/video/sis/init.h | 40 | ||||
| -rw-r--r-- | drivers/video/sis/init301.c | 162 | ||||
| -rw-r--r-- | drivers/video/sis/init301.h | 14 | ||||
| -rw-r--r-- | drivers/video/sis/osdef.h | 20 | ||||
| -rw-r--r-- | drivers/video/sis/vgatypes.h | 9 | ||||
| -rw-r--r-- | drivers/video/sis/vstruct.h | 6 |
7 files changed, 0 insertions, 788 deletions
diff --git a/drivers/video/sis/init.c b/drivers/video/sis/init.c index c311ad3c3687..53e30ea56507 100644 --- a/drivers/video/sis/init.c +++ b/drivers/video/sis/init.c | |||
| @@ -340,9 +340,7 @@ SiSInitPtr(struct SiS_Private *SiS_Pr) | |||
| 340 | /* HELPER: Get ModeID */ | 340 | /* HELPER: Get ModeID */ |
| 341 | /*********************************************/ | 341 | /*********************************************/ |
| 342 | 342 | ||
| 343 | #ifndef SIS_XORG_XF86 | ||
| 344 | static | 343 | static |
| 345 | #endif | ||
| 346 | unsigned short | 344 | unsigned short |
| 347 | SiS_GetModeID(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, | 345 | SiS_GetModeID(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, |
| 348 | int Depth, bool FSTN, int LCDwidth, int LCDheight) | 346 | int Depth, bool FSTN, int LCDwidth, int LCDheight) |
| @@ -2999,11 +2997,6 @@ SiS_SetCRT1Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned sho | |||
| 2999 | SiS_Pr->SiS_SelectCRT2Rate = 0; | 2997 | SiS_Pr->SiS_SelectCRT2Rate = 0; |
| 3000 | SiS_Pr->SiS_SetFlag &= (~ProgrammingCRT2); | 2998 | SiS_Pr->SiS_SetFlag &= (~ProgrammingCRT2); |
| 3001 | 2999 | ||
| 3002 | #ifdef SIS_XORG_XF86 | ||
| 3003 | xf86DrvMsgVerb(0, X_PROBED, 4, "(init: VBType=0x%04x, VBInfo=0x%04x)\n", | ||
| 3004 | SiS_Pr->SiS_VBType, SiS_Pr->SiS_VBInfo); | ||
| 3005 | #endif | ||
| 3006 | |||
| 3007 | if(SiS_Pr->SiS_VBInfo & SetSimuScanMode) { | 3000 | if(SiS_Pr->SiS_VBInfo & SetSimuScanMode) { |
| 3008 | if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { | 3001 | if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { |
| 3009 | SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; | 3002 | SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; |
| @@ -3203,73 +3196,11 @@ SiS_Handle760(struct SiS_Private *SiS_Pr) | |||
| 3203 | } | 3196 | } |
| 3204 | 3197 | ||
| 3205 | /*********************************************/ | 3198 | /*********************************************/ |
| 3206 | /* X.org/XFree86: SET SCREEN PITCH */ | ||
| 3207 | /*********************************************/ | ||
| 3208 | |||
| 3209 | #ifdef SIS_XORG_XF86 | ||
| 3210 | static void | ||
| 3211 | SiS_SetPitchCRT1(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn) | ||
| 3212 | { | ||
| 3213 | SISPtr pSiS = SISPTR(pScrn); | ||
| 3214 | unsigned short HDisplay = pSiS->scrnPitch >> 3; | ||
| 3215 | |||
| 3216 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x13,(HDisplay & 0xFF)); | ||
| 3217 | SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0E,0xF0,(HDisplay >> 8)); | ||
| 3218 | } | ||
| 3219 | |||
| 3220 | static void | ||
| 3221 | SiS_SetPitchCRT2(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn) | ||
| 3222 | { | ||
| 3223 | SISPtr pSiS = SISPTR(pScrn); | ||
| 3224 | unsigned short HDisplay = pSiS->scrnPitch2 >> 3; | ||
| 3225 | |||
| 3226 | /* Unlock CRT2 */ | ||
| 3227 | if(pSiS->VGAEngine == SIS_315_VGA) | ||
| 3228 | SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2F, 0x01); | ||
| 3229 | else | ||
| 3230 | SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x24, 0x01); | ||
| 3231 | |||
| 3232 | SiS_SetReg(SiS_Pr->SiS_Part1Port,0x07,(HDisplay & 0xFF)); | ||
| 3233 | SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x09,0xF0,(HDisplay >> 8)); | ||
| 3234 | } | ||
| 3235 | |||
| 3236 | static void | ||
| 3237 | SiS_SetPitch(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn) | ||
| 3238 | { | ||
| 3239 | SISPtr pSiS = SISPTR(pScrn); | ||
| 3240 | bool isslavemode = false; | ||
| 3241 | |||
| 3242 | if( (pSiS->VBFlags2 & VB2_VIDEOBRIDGE) && | ||
| 3243 | ( ((pSiS->VGAEngine == SIS_300_VGA) && | ||
| 3244 | (SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0xa0) == 0x20) || | ||
| 3245 | ((pSiS->VGAEngine == SIS_315_VGA) && | ||
| 3246 | (SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x50) == 0x10) ) ) { | ||
| 3247 | isslavemode = true; | ||
| 3248 | } | ||
| 3249 | |||
| 3250 | /* We need to set pitch for CRT1 if bridge is in slave mode, too */ | ||
| 3251 | if((pSiS->VBFlags & DISPTYPE_DISP1) || (isslavemode)) { | ||
| 3252 | SiS_SetPitchCRT1(SiS_Pr, pScrn); | ||
| 3253 | } | ||
| 3254 | /* We must not set the pitch for CRT2 if bridge is in slave mode */ | ||
| 3255 | if((pSiS->VBFlags & DISPTYPE_DISP2) && (!isslavemode)) { | ||
| 3256 | SiS_SetPitchCRT2(SiS_Pr, pScrn); | ||
| 3257 | } | ||
| 3258 | } | ||
| 3259 | #endif | ||
| 3260 | |||
| 3261 | /*********************************************/ | ||
| 3262 | /* SiSSetMode() */ | 3199 | /* SiSSetMode() */ |
| 3263 | /*********************************************/ | 3200 | /*********************************************/ |
| 3264 | 3201 | ||
| 3265 | #ifdef SIS_XORG_XF86 | ||
| 3266 | /* We need pScrn for setting the pitch correctly */ | ||
| 3267 | bool | ||
| 3268 | SiSSetMode(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, unsigned short ModeNo, bool dosetpitch) | ||
| 3269 | #else | ||
| 3270 | bool | 3202 | bool |
| 3271 | SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo) | 3203 | SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo) |
| 3272 | #endif | ||
| 3273 | { | 3204 | { |
| 3274 | SISIOADDRESS BaseAddr = SiS_Pr->IOAddress; | 3205 | SISIOADDRESS BaseAddr = SiS_Pr->IOAddress; |
| 3275 | unsigned short RealModeNo, ModeIdIndex; | 3206 | unsigned short RealModeNo, ModeIdIndex; |
| @@ -3301,9 +3232,6 @@ SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo) | |||
| 3301 | SiS_GetSysFlags(SiS_Pr); | 3232 | SiS_GetSysFlags(SiS_Pr); |
| 3302 | 3233 | ||
| 3303 | SiS_Pr->SiS_VGAINFO = 0x11; | 3234 | SiS_Pr->SiS_VGAINFO = 0x11; |
| 3304 | #if defined(SIS_XORG_XF86) && (defined(i386) || defined(__i386) || defined(__i386__) || defined(__AMD64__) || defined(__amd64__) || defined(__x86_64__)) | ||
| 3305 | if(pScrn) SiS_Pr->SiS_VGAINFO = SiS_GetSetBIOSScratch(pScrn, 0x489, 0xff); | ||
| 3306 | #endif | ||
| 3307 | 3235 | ||
| 3308 | #ifdef SIS_LINUX_KERNEL | 3236 | #ifdef SIS_LINUX_KERNEL |
| 3309 | KeepLockReg = SiS_GetReg(SiS_Pr->SiS_P3c4,0x05); | 3237 | KeepLockReg = SiS_GetReg(SiS_Pr->SiS_P3c4,0x05); |
| @@ -3424,18 +3352,6 @@ SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo) | |||
| 3424 | } | 3352 | } |
| 3425 | } | 3353 | } |
| 3426 | 3354 | ||
| 3427 | #ifdef SIS_XORG_XF86 | ||
| 3428 | if(pScrn) { | ||
| 3429 | /* SetPitch: Adapt to virtual size & position */ | ||
| 3430 | if((ModeNo > 0x13) && (dosetpitch)) { | ||
| 3431 | SiS_SetPitch(SiS_Pr, pScrn); | ||
| 3432 | } | ||
| 3433 | |||
| 3434 | /* Backup/Set ModeNo in BIOS scratch area */ | ||
| 3435 | SiS_GetSetModeID(pScrn, ModeNo); | ||
| 3436 | } | ||
| 3437 | #endif | ||
| 3438 | |||
| 3439 | SiS_CloseCRTC(SiS_Pr); | 3355 | SiS_CloseCRTC(SiS_Pr); |
| 3440 | 3356 | ||
| 3441 | SiS_Handle760(SiS_Pr); | 3357 | SiS_Handle760(SiS_Pr); |
| @@ -3448,400 +3364,6 @@ SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo) | |||
| 3448 | return true; | 3364 | return true; |
| 3449 | } | 3365 | } |
| 3450 | 3366 | ||
| 3451 | /*********************************************/ | ||
| 3452 | /* X.org/XFree86: SiSBIOSSetMode() */ | ||
| 3453 | /* for non-Dual-Head mode */ | ||
| 3454 | /*********************************************/ | ||
| 3455 | |||
| 3456 | #ifdef SIS_XORG_XF86 | ||
| 3457 | bool | ||
| 3458 | SiSBIOSSetMode(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, | ||
| 3459 | DisplayModePtr mode, bool IsCustom) | ||
| 3460 | { | ||
| 3461 | SISPtr pSiS = SISPTR(pScrn); | ||
| 3462 | unsigned short ModeNo = 0; | ||
| 3463 | |||
| 3464 | SiS_Pr->UseCustomMode = false; | ||
| 3465 | |||
| 3466 | if((IsCustom) && (SiS_CheckBuildCustomMode(pScrn, mode, pSiS->VBFlags))) { | ||
| 3467 | |||
| 3468 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, "Setting custom mode %dx%d\n", | ||
| 3469 | SiS_Pr->CHDisplay, | ||
| 3470 | (mode->Flags & V_INTERLACE ? SiS_Pr->CVDisplay * 2 : | ||
| 3471 | (mode->Flags & V_DBLSCAN ? SiS_Pr->CVDisplay / 2 : | ||
| 3472 | SiS_Pr->CVDisplay))); | ||
| 3473 | |||
| 3474 | } else { | ||
| 3475 | |||
| 3476 | /* Don't need vbflags here; checks done earlier */ | ||
| 3477 | ModeNo = SiS_GetModeNumber(pScrn, mode, pSiS->VBFlags); | ||
| 3478 | if(!ModeNo) return false; | ||
| 3479 | |||
| 3480 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, "Setting standard mode 0x%x\n", ModeNo); | ||
| 3481 | |||
| 3482 | } | ||
| 3483 | |||
| 3484 | return(SiSSetMode(SiS_Pr, pScrn, ModeNo, true)); | ||
| 3485 | } | ||
| 3486 | |||
| 3487 | /*********************************************/ | ||
| 3488 | /* X.org/XFree86: SiSBIOSSetModeCRT2() */ | ||
| 3489 | /* for Dual-Head modes */ | ||
| 3490 | /*********************************************/ | ||
| 3491 | |||
| 3492 | bool | ||
| 3493 | SiSBIOSSetModeCRT2(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, | ||
| 3494 | DisplayModePtr mode, bool IsCustom) | ||
| 3495 | { | ||
| 3496 | SISIOADDRESS BaseAddr = SiS_Pr->IOAddress; | ||
| 3497 | SISPtr pSiS = SISPTR(pScrn); | ||
| 3498 | #ifdef SISDUALHEAD | ||
| 3499 | SISEntPtr pSiSEnt = pSiS->entityPrivate; | ||
| 3500 | #endif | ||
| 3501 | unsigned short ModeIdIndex; | ||
| 3502 | unsigned short ModeNo = 0; | ||
| 3503 | unsigned char backupreg = 0; | ||
| 3504 | |||
| 3505 | SiS_Pr->UseCustomMode = false; | ||
| 3506 | |||
| 3507 | /* Remember: Custom modes for CRT2 are ONLY supported | ||
| 3508 | * -) on the 30x/B/C, and | ||
| 3509 | * -) if CRT2 is LCD or VGA, or CRT1 is LCDA | ||
| 3510 | */ | ||
| 3511 | |||
| 3512 | if((IsCustom) && (SiS_CheckBuildCustomMode(pScrn, mode, pSiS->VBFlags))) { | ||
| 3513 | |||
| 3514 | ModeNo = 0xfe; | ||
| 3515 | |||
| 3516 | } else { | ||
| 3517 | |||
| 3518 | ModeNo = SiS_GetModeNumber(pScrn, mode, pSiS->VBFlags); | ||
| 3519 | if(!ModeNo) return false; | ||
| 3520 | |||
| 3521 | } | ||
| 3522 | |||
| 3523 | SiSRegInit(SiS_Pr, BaseAddr); | ||
| 3524 | SiSInitPtr(SiS_Pr); | ||
| 3525 | SiS_GetSysFlags(SiS_Pr); | ||
| 3526 | #if defined(i386) || defined(__i386) || defined(__i386__) || defined(__AMD64__) || defined(__amd64__) || defined(__x86_64__) | ||
| 3527 | SiS_Pr->SiS_VGAINFO = SiS_GetSetBIOSScratch(pScrn, 0x489, 0xff); | ||
| 3528 | #else | ||
| 3529 | SiS_Pr->SiS_VGAINFO = 0x11; | ||
| 3530 | #endif | ||
| 3531 | |||
| 3532 | SiS_SetReg(SiS_Pr->SiS_P3c4,0x05,0x86); | ||
| 3533 | |||
| 3534 | SiSInitPCIetc(SiS_Pr); | ||
| 3535 | SiSSetLVDSetc(SiS_Pr); | ||
| 3536 | SiSDetermineROMUsage(SiS_Pr); | ||
| 3537 | |||
| 3538 | /* Save mode info so we can set it from within SetMode for CRT1 */ | ||
| 3539 | #ifdef SISDUALHEAD | ||
| 3540 | if(pSiS->DualHeadMode) { | ||
| 3541 | pSiSEnt->CRT2ModeNo = ModeNo; | ||
| 3542 | pSiSEnt->CRT2DMode = mode; | ||
| 3543 | pSiSEnt->CRT2IsCustom = IsCustom; | ||
| 3544 | pSiSEnt->CRT2CR30 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); | ||
| 3545 | pSiSEnt->CRT2CR31 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x31); | ||
| 3546 | pSiSEnt->CRT2CR35 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); | ||
| 3547 | pSiSEnt->CRT2CR38 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); | ||
| 3548 | #if 0 | ||
| 3549 | /* We can't set CRT2 mode before CRT1 mode is set - says who...? */ | ||
| 3550 | if(pSiSEnt->CRT1ModeNo == -1) { | ||
| 3551 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, | ||
| 3552 | "Setting CRT2 mode delayed until after setting CRT1 mode\n"); | ||
| 3553 | return true; | ||
| 3554 | } | ||
| 3555 | #endif | ||
| 3556 | pSiSEnt->CRT2ModeSet = true; | ||
| 3557 | } | ||
| 3558 | #endif | ||
| 3559 | |||
| 3560 | if(SiS_Pr->UseCustomMode) { | ||
| 3561 | |||
| 3562 | unsigned short temptemp = SiS_Pr->CVDisplay; | ||
| 3563 | |||
| 3564 | if(SiS_Pr->CModeFlag & DoubleScanMode) temptemp >>= 1; | ||
| 3565 | else if(SiS_Pr->CInfoFlag & InterlaceMode) temptemp <<= 1; | ||
| 3566 | |||
| 3567 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, | ||
| 3568 | "Setting custom mode %dx%d on CRT2\n", | ||
| 3569 | SiS_Pr->CHDisplay, temptemp); | ||
| 3570 | |||
| 3571 | } else { | ||
| 3572 | |||
| 3573 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, | ||
| 3574 | "Setting standard mode 0x%x on CRT2\n", ModeNo); | ||
| 3575 | |||
| 3576 | } | ||
| 3577 | |||
| 3578 | SiS_UnLockCRT2(SiS_Pr); | ||
| 3579 | |||
| 3580 | if(!SiS_Pr->UseCustomMode) { | ||
| 3581 | if(!(SiS_SearchModeID(SiS_Pr, &ModeNo, &ModeIdIndex))) return false; | ||
| 3582 | } else { | ||
| 3583 | ModeIdIndex = 0; | ||
| 3584 | } | ||
| 3585 | |||
| 3586 | SiS_GetVBType(SiS_Pr); | ||
| 3587 | |||
| 3588 | SiS_InitVB(SiS_Pr); | ||
| 3589 | if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { | ||
| 3590 | if(SiS_Pr->ChipType >= SIS_315H) { | ||
| 3591 | SiS_ResetVB(SiS_Pr); | ||
| 3592 | SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x32,0x10); | ||
| 3593 | SiS_SetRegOR(SiS_Pr->SiS_Part2Port,0x00,0x0c); | ||
| 3594 | backupreg = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); | ||
| 3595 | } else { | ||
| 3596 | backupreg = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); | ||
| 3597 | } | ||
| 3598 | } | ||
| 3599 | |||
| 3600 | /* Get VB information (connectors, connected devices) */ | ||
| 3601 | if(!SiS_Pr->UseCustomMode) { | ||
| 3602 | SiS_GetVBInfo(SiS_Pr, ModeNo, ModeIdIndex, 1); | ||
| 3603 | } else { | ||
| 3604 | /* If this is a custom mode, we don't check the modeflag for CRT2Mode */ | ||
| 3605 | SiS_GetVBInfo(SiS_Pr, ModeNo, ModeIdIndex, 0); | ||
| 3606 | } | ||
| 3607 | SiS_SetYPbPr(SiS_Pr); | ||
| 3608 | SiS_SetTVMode(SiS_Pr, ModeNo, ModeIdIndex); | ||
| 3609 | SiS_GetLCDResInfo(SiS_Pr, ModeNo, ModeIdIndex); | ||
| 3610 | SiS_SetLowModeTest(SiS_Pr, ModeNo); | ||
| 3611 | |||
| 3612 | SiS_ResetSegmentRegisters(SiS_Pr); | ||
| 3613 | |||
| 3614 | /* Set mode on CRT2 */ | ||
| 3615 | if( (SiS_Pr->SiS_VBType & VB_SISVB) || | ||
| 3616 | (SiS_Pr->SiS_IF_DEF_LVDS == 1) || | ||
| 3617 | (SiS_Pr->SiS_IF_DEF_CH70xx != 0) || | ||
| 3618 | (SiS_Pr->SiS_IF_DEF_TRUMPION != 0) ) { | ||
| 3619 | SiS_SetCRT2Group(SiS_Pr, ModeNo); | ||
| 3620 | } | ||
| 3621 | |||
| 3622 | SiS_StrangeStuff(SiS_Pr); | ||
| 3623 | |||
| 3624 | SiS_DisplayOn(SiS_Pr); | ||
| 3625 | SiS_SetRegByte(SiS_Pr->SiS_P3c6,0xFF); | ||
| 3626 | |||
| 3627 | if(SiS_Pr->ChipType >= SIS_315H) { | ||
| 3628 | if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { | ||
| 3629 | if(!(SiS_IsDualEdge(SiS_Pr))) { | ||
| 3630 | SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xfb); | ||
| 3631 | } | ||
| 3632 | } | ||
| 3633 | } | ||
| 3634 | |||
| 3635 | if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { | ||
| 3636 | if(SiS_Pr->ChipType >= SIS_315H) { | ||
| 3637 | if(!SiS_Pr->SiS_ROMNew) { | ||
| 3638 | if(SiS_IsVAMode(SiS_Pr)) { | ||
| 3639 | SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x35,0x01); | ||
| 3640 | } else { | ||
| 3641 | SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x35,0xFE); | ||
| 3642 | } | ||
| 3643 | } | ||
| 3644 | |||
| 3645 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x38,backupreg); | ||
| 3646 | |||
| 3647 | if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x30) & SetCRT2ToLCD) { | ||
| 3648 | SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x38,0xfc); | ||
| 3649 | } | ||
| 3650 | } else if((SiS_Pr->ChipType == SIS_630) || | ||
| 3651 | (SiS_Pr->ChipType == SIS_730)) { | ||
| 3652 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x35,backupreg); | ||
| 3653 | } | ||
| 3654 | } | ||
| 3655 | |||
| 3656 | /* SetPitch: Adapt to virtual size & position */ | ||
| 3657 | SiS_SetPitchCRT2(SiS_Pr, pScrn); | ||
| 3658 | |||
| 3659 | SiS_Handle760(SiS_Pr); | ||
| 3660 | |||
| 3661 | return true; | ||
| 3662 | } | ||
| 3663 | |||
| 3664 | /*********************************************/ | ||
| 3665 | /* X.org/XFree86: SiSBIOSSetModeCRT1() */ | ||
| 3666 | /* for Dual-Head modes */ | ||
| 3667 | /*********************************************/ | ||
| 3668 | |||
| 3669 | bool | ||
| 3670 | SiSBIOSSetModeCRT1(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, | ||
| 3671 | DisplayModePtr mode, bool IsCustom) | ||
| 3672 | { | ||
| 3673 | SISIOADDRESS BaseAddr = SiS_Pr->IOAddress; | ||
| 3674 | SISPtr pSiS = SISPTR(pScrn); | ||
| 3675 | unsigned short ModeIdIndex, ModeNo = 0; | ||
| 3676 | unsigned char backupreg = 0; | ||
| 3677 | #ifdef SISDUALHEAD | ||
| 3678 | SISEntPtr pSiSEnt = pSiS->entityPrivate; | ||
| 3679 | unsigned char backupcr30, backupcr31, backupcr38, backupcr35, backupp40d=0; | ||
| 3680 | bool backupcustom; | ||
| 3681 | #endif | ||
| 3682 | |||
| 3683 | SiS_Pr->UseCustomMode = false; | ||
| 3684 | |||
| 3685 | if((IsCustom) && (SiS_CheckBuildCustomMode(pScrn, mode, pSiS->VBFlags))) { | ||
| 3686 | |||
| 3687 | unsigned short temptemp = SiS_Pr->CVDisplay; | ||
| 3688 | |||
| 3689 | if(SiS_Pr->CModeFlag & DoubleScanMode) temptemp >>= 1; | ||
| 3690 | else if(SiS_Pr->CInfoFlag & InterlaceMode) temptemp <<= 1; | ||
| 3691 | |||
| 3692 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, | ||
| 3693 | "Setting custom mode %dx%d on CRT1\n", | ||
| 3694 | SiS_Pr->CHDisplay, temptemp); | ||
| 3695 | ModeNo = 0xfe; | ||
| 3696 | |||
| 3697 | } else { | ||
| 3698 | |||
| 3699 | ModeNo = SiS_GetModeNumber(pScrn, mode, 0); /* don't give VBFlags */ | ||
| 3700 | if(!ModeNo) return false; | ||
| 3701 | |||
| 3702 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, | ||
| 3703 | "Setting standard mode 0x%x on CRT1\n", ModeNo); | ||
| 3704 | } | ||
| 3705 | |||
| 3706 | SiSInitPtr(SiS_Pr); | ||
| 3707 | SiSRegInit(SiS_Pr, BaseAddr); | ||
| 3708 | SiS_GetSysFlags(SiS_Pr); | ||
| 3709 | #if defined(i386) || defined(__i386) || defined(__i386__) || defined(__AMD64__) || defined(__amd64__) || defined(__x86_64__) | ||
| 3710 | SiS_Pr->SiS_VGAINFO = SiS_GetSetBIOSScratch(pScrn, 0x489, 0xff); | ||
| 3711 | #else | ||
| 3712 | SiS_Pr->SiS_VGAINFO = 0x11; | ||
| 3713 | #endif | ||
| 3714 | |||
| 3715 | SiS_SetReg(SiS_Pr->SiS_P3c4,0x05,0x86); | ||
| 3716 | |||
| 3717 | SiSInitPCIetc(SiS_Pr); | ||
| 3718 | SiSSetLVDSetc(SiS_Pr); | ||
| 3719 | SiSDetermineROMUsage(SiS_Pr); | ||
| 3720 | |||
| 3721 | SiS_UnLockCRT2(SiS_Pr); | ||
| 3722 | |||
| 3723 | if(!SiS_Pr->UseCustomMode) { | ||
| 3724 | if(!(SiS_SearchModeID(SiS_Pr, &ModeNo, &ModeIdIndex))) return false; | ||
| 3725 | } else { | ||
| 3726 | ModeIdIndex = 0; | ||
| 3727 | } | ||
| 3728 | |||
| 3729 | /* Determine VBType */ | ||
| 3730 | SiS_GetVBType(SiS_Pr); | ||
| 3731 | |||
| 3732 | SiS_InitVB(SiS_Pr); | ||
| 3733 | if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { | ||
| 3734 | if(SiS_Pr->ChipType >= SIS_315H) { | ||
| 3735 | backupreg = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); | ||
| 3736 | } else { | ||
| 3737 | backupreg = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); | ||
| 3738 | } | ||
| 3739 | } | ||
| 3740 | |||
| 3741 | /* Get VB information (connectors, connected devices) */ | ||
| 3742 | /* (We don't care if the current mode is a CRT2 mode) */ | ||
| 3743 | SiS_GetVBInfo(SiS_Pr, ModeNo, ModeIdIndex, 0); | ||
| 3744 | SiS_SetYPbPr(SiS_Pr); | ||
| 3745 | SiS_SetTVMode(SiS_Pr, ModeNo, ModeIdIndex); | ||
| 3746 | SiS_GetLCDResInfo(SiS_Pr, ModeNo, ModeIdIndex); | ||
| 3747 | SiS_SetLowModeTest(SiS_Pr, ModeNo); | ||
| 3748 | |||
| 3749 | SiS_OpenCRTC(SiS_Pr); | ||
| 3750 | |||
| 3751 | /* Set mode on CRT1 */ | ||
| 3752 | SiS_SetCRT1Group(SiS_Pr, ModeNo, ModeIdIndex); | ||
| 3753 | if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { | ||
| 3754 | SiS_SetCRT2Group(SiS_Pr, ModeNo); | ||
| 3755 | } | ||
| 3756 | |||
| 3757 | /* SetPitch: Adapt to virtual size & position */ | ||
| 3758 | SiS_SetPitchCRT1(SiS_Pr, pScrn); | ||
| 3759 | |||
| 3760 | SiS_HandleCRT1(SiS_Pr); | ||
| 3761 | |||
| 3762 | SiS_StrangeStuff(SiS_Pr); | ||
| 3763 | |||
| 3764 | SiS_CloseCRTC(SiS_Pr); | ||
| 3765 | |||
| 3766 | #ifdef SISDUALHEAD | ||
| 3767 | if(pSiS->DualHeadMode) { | ||
| 3768 | pSiSEnt->CRT1ModeNo = ModeNo; | ||
| 3769 | pSiSEnt->CRT1DMode = mode; | ||
| 3770 | } | ||
| 3771 | #endif | ||
| 3772 | |||
| 3773 | if(SiS_Pr->UseCustomMode) { | ||
| 3774 | SiS_Pr->CRT1UsesCustomMode = true; | ||
| 3775 | SiS_Pr->CSRClock_CRT1 = SiS_Pr->CSRClock; | ||
| 3776 | SiS_Pr->CModeFlag_CRT1 = SiS_Pr->CModeFlag; | ||
| 3777 | } else { | ||
| 3778 | SiS_Pr->CRT1UsesCustomMode = false; | ||
| 3779 | } | ||
| 3780 | |||
| 3781 | /* Reset CRT2 if changing mode on CRT1 */ | ||
| 3782 | #ifdef SISDUALHEAD | ||
| 3783 | if(pSiS->DualHeadMode) { | ||
| 3784 | if(pSiSEnt->CRT2ModeNo != -1) { | ||
| 3785 | xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3, | ||
| 3786 | "(Re-)Setting mode for CRT2\n"); | ||
| 3787 | backupcustom = SiS_Pr->UseCustomMode; | ||
| 3788 | backupcr30 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); | ||
| 3789 | backupcr31 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x31); | ||
| 3790 | backupcr35 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); | ||
| 3791 | backupcr38 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); | ||
| 3792 | if(SiS_Pr->SiS_VBType & VB_SISVB) { | ||
| 3793 | /* Backup LUT-enable */ | ||
| 3794 | if(pSiSEnt->CRT2ModeSet) { | ||
| 3795 | backupp40d = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x0d) & 0x08; | ||
| 3796 | } | ||
| 3797 | } | ||
| 3798 | if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { | ||
| 3799 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x30,pSiSEnt->CRT2CR30); | ||
| 3800 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x31,pSiSEnt->CRT2CR31); | ||
| 3801 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x35,pSiSEnt->CRT2CR35); | ||
| 3802 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x38,pSiSEnt->CRT2CR38); | ||
| 3803 | } | ||
| 3804 | |||
| 3805 | SiSBIOSSetModeCRT2(SiS_Pr, pSiSEnt->pScrn_1, | ||
| 3806 | pSiSEnt->CRT2DMode, pSiSEnt->CRT2IsCustom); | ||
| 3807 | |||
| 3808 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x30,backupcr30); | ||
| 3809 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x31,backupcr31); | ||
| 3810 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x35,backupcr35); | ||
| 3811 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x38,backupcr38); | ||
| 3812 | if(SiS_Pr->SiS_VBType & VB_SISVB) { | ||
| 3813 | SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x0d, ~0x08, backupp40d); | ||
| 3814 | } | ||
| 3815 | SiS_Pr->UseCustomMode = backupcustom; | ||
| 3816 | } | ||
| 3817 | } | ||
| 3818 | #endif | ||
| 3819 | |||
| 3820 | /* Warning: From here, the custom mode entries in SiS_Pr are | ||
| 3821 | * possibly overwritten | ||
| 3822 | */ | ||
| 3823 | |||
| 3824 | SiS_DisplayOn(SiS_Pr); | ||
| 3825 | SiS_SetRegByte(SiS_Pr->SiS_P3c6,0xFF); | ||
| 3826 | |||
| 3827 | if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { | ||
| 3828 | if(SiS_Pr->ChipType >= SIS_315H) { | ||
| 3829 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x38,backupreg); | ||
| 3830 | } else if((SiS_Pr->ChipType == SIS_630) || | ||
| 3831 | (SiS_Pr->ChipType == SIS_730)) { | ||
| 3832 | SiS_SetReg(SiS_Pr->SiS_P3d4,0x35,backupreg); | ||
| 3833 | } | ||
| 3834 | } | ||
| 3835 | |||
| 3836 | SiS_Handle760(SiS_Pr); | ||
| 3837 | |||
| 3838 | /* Backup/Set ModeNo in BIOS scratch area */ | ||
| 3839 | SiS_GetSetModeID(pScrn,ModeNo); | ||
| 3840 | |||
| 3841 | return true; | ||
| 3842 | } | ||
| 3843 | #endif /* Linux_XF86 */ | ||
| 3844 | |||
| 3845 | #ifndef GETBITSTR | 3367 | #ifndef GETBITSTR |
| 3846 | #define BITMASK(h,l) (((unsigned)(1U << ((h)-(l)+1))-1)<<(l)) | 3368 | #define BITMASK(h,l) (((unsigned)(1U << ((h)-(l)+1))-1)<<(l)) |
| 3847 | #define GENMASK(mask) BITMASK(1?mask,0?mask) | 3369 | #define GENMASK(mask) BITMASK(1?mask,0?mask) |
| @@ -4054,33 +3576,11 @@ SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |||
| 4054 | if(modeflag & DoubleScanMode) tempax |= 0x80; | 3576 | if(modeflag & DoubleScanMode) tempax |= 0x80; |
| 4055 | SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x09,0x5F,tempax); | 3577 | SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x09,0x5F,tempax); |
| 4056 | 3578 | ||
| 4057 | #ifdef SIS_XORG_XF86 | ||
| 4058 | #ifdef TWDEBUG | ||
| 4059 | xf86DrvMsg(0, X_INFO, "%d %d %d %d %d %d %d %d (%d %d %d %d)\n", | ||
| 4060 | SiS_Pr->CHDisplay, SiS_Pr->CHSyncStart, SiS_Pr->CHSyncEnd, SiS_Pr->CHTotal, | ||
| 4061 | SiS_Pr->CVDisplay, SiS_Pr->CVSyncStart, SiS_Pr->CVSyncEnd, SiS_Pr->CVTotal, | ||
| 4062 | SiS_Pr->CHBlankStart, SiS_Pr->CHBlankEnd, SiS_Pr->CVBlankStart, SiS_Pr->CVBlankEnd); | ||
| 4063 | xf86DrvMsg(0, X_INFO, " {{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,\n", | ||
| 4064 | SiS_Pr->CCRT1CRTC[0], SiS_Pr->CCRT1CRTC[1], | ||
| 4065 | SiS_Pr->CCRT1CRTC[2], SiS_Pr->CCRT1CRTC[3], | ||
| 4066 | SiS_Pr->CCRT1CRTC[4], SiS_Pr->CCRT1CRTC[5], | ||
| 4067 | SiS_Pr->CCRT1CRTC[6], SiS_Pr->CCRT1CRTC[7]); | ||
| 4068 | xf86DrvMsg(0, X_INFO, " 0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,\n", | ||
| 4069 | SiS_Pr->CCRT1CRTC[8], SiS_Pr->CCRT1CRTC[9], | ||
| 4070 | SiS_Pr->CCRT1CRTC[10], SiS_Pr->CCRT1CRTC[11], | ||
| 4071 | SiS_Pr->CCRT1CRTC[12], SiS_Pr->CCRT1CRTC[13], | ||
| 4072 | SiS_Pr->CCRT1CRTC[14], SiS_Pr->CCRT1CRTC[15]); | ||
| 4073 | xf86DrvMsg(0, X_INFO, " 0x%02x}},\n", SiS_Pr->CCRT1CRTC[16]); | ||
| 4074 | #endif | ||
| 4075 | #endif | ||
| 4076 | } | 3579 | } |
| 4077 | 3580 | ||
| 4078 | void | 3581 | void |
| 4079 | SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, | 3582 | SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, |
| 4080 | int xres, int yres, | 3583 | int xres, int yres, |
| 4081 | #ifdef SIS_XORG_XF86 | ||
| 4082 | DisplayModePtr current | ||
| 4083 | #endif | ||
| 4084 | #ifdef SIS_LINUX_KERNEL | 3584 | #ifdef SIS_LINUX_KERNEL |
| 4085 | struct fb_var_screeninfo *var, bool writeres | 3585 | struct fb_var_screeninfo *var, bool writeres |
| 4086 | #endif | 3586 | #endif |
| @@ -4127,19 +3627,6 @@ SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, | |||
| 4127 | 3627 | ||
| 4128 | D = B - F - C; | 3628 | D = B - F - C; |
| 4129 | 3629 | ||
| 4130 | #ifdef SIS_XORG_XF86 | ||
| 4131 | current->HDisplay = (E * 8); | ||
| 4132 | current->HSyncStart = (E * 8) + (F * 8); | ||
| 4133 | current->HSyncEnd = (E * 8) + (F * 8) + (C * 8); | ||
| 4134 | current->HTotal = (E * 8) + (F * 8) + (C * 8) + (D * 8); | ||
| 4135 | #ifdef TWDEBUG | ||
| 4136 | xf86DrvMsg(0, X_INFO, | ||
| 4137 | "H: A %d B %d C %d D %d E %d F %d HT %d HDE %d HRS %d HBS %d HBE %d HRE %d\n", | ||
| 4138 | A, B, C, D, E, F, HT, HDE, HRS, HBS, HBE, HRE); | ||
| 4139 | #else | ||
| 4140 | (void)VBS; (void)HBS; (void)A; | ||
| 4141 | #endif | ||
| 4142 | #endif | ||
| 4143 | #ifdef SIS_LINUX_KERNEL | 3630 | #ifdef SIS_LINUX_KERNEL |
| 4144 | if(writeres) var->xres = xres = E * 8; | 3631 | if(writeres) var->xres = xres = E * 8; |
| 4145 | var->left_margin = D * 8; | 3632 | var->left_margin = D * 8; |
| @@ -4192,24 +3679,6 @@ SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, | |||
| 4192 | 3679 | ||
| 4193 | D = B - F - C; | 3680 | D = B - F - C; |
| 4194 | 3681 | ||
| 4195 | #ifdef SIS_XORG_XF86 | ||
| 4196 | current->VDisplay = VDE + 1; | ||
| 4197 | current->VSyncStart = VRS + 1; | ||
| 4198 | current->VSyncEnd = ((VRS & ~0x1f) | VRE) + 1; | ||
| 4199 | if(VRE <= (VRS & 0x1f)) current->VSyncEnd += 32; | ||
| 4200 | current->VTotal = E + D + C + F; | ||
| 4201 | #if 0 | ||
| 4202 | current->VDisplay = E; | ||
| 4203 | current->VSyncStart = E + D; | ||
| 4204 | current->VSyncEnd = E + D + C; | ||
| 4205 | current->VTotal = E + D + C + F; | ||
| 4206 | #endif | ||
| 4207 | #ifdef TWDEBUG | ||
| 4208 | xf86DrvMsg(0, X_INFO, | ||
| 4209 | "V: A %d B %d C %d D %d E %d F %d VT %d VDE %d VRS %d VBS %d VBE %d VRE %d\n", | ||
| 4210 | A, B, C, D, E, F, VT, VDE, VRS, VBS, VBE, VRE); | ||
| 4211 | #endif | ||
| 4212 | #endif | ||
| 4213 | #ifdef SIS_LINUX_KERNEL | 3682 | #ifdef SIS_LINUX_KERNEL |
| 4214 | if(writeres) var->yres = yres = E; | 3683 | if(writeres) var->yres = yres = E; |
| 4215 | var->upper_margin = D; | 3684 | var->upper_margin = D; |
| @@ -4224,12 +3693,6 @@ SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, | |||
| 4224 | * a negative D. The CRT controller does not | 3693 | * a negative D. The CRT controller does not |
| 4225 | * seem to like correcting HRE to 50) | 3694 | * seem to like correcting HRE to 50) |
| 4226 | */ | 3695 | */ |
| 4227 | #ifdef SIS_XORG_XF86 | ||
| 4228 | current->HDisplay = 320; | ||
| 4229 | current->HSyncStart = 328; | ||
| 4230 | current->HSyncEnd = 376; | ||
| 4231 | current->HTotal = 400; | ||
| 4232 | #endif | ||
| 4233 | #ifdef SIS_LINUX_KERNEL | 3696 | #ifdef SIS_LINUX_KERNEL |
| 4234 | var->left_margin = (400 - 376); | 3697 | var->left_margin = (400 - 376); |
| 4235 | var->right_margin = (328 - 320); | 3698 | var->right_margin = (328 - 320); |
diff --git a/drivers/video/sis/init.h b/drivers/video/sis/init.h index b96005c39c67..4a75c73e134a 100644 --- a/drivers/video/sis/init.h +++ b/drivers/video/sis/init.h | |||
| @@ -56,17 +56,6 @@ | |||
| 56 | #include "osdef.h" | 56 | #include "osdef.h" |
| 57 | #include "initdef.h" | 57 | #include "initdef.h" |
| 58 | 58 | ||
| 59 | #ifdef SIS_XORG_XF86 | ||
| 60 | #include "sis.h" | ||
| 61 | #define SIS_NEED_inSISREG | ||
| 62 | #define SIS_NEED_inSISREGW | ||
| 63 | #define SIS_NEED_inSISREGL | ||
| 64 | #define SIS_NEED_outSISREG | ||
| 65 | #define SIS_NEED_outSISREGW | ||
| 66 | #define SIS_NEED_outSISREGL | ||
| 67 | #include "sis_regs.h" | ||
| 68 | #endif | ||
| 69 | |||
| 70 | #ifdef SIS_LINUX_KERNEL | 59 | #ifdef SIS_LINUX_KERNEL |
| 71 | #include "vgatypes.h" | 60 | #include "vgatypes.h" |
| 72 | #include "vstruct.h" | 61 | #include "vstruct.h" |
| @@ -1521,10 +1510,6 @@ static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1_H[] = | |||
| 1521 | }; | 1510 | }; |
| 1522 | 1511 | ||
| 1523 | bool SiSInitPtr(struct SiS_Private *SiS_Pr); | 1512 | bool SiSInitPtr(struct SiS_Private *SiS_Pr); |
| 1524 | #ifdef SIS_XORG_XF86 | ||
| 1525 | unsigned short SiS_GetModeID(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, | ||
| 1526 | int Depth, bool FSTN, int LCDwith, int LCDheight); | ||
| 1527 | #endif | ||
| 1528 | unsigned short SiS_GetModeID_LCD(int VGAEngine, unsigned int VBFlags, int HDisplay, | 1513 | unsigned short SiS_GetModeID_LCD(int VGAEngine, unsigned int VBFlags, int HDisplay, |
| 1529 | int VDisplay, int Depth, bool FSTN, | 1514 | int VDisplay, int Depth, bool FSTN, |
| 1530 | unsigned short CustomT, int LCDwith, int LCDheight, | 1515 | unsigned short CustomT, int LCDwith, int LCDheight, |
| @@ -1579,26 +1564,12 @@ unsigned short SiS_GetFIFOThresholdB300(unsigned short idx1, unsigned short idx2 | |||
| 1579 | unsigned short SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index); | 1564 | unsigned short SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index); |
| 1580 | #endif | 1565 | #endif |
| 1581 | void SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); | 1566 | void SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); |
| 1582 | #ifdef SIS_XORG_XF86 | ||
| 1583 | bool SiSSetMode(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, unsigned short ModeNo, | ||
| 1584 | bool dosetpitch); | ||
| 1585 | bool SiSBIOSSetMode(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, | ||
| 1586 | DisplayModePtr mode, bool IsCustom); | ||
| 1587 | bool SiSBIOSSetModeCRT2(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, | ||
| 1588 | DisplayModePtr mode, bool IsCustom); | ||
| 1589 | bool SiSBIOSSetModeCRT1(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, | ||
| 1590 | DisplayModePtr mode, bool IsCustom); | ||
| 1591 | #endif | ||
| 1592 | #ifdef SIS_LINUX_KERNEL | 1567 | #ifdef SIS_LINUX_KERNEL |
| 1593 | bool SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo); | 1568 | bool SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo); |
| 1594 | #endif | 1569 | #endif |
| 1595 | void SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth); | 1570 | void SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth); |
| 1596 | void SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | 1571 | void SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
| 1597 | unsigned short ModeIdIndex); | 1572 | unsigned short ModeIdIndex); |
| 1598 | #ifdef SIS_XORG_XF86 | ||
| 1599 | void SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, int xres, | ||
| 1600 | int yres, DisplayModePtr current); | ||
| 1601 | #endif | ||
| 1602 | #ifdef SIS_LINUX_KERNEL | 1573 | #ifdef SIS_LINUX_KERNEL |
| 1603 | void SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, int xres, | 1574 | void SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, int xres, |
| 1604 | int yres, struct fb_var_screeninfo *var, bool writeres); | 1575 | int yres, struct fb_var_screeninfo *var, bool writeres); |
| @@ -1626,17 +1597,6 @@ extern unsigned short SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short | |||
| 1626 | extern bool SiS_IsVAMode(struct SiS_Private *); | 1597 | extern bool SiS_IsVAMode(struct SiS_Private *); |
| 1627 | extern bool SiS_IsDualEdge(struct SiS_Private *); | 1598 | extern bool SiS_IsDualEdge(struct SiS_Private *); |
| 1628 | 1599 | ||
| 1629 | #ifdef SIS_XORG_XF86 | ||
| 1630 | /* From other modules: */ | ||
| 1631 | extern unsigned short SiS_CheckBuildCustomMode(ScrnInfoPtr pScrn, DisplayModePtr mode, | ||
| 1632 | unsigned int VBFlags); | ||
| 1633 | extern unsigned char SiS_GetSetBIOSScratch(ScrnInfoPtr pScrn, unsigned short offset, | ||
| 1634 | unsigned char value); | ||
| 1635 | extern unsigned char SiS_GetSetModeID(ScrnInfoPtr pScrn, unsigned char id); | ||
| 1636 | extern unsigned short SiS_GetModeNumber(ScrnInfoPtr pScrn, DisplayModePtr mode, | ||
| 1637 | unsigned int VBFlags); | ||
| 1638 | #endif | ||
| 1639 | |||
| 1640 | #ifdef SIS_LINUX_KERNEL | 1600 | #ifdef SIS_LINUX_KERNEL |
| 1641 | #ifdef SIS300 | 1601 | #ifdef SIS300 |
| 1642 | extern unsigned int sisfb_read_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg); | 1602 | extern unsigned int sisfb_read_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg); |
diff --git a/drivers/video/sis/init301.c b/drivers/video/sis/init301.c index da33d801c22e..a4b344e2dea1 100644 --- a/drivers/video/sis/init301.c +++ b/drivers/video/sis/init301.c | |||
| @@ -1166,12 +1166,6 @@ SiS_GetVBInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, | |||
| 1166 | SiS_Pr->SiS_VBInfo, SiS_Pr->SiS_SetFlag); | 1166 | SiS_Pr->SiS_VBInfo, SiS_Pr->SiS_SetFlag); |
| 1167 | #endif | 1167 | #endif |
| 1168 | #endif | 1168 | #endif |
| 1169 | #ifdef SIS_XORG_XF86 | ||
| 1170 | #ifdef TWDEBUG | ||
| 1171 | xf86DrvMsg(0, X_PROBED, "(init301: VBInfo=0x%04x, SetFlag=0x%04x)\n", | ||
| 1172 | SiS_Pr->SiS_VBInfo, SiS_Pr->SiS_SetFlag); | ||
| 1173 | #endif | ||
| 1174 | #endif | ||
| 1175 | } | 1169 | } |
| 1176 | 1170 | ||
| 1177 | /*********************************************/ | 1171 | /*********************************************/ |
| @@ -1415,12 +1409,6 @@ SiS_SetTVMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 1415 | } | 1409 | } |
| 1416 | 1410 | ||
| 1417 | SiS_Pr->SiS_VBInfo &= ~SetPALTV; | 1411 | SiS_Pr->SiS_VBInfo &= ~SetPALTV; |
| 1418 | |||
| 1419 | #ifdef SIS_XORG_XF86 | ||
| 1420 | #ifdef TWDEBUG | ||
| 1421 | xf86DrvMsg(0, X_INFO, "(init301: TVMode %x, VBInfo %x)\n", SiS_Pr->SiS_TVMode, SiS_Pr->SiS_VBInfo); | ||
| 1422 | #endif | ||
| 1423 | #endif | ||
| 1424 | } | 1412 | } |
| 1425 | 1413 | ||
| 1426 | /*********************************************/ | 1414 | /*********************************************/ |
| @@ -1447,18 +1435,6 @@ SiS_GetLCDInfoBIOS(struct SiS_Private *SiS_Pr) | |||
| 1447 | unsigned char *ROMAddr; | 1435 | unsigned char *ROMAddr; |
| 1448 | unsigned short temp; | 1436 | unsigned short temp; |
| 1449 | 1437 | ||
| 1450 | #ifdef SIS_XORG_XF86 | ||
| 1451 | #ifdef TWDEBUG | ||
| 1452 | xf86DrvMsg(0, X_INFO, "Paneldata driver: [%d %d] [H %d %d] [V %d %d] [C %d 0x%02x 0x%02x]\n", | ||
| 1453 | SiS_Pr->PanelHT, SiS_Pr->PanelVT, | ||
| 1454 | SiS_Pr->PanelHRS, SiS_Pr->PanelHRE, | ||
| 1455 | SiS_Pr->PanelVRS, SiS_Pr->PanelVRE, | ||
| 1456 | SiS_Pr->SiS_VBVCLKData[SiS_Pr->PanelVCLKIdx315].CLOCK, | ||
| 1457 | SiS_Pr->SiS_VBVCLKData[SiS_Pr->PanelVCLKIdx315].Part4_A, | ||
| 1458 | SiS_Pr->SiS_VBVCLKData[SiS_Pr->PanelVCLKIdx315].Part4_B); | ||
| 1459 | #endif | ||
| 1460 | #endif | ||
| 1461 | |||
| 1462 | if((ROMAddr = GetLCDStructPtr661(SiS_Pr))) { | 1438 | if((ROMAddr = GetLCDStructPtr661(SiS_Pr))) { |
| 1463 | if((temp = SISGETROMW(6)) != SiS_Pr->PanelHT) { | 1439 | if((temp = SISGETROMW(6)) != SiS_Pr->PanelHT) { |
| 1464 | SiS_Pr->SiS_NeedRomModeData = true; | 1440 | SiS_Pr->SiS_NeedRomModeData = true; |
| @@ -1480,18 +1456,6 @@ SiS_GetLCDInfoBIOS(struct SiS_Private *SiS_Pr) | |||
| 1480 | SiS_Pr->SiS_VCLKData[VCLK_CUSTOM_315].SR2C = | 1456 | SiS_Pr->SiS_VCLKData[VCLK_CUSTOM_315].SR2C = |
| 1481 | SiS_Pr->SiS_VBVCLKData[VCLK_CUSTOM_315].Part4_B = ROMAddr[20]; | 1457 | SiS_Pr->SiS_VBVCLKData[VCLK_CUSTOM_315].Part4_B = ROMAddr[20]; |
| 1482 | 1458 | ||
| 1483 | #ifdef SIS_XORG_XF86 | ||
| 1484 | #ifdef TWDEBUG | ||
| 1485 | xf86DrvMsg(0, X_INFO, "Paneldata BIOS: [%d %d] [H %d %d] [V %d %d] [C %d 0x%02x 0x%02x]\n", | ||
| 1486 | SiS_Pr->PanelHT, SiS_Pr->PanelVT, | ||
| 1487 | SiS_Pr->PanelHRS, SiS_Pr->PanelHRE, | ||
| 1488 | SiS_Pr->PanelVRS, SiS_Pr->PanelVRE, | ||
| 1489 | SiS_Pr->SiS_VBVCLKData[SiS_Pr->PanelVCLKIdx315].CLOCK, | ||
| 1490 | SiS_Pr->SiS_VBVCLKData[SiS_Pr->PanelVCLKIdx315].Part4_A, | ||
| 1491 | SiS_Pr->SiS_VBVCLKData[SiS_Pr->PanelVCLKIdx315].Part4_B); | ||
| 1492 | #endif | ||
| 1493 | #endif | ||
| 1494 | |||
| 1495 | } | 1459 | } |
| 1496 | #endif | 1460 | #endif |
| 1497 | } | 1461 | } |
| @@ -2192,11 +2156,6 @@ SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned sh | |||
| 2192 | SiS_Pr->SiS_LCDInfo, SiS_Pr->SiS_LCDResInfo, SiS_Pr->SiS_LCDTypeInfo); | 2156 | SiS_Pr->SiS_LCDInfo, SiS_Pr->SiS_LCDResInfo, SiS_Pr->SiS_LCDTypeInfo); |
| 2193 | #endif | 2157 | #endif |
| 2194 | #endif | 2158 | #endif |
| 2195 | #ifdef SIS_XORG_XF86 | ||
| 2196 | xf86DrvMsgVerb(0, X_PROBED, 4, | ||
| 2197 | "(init301: LCDInfo=0x%04x LCDResInfo=0x%02x LCDTypeInfo=0x%02x SetFlag=0x%04x)\n", | ||
| 2198 | SiS_Pr->SiS_LCDInfo, SiS_Pr->SiS_LCDResInfo, SiS_Pr->SiS_LCDTypeInfo, SiS_Pr->SiS_SetFlag); | ||
| 2199 | #endif | ||
| 2200 | } | 2159 | } |
| 2201 | 2160 | ||
| 2202 | /*********************************************/ | 2161 | /*********************************************/ |
| @@ -2410,12 +2369,6 @@ SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned shor | |||
| 2410 | 2369 | ||
| 2411 | } | 2370 | } |
| 2412 | 2371 | ||
| 2413 | #ifdef SIS_XORG_XF86 | ||
| 2414 | #ifdef TWDEBUG | ||
| 2415 | xf86DrvMsg(0, X_INFO, "VCLKIndex %d (0x%x)\n", VCLKIndex, VCLKIndex); | ||
| 2416 | #endif | ||
| 2417 | #endif | ||
| 2418 | |||
| 2419 | return VCLKIndex; | 2372 | return VCLKIndex; |
| 2420 | } | 2373 | } |
| 2421 | 2374 | ||
| @@ -3527,12 +3480,6 @@ SiS_GetCRT2Data301(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned s | |||
| 3527 | default : LCDPtr = SiS_Pr->SiS_ExtLCD1024x768Data; break; | 3480 | default : LCDPtr = SiS_Pr->SiS_ExtLCD1024x768Data; break; |
| 3528 | } | 3481 | } |
| 3529 | 3482 | ||
| 3530 | #ifdef SIS_XORG_XF86 | ||
| 3531 | #ifdef TWDEBUG | ||
| 3532 | xf86DrvMsg(0, X_INFO, "GetCRT2Data: Index %d ResIndex %d\n", CRT2Index, ResIndex); | ||
| 3533 | #endif | ||
| 3534 | #endif | ||
| 3535 | |||
| 3536 | SiS_Pr->SiS_RVBHCMAX = (LCDPtr+ResIndex)->RVBHCMAX; | 3483 | SiS_Pr->SiS_RVBHCMAX = (LCDPtr+ResIndex)->RVBHCMAX; |
| 3537 | SiS_Pr->SiS_RVBHCFACT = (LCDPtr+ResIndex)->RVBHCFACT; | 3484 | SiS_Pr->SiS_RVBHCFACT = (LCDPtr+ResIndex)->RVBHCFACT; |
| 3538 | SiS_Pr->SiS_VGAHT = (LCDPtr+ResIndex)->VGAHT; | 3485 | SiS_Pr->SiS_VGAHT = (LCDPtr+ResIndex)->VGAHT; |
| @@ -3891,11 +3838,6 @@ SiS_HandlePWD(struct SiS_Private *SiS_Pr) | |||
| 3891 | ret = 1; | 3838 | ret = 1; |
| 3892 | } | 3839 | } |
| 3893 | SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x27,0x7f,temp); | 3840 | SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x27,0x7f,temp); |
| 3894 | #ifdef SIS_XORG_XF86 | ||
| 3895 | #ifdef TWDEBUG | ||
| 3896 | xf86DrvMsg(0, 0, "Setting PWD %x\n", temp); | ||
| 3897 | #endif | ||
| 3898 | #endif | ||
| 3899 | } | 3841 | } |
| 3900 | #endif | 3842 | #endif |
| 3901 | return ret; | 3843 | return ret; |
| @@ -5420,27 +5362,6 @@ SiS_SetGroup1_301(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned sho | |||
| 5420 | 5362 | ||
| 5421 | temp = SiS_GetRegByte((SiS_Pr->SiS_P3ca+0x02)); | 5363 | temp = SiS_GetRegByte((SiS_Pr->SiS_P3ca+0x02)); |
| 5422 | SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,temp); /* ? */ | 5364 | SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,temp); /* ? */ |
| 5423 | |||
| 5424 | #ifdef SIS_XORG_XF86 | ||
| 5425 | #ifdef TWDEBUG | ||
| 5426 | xf86DrvMsg(0, X_INFO, "%d %d %d %d %d %d %d %d (%d %d %d %d)\n", | ||
| 5427 | SiS_Pr->CHDisplay, SiS_Pr->CHSyncStart, SiS_Pr->CHSyncEnd, SiS_Pr->CHTotal, | ||
| 5428 | SiS_Pr->CVDisplay, SiS_Pr->CVSyncStart, SiS_Pr->CVSyncEnd, SiS_Pr->CVTotal, | ||
| 5429 | SiS_Pr->CHBlankStart, SiS_Pr->CHBlankEnd, SiS_Pr->CVBlankStart, SiS_Pr->CVBlankEnd); | ||
| 5430 | |||
| 5431 | xf86DrvMsg(0, X_INFO, " {{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,\n", | ||
| 5432 | SiS_Pr->CCRT1CRTC[0], SiS_Pr->CCRT1CRTC[1], | ||
| 5433 | SiS_Pr->CCRT1CRTC[2], SiS_Pr->CCRT1CRTC[3], | ||
| 5434 | SiS_Pr->CCRT1CRTC[4], SiS_Pr->CCRT1CRTC[5], | ||
| 5435 | SiS_Pr->CCRT1CRTC[6], SiS_Pr->CCRT1CRTC[7]); | ||
| 5436 | xf86DrvMsg(0, X_INFO, " 0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,\n", | ||
| 5437 | SiS_Pr->CCRT1CRTC[8], SiS_Pr->CCRT1CRTC[9], | ||
| 5438 | SiS_Pr->CCRT1CRTC[10], SiS_Pr->CCRT1CRTC[11], | ||
| 5439 | SiS_Pr->CCRT1CRTC[12], SiS_Pr->CCRT1CRTC[13], | ||
| 5440 | SiS_Pr->CCRT1CRTC[14], SiS_Pr->CCRT1CRTC[15]); | ||
| 5441 | xf86DrvMsg(0, X_INFO, " 0x%02x}},\n", SiS_Pr->CCRT1CRTC[16]); | ||
| 5442 | #endif | ||
| 5443 | #endif | ||
| 5444 | } | 5365 | } |
| 5445 | 5366 | ||
| 5446 | /* Setup panel link | 5367 | /* Setup panel link |
| @@ -7130,12 +7051,6 @@ SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 7130 | 7051 | ||
| 7131 | /* Non-expanding: lcdvdes = tempcx = VT-1; lcdvdee = tempbx = VDE-1 */ | 7052 | /* Non-expanding: lcdvdes = tempcx = VT-1; lcdvdee = tempbx = VDE-1 */ |
| 7132 | 7053 | ||
| 7133 | #ifdef SIS_XORG_XF86 | ||
| 7134 | #ifdef TWDEBUG | ||
| 7135 | xf86DrvMsg(0, X_INFO, "lcdvdes 0x%x lcdvdee 0x%x\n", tempcx, tempbx); | ||
| 7136 | #endif | ||
| 7137 | #endif | ||
| 7138 | |||
| 7139 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x05,tempcx); /* lcdvdes */ | 7054 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x05,tempcx); /* lcdvdes */ |
| 7140 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x06,tempbx); /* lcdvdee */ | 7055 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x06,tempbx); /* lcdvdee */ |
| 7141 | 7056 | ||
| @@ -7184,12 +7099,6 @@ SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 7184 | tempbx = SiS_Pr->CVSyncStart; | 7099 | tempbx = SiS_Pr->CVSyncStart; |
| 7185 | } | 7100 | } |
| 7186 | 7101 | ||
| 7187 | #ifdef SIS_XORG_XF86 | ||
| 7188 | #ifdef TWDEBUG | ||
| 7189 | xf86DrvMsg(0, X_INFO, "lcdvrs 0x%x\n", tempbx); | ||
| 7190 | #endif | ||
| 7191 | #endif | ||
| 7192 | |||
| 7193 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,tempbx); /* lcdvrs */ | 7102 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,tempbx); /* lcdvrs */ |
| 7194 | 7103 | ||
| 7195 | temp = (tempbx >> 4) & 0xF0; | 7104 | temp = (tempbx >> 4) & 0xF0; |
| @@ -7201,12 +7110,6 @@ SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 7201 | temp |= (SiS_Pr->CVSyncEnd & 0x0f); | 7110 | temp |= (SiS_Pr->CVSyncEnd & 0x0f); |
| 7202 | } | 7111 | } |
| 7203 | 7112 | ||
| 7204 | #ifdef SIS_XORG_XF86 | ||
| 7205 | #ifdef TWDEBUG | ||
| 7206 | xf86DrvMsg(0, X_INFO, "lcdvre[3:0] 0x%x\n", (temp & 0x0f)); | ||
| 7207 | #endif | ||
| 7208 | #endif | ||
| 7209 | |||
| 7210 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,temp); | 7113 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,temp); |
| 7211 | 7114 | ||
| 7212 | #ifdef SIS300 | 7115 | #ifdef SIS300 |
| @@ -7245,12 +7148,6 @@ SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 7245 | tempax >>= 1; | 7148 | tempax >>= 1; |
| 7246 | } | 7149 | } |
| 7247 | 7150 | ||
| 7248 | #ifdef SIS_XORG_XF86 | ||
| 7249 | #ifdef TWDEBUG | ||
| 7250 | xf86DrvMsg(0, X_INFO, "lcdhdee 0x%x\n", tempbx); | ||
| 7251 | #endif | ||
| 7252 | #endif | ||
| 7253 | |||
| 7254 | tempbx += bridgeoffset; | 7151 | tempbx += bridgeoffset; |
| 7255 | 7152 | ||
| 7256 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x23,tempbx); /* lcdhdee */ | 7153 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x23,tempbx); /* lcdhdee */ |
| @@ -7276,12 +7173,6 @@ SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 7276 | tempbx += bridgeoffset; | 7173 | tempbx += bridgeoffset; |
| 7277 | } | 7174 | } |
| 7278 | 7175 | ||
| 7279 | #ifdef SIS_XORG_XF86 | ||
| 7280 | #ifdef TWDEBUG | ||
| 7281 | xf86DrvMsg(0, X_INFO, "lcdhrs 0x%x\n", tempbx); | ||
| 7282 | #endif | ||
| 7283 | #endif | ||
| 7284 | |||
| 7285 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x1C,tempbx); /* lcdhrs */ | 7176 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x1C,tempbx); /* lcdhrs */ |
| 7286 | SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1D,0x0F,((tempbx >> 4) & 0xf0)); | 7177 | SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1D,0x0F,((tempbx >> 4) & 0xf0)); |
| 7287 | 7178 | ||
| @@ -7300,12 +7191,6 @@ SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short | |||
| 7300 | tempbx += bridgeoffset; | 7191 | tempbx += bridgeoffset; |
| 7301 | } | 7192 | } |
| 7302 | 7193 | ||
| 7303 | #ifdef SIS_XORG_XF86 | ||
| 7304 | #ifdef TWDEBUG | ||
| 7305 | xf86DrvMsg(0, X_INFO, "lcdhre 0x%x\n", tempbx); | ||
| 7306 | #endif | ||
| 7307 | #endif | ||
| 7308 | |||
| 7309 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x21,tempbx); /* lcdhre */ | 7194 | SiS_SetReg(SiS_Pr->SiS_Part2Port,0x21,tempbx); /* lcdhre */ |
| 7310 | 7195 | ||
| 7311 | SiS_SetGroup2_Tail(SiS_Pr, ModeNo); | 7196 | SiS_SetGroup2_Tail(SiS_Pr, ModeNo); |
| @@ -8703,16 +8588,6 @@ SiS_SetCRT2Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo) | |||
| 8703 | SiS_GetLVDSDesData(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); | 8588 | SiS_GetLVDSDesData(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); |
| 8704 | } | 8589 | } |
| 8705 | 8590 | ||
| 8706 | #ifdef SIS_XORG_XF86 | ||
| 8707 | #ifdef TWDEBUG | ||
| 8708 | xf86DrvMsg(0, X_INFO, "(init301: LCDHDES 0x%03x LCDVDES 0x%03x)\n", SiS_Pr->SiS_LCDHDES, SiS_Pr->SiS_LCDVDES); | ||
| 8709 | xf86DrvMsg(0, X_INFO, "(init301: HDE 0x%03x VDE 0x%03x)\n", SiS_Pr->SiS_HDE, SiS_Pr->SiS_VDE); | ||
| 8710 | xf86DrvMsg(0, X_INFO, "(init301: VGAHDE 0x%03x VGAVDE 0x%03x)\n", SiS_Pr->SiS_VGAHDE, SiS_Pr->SiS_VGAVDE); | ||
| 8711 | xf86DrvMsg(0, X_INFO, "(init301: HT 0x%03x VT 0x%03x)\n", SiS_Pr->SiS_HT, SiS_Pr->SiS_VT); | ||
| 8712 | xf86DrvMsg(0, X_INFO, "(init301: VGAHT 0x%03x VGAVT 0x%03x)\n", SiS_Pr->SiS_VGAHT, SiS_Pr->SiS_VGAVT); | ||
| 8713 | #endif | ||
| 8714 | #endif | ||
| 8715 | |||
| 8716 | if(SiS_Pr->SiS_SetFlag & LowModeTests) { | 8591 | if(SiS_Pr->SiS_SetFlag & LowModeTests) { |
| 8717 | SiS_SetGroup1(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); | 8592 | SiS_SetGroup1(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); |
| 8718 | } | 8593 | } |
| @@ -8923,11 +8798,6 @@ SiS_SetTrumpionBlock(struct SiS_Private *SiS_Pr, unsigned char *dataptr) | |||
| 8923 | dataptr = SiS_SetTrumpBlockLoop(SiS_Pr, dataptr); | 8798 | dataptr = SiS_SetTrumpBlockLoop(SiS_Pr, dataptr); |
| 8924 | if(!dataptr) return false; | 8799 | if(!dataptr) return false; |
| 8925 | } | 8800 | } |
| 8926 | #ifdef SIS_XORG_XF86 | ||
| 8927 | #ifdef TWDEBUG | ||
| 8928 | xf86DrvMsg(0, X_INFO, "Trumpion block success\n"); | ||
| 8929 | #endif | ||
| 8930 | #endif | ||
| 8931 | return true; | 8801 | return true; |
| 8932 | } | 8802 | } |
| 8933 | #endif | 8803 | #endif |
| @@ -9114,9 +8984,7 @@ SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg, | |||
| 9114 | } | 8984 | } |
| 9115 | 8985 | ||
| 9116 | /* Our own DDC functions */ | 8986 | /* Our own DDC functions */ |
| 9117 | #ifndef SIS_XORG_XF86 | ||
| 9118 | static | 8987 | static |
| 9119 | #endif | ||
| 9120 | unsigned short | 8988 | unsigned short |
| 9121 | SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, | 8989 | SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, |
| 9122 | unsigned short adaptnum, unsigned short DDCdatatype, bool checkcr32, | 8990 | unsigned short adaptnum, unsigned short DDCdatatype, bool checkcr32, |
| @@ -9224,12 +9092,6 @@ SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, | |||
| 9224 | 9092 | ||
| 9225 | SiS_SetupDDCN(SiS_Pr); | 9093 | SiS_SetupDDCN(SiS_Pr); |
| 9226 | 9094 | ||
| 9227 | #ifdef SIS_XORG_XF86 | ||
| 9228 | #ifdef TWDEBUG | ||
| 9229 | xf86DrvMsg(0, X_INFO, "DDC Port %x Index %x Shift %d\n", | ||
| 9230 | SiS_Pr->SiS_DDC_Port, SiS_Pr->SiS_DDC_Index, temp); | ||
| 9231 | #endif | ||
| 9232 | #endif | ||
| 9233 | return 0; | 9095 | return 0; |
| 9234 | } | 9096 | } |
| 9235 | 9097 | ||
| @@ -9292,11 +9154,6 @@ SiS_DoProbeDDC(struct SiS_Private *SiS_Pr) | |||
| 9292 | SiS_SetSwitchDDC2(SiS_Pr); | 9154 | SiS_SetSwitchDDC2(SiS_Pr); |
| 9293 | if(SiS_PrepareDDC(SiS_Pr)) { | 9155 | if(SiS_PrepareDDC(SiS_Pr)) { |
| 9294 | SiS_SetStop(SiS_Pr); | 9156 | SiS_SetStop(SiS_Pr); |
| 9295 | #ifdef SIS_XORG_XF86 | ||
| 9296 | #ifdef TWDEBUG | ||
| 9297 | xf86DrvMsg(0, X_INFO, "Probe: Prepare failed\n"); | ||
| 9298 | #endif | ||
| 9299 | #endif | ||
| 9300 | return 0xFFFF; | 9157 | return 0xFFFF; |
| 9301 | } | 9158 | } |
| 9302 | mask = 0xf0; | 9159 | mask = 0xf0; |
| @@ -9310,11 +9167,6 @@ SiS_DoProbeDDC(struct SiS_Private *SiS_Pr) | |||
| 9310 | } else { | 9167 | } else { |
| 9311 | failed = true; | 9168 | failed = true; |
| 9312 | ret = 0xFFFF; | 9169 | ret = 0xFFFF; |
| 9313 | #ifdef SIS_XORG_XF86 | ||
| 9314 | #ifdef TWDEBUG | ||
| 9315 | xf86DrvMsg(0, X_INFO, "Probe: Read 1 failed\n"); | ||
| 9316 | #endif | ||
| 9317 | #endif | ||
| 9318 | } | 9170 | } |
| 9319 | } | 9171 | } |
| 9320 | if(!failed) { | 9172 | if(!failed) { |
| @@ -9324,11 +9176,6 @@ SiS_DoProbeDDC(struct SiS_Private *SiS_Pr) | |||
| 9324 | if(temp == value) ret = 0; | 9176 | if(temp == value) ret = 0; |
| 9325 | else { | 9177 | else { |
| 9326 | ret = 0xFFFF; | 9178 | ret = 0xFFFF; |
| 9327 | #ifdef SIS_XORG_XF86 | ||
| 9328 | #ifdef TWDEBUG | ||
| 9329 | xf86DrvMsg(0, X_INFO, "Probe: Read 2 failed\n"); | ||
| 9330 | #endif | ||
| 9331 | #endif | ||
| 9332 | if(SiS_Pr->SiS_DDC_DeviceAddr == 0xa0) { | 9179 | if(SiS_Pr->SiS_DDC_DeviceAddr == 0xa0) { |
| 9333 | if(temp == 0x30) ret = 0; | 9180 | if(temp == 0x30) ret = 0; |
| 9334 | } | 9181 | } |
| @@ -9338,9 +9185,7 @@ SiS_DoProbeDDC(struct SiS_Private *SiS_Pr) | |||
| 9338 | return ret; | 9185 | return ret; |
| 9339 | } | 9186 | } |
| 9340 | 9187 | ||
| 9341 | #ifndef SIS_XORG_XF86 | ||
| 9342 | static | 9188 | static |
| 9343 | #endif | ||
| 9344 | unsigned short | 9189 | unsigned short |
| 9345 | SiS_ProbeDDC(struct SiS_Private *SiS_Pr) | 9190 | SiS_ProbeDDC(struct SiS_Private *SiS_Pr) |
| 9346 | { | 9191 | { |
| @@ -9357,9 +9202,7 @@ SiS_ProbeDDC(struct SiS_Private *SiS_Pr) | |||
| 9357 | return flag; | 9202 | return flag; |
| 9358 | } | 9203 | } |
| 9359 | 9204 | ||
| 9360 | #ifndef SIS_XORG_XF86 | ||
| 9361 | static | 9205 | static |
| 9362 | #endif | ||
| 9363 | unsigned short | 9206 | unsigned short |
| 9364 | SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, unsigned char *buffer) | 9207 | SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, unsigned char *buffer) |
| 9365 | { | 9208 | { |
| @@ -9606,11 +9449,6 @@ SiS_SetSCLKHigh(struct SiS_Private *SiS_Pr) | |||
| 9606 | temp = SiS_GetReg(SiS_Pr->SiS_DDC_Port,SiS_Pr->SiS_DDC_Index); | 9449 | temp = SiS_GetReg(SiS_Pr->SiS_DDC_Port,SiS_Pr->SiS_DDC_Index); |
| 9607 | } while((!(temp & SiS_Pr->SiS_DDC_Clk)) && --watchdog); | 9450 | } while((!(temp & SiS_Pr->SiS_DDC_Clk)) && --watchdog); |
| 9608 | if (!watchdog) { | 9451 | if (!watchdog) { |
| 9609 | #ifdef SIS_XORG_XF86 | ||
| 9610 | #ifdef TWDEBUG | ||
| 9611 | xf86DrvMsg(0, X_INFO, "SetClkHigh failed\n"); | ||
| 9612 | #endif | ||
| 9613 | #endif | ||
| 9614 | return 0xFFFF; | 9452 | return 0xFFFF; |
| 9615 | } | 9453 | } |
| 9616 | SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT); | 9454 | SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT); |
diff --git a/drivers/video/sis/init301.h b/drivers/video/sis/init301.h index 51d99222375d..c379dc7a9973 100644 --- a/drivers/video/sis/init301.h +++ b/drivers/video/sis/init301.h | |||
| @@ -56,11 +56,6 @@ | |||
| 56 | #include "osdef.h" | 56 | #include "osdef.h" |
| 57 | #include "initdef.h" | 57 | #include "initdef.h" |
| 58 | 58 | ||
| 59 | #ifdef SIS_XORG_XF86 | ||
| 60 | #include "sis.h" | ||
| 61 | #include "sis_regs.h" | ||
| 62 | #endif | ||
| 63 | |||
| 64 | #ifdef SIS_LINUX_KERNEL | 59 | #ifdef SIS_LINUX_KERNEL |
| 65 | #include "vgatypes.h" | 60 | #include "vgatypes.h" |
| 66 | #include "vstruct.h" | 61 | #include "vstruct.h" |
| @@ -412,21 +407,12 @@ unsigned short SiS_HandleDDC(struct SiS_Private *SiS_Pr, unsigned int VBFlags, i | |||
| 412 | unsigned short adaptnum, unsigned short DDCdatatype, | 407 | unsigned short adaptnum, unsigned short DDCdatatype, |
| 413 | unsigned char *buffer, unsigned int VBFlags2); | 408 | unsigned char *buffer, unsigned int VBFlags2); |
| 414 | 409 | ||
| 415 | #ifdef SIS_XORG_XF86 | ||
| 416 | unsigned short SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, | ||
| 417 | int VGAEngine, unsigned short adaptnum, unsigned short DDCdatatype, | ||
| 418 | bool checkcr32, unsigned int VBFlags2); | ||
| 419 | unsigned short SiS_ProbeDDC(struct SiS_Private *SiS_Pr); | ||
| 420 | unsigned short SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, | ||
| 421 | unsigned char *buffer); | ||
| 422 | #else | ||
| 423 | static unsigned short SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, | 410 | static unsigned short SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, |
| 424 | int VGAEngine, unsigned short adaptnum, unsigned short DDCdatatype, | 411 | int VGAEngine, unsigned short adaptnum, unsigned short DDCdatatype, |
| 425 | bool checkcr32, unsigned int VBFlags2); | 412 | bool checkcr32, unsigned int VBFlags2); |
| 426 | static unsigned short SiS_ProbeDDC(struct SiS_Private *SiS_Pr); | 413 | static unsigned short SiS_ProbeDDC(struct SiS_Private *SiS_Pr); |
| 427 | static unsigned short SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, | 414 | static unsigned short SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, |
| 428 | unsigned char *buffer); | 415 | unsigned char *buffer); |
| 429 | #endif | ||
| 430 | static void SiS_SetSwitchDDC2(struct SiS_Private *SiS_Pr); | 416 | static void SiS_SetSwitchDDC2(struct SiS_Private *SiS_Pr); |
| 431 | static unsigned short SiS_SetStart(struct SiS_Private *SiS_Pr); | 417 | static unsigned short SiS_SetStart(struct SiS_Private *SiS_Pr); |
| 432 | static unsigned short SiS_SetStop(struct SiS_Private *SiS_Pr); | 418 | static unsigned short SiS_SetStop(struct SiS_Private *SiS_Pr); |
diff --git a/drivers/video/sis/osdef.h b/drivers/video/sis/osdef.h index 6ff8f988a1a7..e24d21a7ae4b 100644 --- a/drivers/video/sis/osdef.h +++ b/drivers/video/sis/osdef.h | |||
| @@ -56,7 +56,6 @@ | |||
| 56 | 56 | ||
| 57 | /* The choices are: */ | 57 | /* The choices are: */ |
| 58 | #define SIS_LINUX_KERNEL /* Linux kernel framebuffer */ | 58 | #define SIS_LINUX_KERNEL /* Linux kernel framebuffer */ |
| 59 | #undef SIS_XORG_XF86 /* XFree86/X.org */ | ||
| 60 | 59 | ||
| 61 | #ifdef OutPortByte | 60 | #ifdef OutPortByte |
| 62 | #undef OutPortByte | 61 | #undef OutPortByte |
| @@ -111,23 +110,4 @@ | |||
| 111 | 110 | ||
| 112 | #endif /* LINUX_KERNEL */ | 111 | #endif /* LINUX_KERNEL */ |
| 113 | 112 | ||
| 114 | /**********************************************************************/ | ||
| 115 | /* XFree86/X.org */ | ||
| 116 | /**********************************************************************/ | ||
| 117 | |||
| 118 | #ifdef SIS_XORG_XF86 | ||
| 119 | |||
| 120 | #define SIS300 | ||
| 121 | #define SIS315H | ||
| 122 | |||
| 123 | #define OutPortByte(p,v) outSISREG((IOADDRESS)(p),(CARD8)(v)) | ||
| 124 | #define OutPortWord(p,v) outSISREGW((IOADDRESS)(p),(CARD16)(v)) | ||
| 125 | #define OutPortLong(p,v) outSISREGL((IOADDRESS)(p),(CARD32)(v)) | ||
| 126 | #define InPortByte(p) inSISREG((IOADDRESS)(p)) | ||
| 127 | #define InPortWord(p) inSISREGW((IOADDRESS)(p)) | ||
| 128 | #define InPortLong(p) inSISREGL((IOADDRESS)(p)) | ||
| 129 | #define SiS_SetMemory(MemoryAddress,MemorySize,value) memset(MemoryAddress, value, MemorySize) | ||
| 130 | |||
| 131 | #endif /* XF86 */ | ||
| 132 | |||
| 133 | #endif /* _OSDEF_H_ */ | 113 | #endif /* _OSDEF_H_ */ |
diff --git a/drivers/video/sis/vgatypes.h b/drivers/video/sis/vgatypes.h index 81a22eaabfde..f499062bba94 100644 --- a/drivers/video/sis/vgatypes.h +++ b/drivers/video/sis/vgatypes.h | |||
| @@ -62,15 +62,6 @@ typedef unsigned long SISIOADDRESS; | |||
| 62 | #define SISIOMEMTYPE __iomem | 62 | #define SISIOMEMTYPE __iomem |
| 63 | #endif | 63 | #endif |
| 64 | 64 | ||
| 65 | #ifdef SIS_XORG_XF86 | ||
| 66 | #if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,0,0,0) | ||
| 67 | typedef unsigned long IOADDRESS; | ||
| 68 | typedef unsigned long SISIOADDRESS; | ||
| 69 | #else | ||
| 70 | typedef IOADDRESS SISIOADDRESS; | ||
| 71 | #endif | ||
| 72 | #endif | ||
| 73 | |||
| 74 | typedef enum _SIS_CHIP_TYPE { | 65 | typedef enum _SIS_CHIP_TYPE { |
| 75 | SIS_VGALegacy = 0, | 66 | SIS_VGALegacy = 0, |
| 76 | SIS_530, | 67 | SIS_530, |
diff --git a/drivers/video/sis/vstruct.h b/drivers/video/sis/vstruct.h index bef4aae388d0..a860039c1122 100644 --- a/drivers/video/sis/vstruct.h +++ b/drivers/video/sis/vstruct.h | |||
| @@ -233,9 +233,6 @@ struct SiS_Private | |||
| 233 | { | 233 | { |
| 234 | unsigned char ChipType; | 234 | unsigned char ChipType; |
| 235 | unsigned char ChipRevision; | 235 | unsigned char ChipRevision; |
| 236 | #ifdef SIS_XORG_XF86 | ||
| 237 | PCITAG PciTag; | ||
| 238 | #endif | ||
| 239 | #ifdef SIS_LINUX_KERNEL | 236 | #ifdef SIS_LINUX_KERNEL |
| 240 | void *ivideo; | 237 | void *ivideo; |
| 241 | #endif | 238 | #endif |
| @@ -280,9 +277,6 @@ struct SiS_Private | |||
| 280 | unsigned short SiS_IF_DEF_FSTN; | 277 | unsigned short SiS_IF_DEF_FSTN; |
| 281 | unsigned short SiS_SysFlags; | 278 | unsigned short SiS_SysFlags; |
| 282 | unsigned char SiS_VGAINFO; | 279 | unsigned char SiS_VGAINFO; |
| 283 | #ifdef SIS_XORG_XF86 | ||
| 284 | unsigned short SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4; | ||
| 285 | #endif | ||
| 286 | bool SiS_UseROM; | 280 | bool SiS_UseROM; |
| 287 | bool SiS_ROMNew; | 281 | bool SiS_ROMNew; |
| 288 | bool SiS_XGIROM; | 282 | bool SiS_XGIROM; |
