diff options
author | Stuart Bennett <stuart@freedesktop.org> | 2009-04-01 03:12:30 +0100 |
---|---|---|
committer | Stuart Bennett <stuart@freedesktop.org> | 2009-04-02 19:41:42 +0100 |
commit | 72eced5eeeef438979dff06b6c1cbaa120738cfe (patch) | |
tree | 5f063282b48736f528312fe8701eefed1bbabb58 /src/nv_setup.c | |
parent | 37c6916d3eac54cc13812276fca99662162c4bbc (diff) |
randr12: fix/improve a load of version/feature tests
Main improvement is introduction of flag for nv17+ display architecture
Other version fixes include:
* allow access of fp control regs on all cards (defined since nv4)
* only read crtc_850 and gpio_ext on nv40+, since only written on nv40+
* set dither state on all versions (only written out on relevant cards)
* PRAMDAC_DACCLK is only defined/usable on nv17+
* no point saving the lvds/tmds head for restore if there's only one head
* fix a bunch of places the nforce (0x1a) case had been missed
Diffstat (limited to 'src/nv_setup.c')
-rw-r--r-- | src/nv_setup.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nv_setup.c b/src/nv_setup.c index 574bc44..6d53139 100644 --- a/src/nv_setup.c +++ b/src/nv_setup.c @@ -335,7 +335,7 @@ static void nv10GetConfig(ScrnInfoPtr pScrn) pNv->RamAmountKBytes = 256*1024; pNv->CrystalFreqKHz = (nvReadEXTDEV(pNv, NV_PEXTDEV_BOOT_0) & (1 << 6)) ? 14318 : 13500; - if (pNv->twoHeads && implementation != CHIPSET_NV11) + if (pNv->gf4_disp_arch) if (nvReadEXTDEV(pNv, NV_PEXTDEV_BOOT_0) & (1 << 22)) pNv->CrystalFreqKHz = 27000; @@ -414,7 +414,9 @@ NVCommonSetup(ScrnInfoPtr pScrn) (implementation != CHIPSET_NFORCE) && (implementation != CHIPSET_NV20); - pNv->fpScaler = (pNv->FpScale && pNv->twoHeads && implementation != CHIPSET_NV11); + pNv->gf4_disp_arch = pNv->twoHeads && implementation != CHIPSET_NV11; + + pNv->fpScaler = pNv->FpScale && pNv->gf4_disp_arch; /* nv30 and nv35 have two stage PLLs, but use only one register; they are dealt with separately */ pNv->two_reg_pll = (implementation == CHIPSET_NV31) || |