FIXED a STUPID BUG I stumbled on for a lot of GeForce 6200 cardsjam If you have such a card and had trouble using the driver it's time to upgrade now :). Fixed are PLL refreshrate calculations and dualhead detection: rewrote the detection code to be much less breakable now when new cards are added to the driver-supported list. Bumped version to 0.57. Sorry about this to the people who reported trouble with those 6200's to me...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14462 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2005-10-20 20:04:51 +00:00
parent a5cd1aeed0
commit 8ca55b56f0
2 changed files with 26 additions and 51 deletions

View File

@ -91,14 +91,14 @@ status_t nv_general_powerup()
{
status_t status;
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.57 running.\n"));
/* log VBLANK INT usability status */
if (si->ps.int_assigned)
LOG(4,("POWERUP: Usable INT assigned to HW; Vblank semaphore enabled\n"));
else
LOG(4,("POWERUP: No (usable) INT assigned to HW; Vblank semaphore disabled\n"));
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.56 running.\n"));
/* preset no laptop */
si->ps.laptop = false;

View File

@ -3051,63 +3051,38 @@ static void getstrap_arch_nv10_20_30_40(void)
uint32 dev_manID = CFGR(DEVID);
uint32 strapinfo = NV_REG32(NV32_NVSTRAPINFO2);
/* determine if we have a dualhead card */
si->ps.secondary_head = false;
switch (si->ps.card_type)
{
case NV04:
case NV05:
case NV05M64:
case NV06:
case NV10:
case NV15:
case NV20:
break;
default:
if ((dev_manID & 0xfff0ffff) == 0x01a010de)
{
/* this is a singlehead NV11! */
}
else
{
si->ps.secondary_head = true;
}
}
/* determine PLL reference crystal frequency: three types are used... */
if (strapinfo & 0x00000040)
si->ps.f_ref = 14.31818;
else
si->ps.f_ref = 13.50000;
switch (dev_manID & 0xfff0ffff)
if ((si->ps.secondary_head) && (si->ps.card_type != NV11))
{
/* Nvidia cards: */
case 0x004010de:
case 0x00c010de:
case 0x00f010de:
case 0x014010de:
case 0x017010de:
case 0x018010de:
case 0x01f010de:
case 0x025010de:
case 0x028010de:
case 0x030010de:
case 0x031010de:
case 0x032010de:
case 0x033010de:
case 0x034010de:
/* Varisys cards: */
case 0x35001888:
if (strapinfo & 0x00400000) si->ps.f_ref = 27.00000;
break;
default:
break;
}
/* determine if we have a dualhead card */
switch (dev_manID & 0xfff0ffff)
{
/* Nvidia cards: */
case 0x004010de:
case 0x00c010de:
case 0x00f010de:
case 0x011010de:
case 0x014010de:
case 0x017010de:
case 0x018010de:
case 0x01f010de:
case 0x025010de:
case 0x028010de:
case 0x030010de:
case 0x031010de:
case 0x032010de:
case 0x033010de:
case 0x034010de:
/* Varisys cards: */
case 0x35001888:
si->ps.secondary_head = true;
break;
default:
si->ps.secondary_head = false;
break;
}
}