openBeOS_Nvidia_V0.06_src

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5507 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
shatty
2003-12-01 04:31:06 +00:00
parent 887d4abb1d
commit b4c4470198
12 changed files with 1460 additions and 619 deletions
@@ -4,7 +4,7 @@
Other authors:
Mark Watson;
Rudolf Cornelissen 3/2002-7/2003.
Rudolf Cornelissen 3/2002-10/2003.
*/
/* standard kernel driver stuff */
@@ -131,10 +131,12 @@ static uint16 nvidia_device_list[] = {
0x0178, /* Nvidia Quadro4 500 XGL/550 XGL */
0x017a, /* Nvidia Quadro4 200 NVS/400 NVS */
0x017c, /* Nvidia Quadro4 500 GoGL */
//fixme: three IDs below correct??
0x017d, /* Nvidia unknown 4 Go */
0x0180, /* Nvidia GeForce4 MX 440 AGP8X */
0x0181, /* Nvidia GeForce4 MX 440SE AGP8X */
0x0182, /* Nvidia GeForce4 MX 420 AGP8X */
0x0186, /* Nvidia GeForce4 448 Go */
0x0187, /* Nvidia GeForce4 488 Go */
0x0188, /* Nvidia Quadro4 580 XGL */
0x018a, /* Nvidia Quadro4 280 NVS */
0x018b, /* Nvidia Quadro4 380 XGL */
@@ -156,6 +158,7 @@ static uint16 nvidia_device_list[] = {
0x0286, /* Nvidia GeForce4 4200 Go */
0x0288, /* Nvidia Quadro4 980 XGL */
0x0289, /* Nvidia Quadro4 780 XGL */
0x028c, /* Nvidia unknown 4 Go */
0x02a0, /* Nvidia GeForce3 Integrated GPU */
0x0301, /* Nvidia GeForce FX 5800 Ultra */
0x0302, /* Nvidia GeForce FX 5800 */
@@ -163,10 +166,20 @@ static uint16 nvidia_device_list[] = {
0x0309, /* Nvidia Quadro FX 1000 */
0x0311, /* Nvidia GeForce FX 5600 Ultra */
0x0312, /* Nvidia GeForce FX 5600 */
0x0316, /* Nvidia unknown FX Go */
0x0317, /* Nvidia unknown FX Go */
0x031a, /* Nvidia GeForce FX 5600 Go */
0x031b, /* Nvidia unknown FX Go */
0x031c, /* Nvidia unknown FX Go */
0x031d, /* Nvidia unknown FX Go */
0x031e, /* Nvidia unknown FX Go */
0x031f, /* Nvidia unknown FX Go */
0x0321, /* Nvidia GeForce FX 5200 Ultra */
0x0322, /* Nvidia GeForce FX 5200 */
0x0324, /* Nvidia GeForce FX 5200 Go */
0x0326, /* Nvidia unknown FX Go */
0x032b, /* Nvidia Quadro FX 500 */
0x032e, /* Nvidia unknown FX Go */
0x0330, /* Nvidia GeForce FX 5900 Ultra */
0x0331, /* Nvidia GeForce FX 5900 */
0x0338, /* Nvidia Quadro FX 3000 */
@@ -229,32 +242,38 @@ static void dumprom (void *rom, size_t size)
close (fd);
}
/*return 1, is interrupt has occured*/
/* return 1 if vblank interrupt has occured */
int caused_vbi(vuint32 * regs)
{
// return (ACCR(STATUS)&0x20);
//temp:
return 0;
return (NV_REG32(NV32_CRTC_INTS) & 0x00000001);
}
/*clear the interrupt*/
/* clear the vblank interrupt */
void clear_vbi(vuint32 * regs)
{
// ACCW(ICLEAR,0x20);
NV_REG32(NV32_CRTC_INTS) = 0x00000001;
}
void enable_vbi(vuint32 * regs)
{
// ACCW(IEN,ACCR(IEN)|0x20);
/* clear the vblank interrupt */
NV_REG32(NV32_CRTC_INTS) = 0x00000001;
/* enable nVidia interrupt source vblank */
NV_REG32(NV32_CRTC_INTE) |= 0x00000001;
/* enable nVidia interrupt system hardware (b0-1) */
NV_REG32(NV32_MAIN_INTE) = 0x00000001;
}
void disable_vbi(vuint32 * regs)
{
// ACCW(IEN,(ACCR(IEN)&~0x20));
// ACCW(ICLEAR,0x20);
/* disable nVidia interrupt source vblank */
NV_REG32(NV32_CRTC_INTE) &= 0xfffffffe;
/* clear the vblank interrupt */
NV_REG32(NV32_CRTC_INTS) = 0x00000001;
/* disable nVidia interrupt system hardware (b0-1) */
NV_REG32(NV32_MAIN_INTE) = 0x00000000;
}
/*
init_hardware() - Returns B_OK if one is
found, otherwise returns B_ERROR so the driver will be unloaded.