modified PLL programming a bit to prevent unknown refresh during driver init.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14175 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
23c29a9f30
commit
870017dedc
@ -181,7 +181,10 @@ status_t eng_dac_set_pix_pll(display_mode target)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*reprogram (disable,select,wait for stability,enable)*/
|
/* reset primary pixelPLL */
|
||||||
|
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) | 0x02));
|
||||||
|
snooze(1000);
|
||||||
|
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) & ~0x02));
|
||||||
|
|
||||||
/* program new frequency */
|
/* program new frequency */
|
||||||
if (si->ps.card_arch != K8M800)
|
if (si->ps.card_arch != K8M800)
|
||||||
@ -198,6 +201,15 @@ status_t eng_dac_set_pix_pll(display_mode target)
|
|||||||
SEQW(PPLL_P_OTH, (p & 0x03));
|
SEQW(PPLL_P_OTH, (p & 0x03));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* reset primary pixelPLL (playing it safe) */
|
||||||
|
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) | 0x02));
|
||||||
|
snooze(1000);
|
||||||
|
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) & ~0x02));
|
||||||
|
|
||||||
|
/* now select pixelclock source D (the above custom VIA programmable PLL) */
|
||||||
|
snooze(1000);
|
||||||
|
ENG_REG8(RG8_MISCW) = 0xcf;
|
||||||
|
|
||||||
/* Wait for the PIXPLL frequency to lock until timeout occurs */
|
/* Wait for the PIXPLL frequency to lock until timeout occurs */
|
||||||
//fixme: do VIA cards have a LOCK indication bit??
|
//fixme: do VIA cards have a LOCK indication bit??
|
||||||
/* while((!(DXIR(PIXPLLSTAT)&0x40)) & (time <= 2000))
|
/* while((!(DXIR(PIXPLLSTAT)&0x40)) & (time <= 2000))
|
||||||
|
@ -90,7 +90,7 @@ status_t eng_general_powerup()
|
|||||||
{
|
{
|
||||||
status_t status;
|
status_t status;
|
||||||
|
|
||||||
LOG(1,("POWERUP: Haiku VIA Accelerant 0.09 running.\n"));
|
LOG(1,("POWERUP: Haiku VIA Accelerant 0.10 running.\n"));
|
||||||
|
|
||||||
/* preset no laptop */
|
/* preset no laptop */
|
||||||
si->ps.laptop = false;
|
si->ps.laptop = false;
|
||||||
@ -452,8 +452,6 @@ status_t eng_general_head_select(bool cross)
|
|||||||
* Should work from VGA BIOS POST init state. */
|
* Should work from VGA BIOS POST init state. */
|
||||||
static status_t eng_general_bios_to_powergraphics()
|
static status_t eng_general_bios_to_powergraphics()
|
||||||
{
|
{
|
||||||
display_mode dummy;
|
|
||||||
|
|
||||||
/* let acc engine make power off/power on cycle to start 'fresh' */
|
/* let acc engine make power off/power on cycle to start 'fresh' */
|
||||||
// ENG_REG32(RG32_PWRUPCTRL) = 0x13110011;
|
// ENG_REG32(RG32_PWRUPCTRL) = 0x13110011;
|
||||||
snooze(1000);
|
snooze(1000);
|
||||||
@ -529,23 +527,6 @@ static status_t eng_general_bios_to_powergraphics()
|
|||||||
/* setup sequencer clocking mode */
|
/* setup sequencer clocking mode */
|
||||||
SEQW(CLKMODE, 0x21);
|
SEQW(CLKMODE, 0x21);
|
||||||
|
|
||||||
/* playing it safe (I hope): */
|
|
||||||
/* reset primary pixelPLL */
|
|
||||||
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) | 0x02));
|
|
||||||
snooze(1000);
|
|
||||||
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) & ~0x02));
|
|
||||||
/* set some valid pixelclock PLL speed (using 40Mhz) */
|
|
||||||
dummy.timing.pixel_clock = 40000;
|
|
||||||
head1_set_pix_pll(dummy);
|
|
||||||
/* reset primary pixelPLL */
|
|
||||||
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) | 0x02));
|
|
||||||
snooze(1000);
|
|
||||||
SEQW(PLL_RESET, ((SEQR(PLL_RESET)) & ~0x02));
|
|
||||||
|
|
||||||
/* now select pixelclock source D (the above custom VIA programmable PLL) */
|
|
||||||
snooze(1000);
|
|
||||||
ENG_REG8(RG8_MISCW) = 0xcf;
|
|
||||||
|
|
||||||
/* setup AGP:
|
/* setup AGP:
|
||||||
* Note:
|
* Note:
|
||||||
* This may only be done when no transfers are in progress on the bus, so now
|
* This may only be done when no transfers are in progress on the bus, so now
|
||||||
|
Loading…
Reference in New Issue
Block a user