summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nv_const.h2
-rw-r--r--src/nv_cursor.c2
-rw-r--r--src/nv_dac.c3
-rw-r--r--src/nv_dga.c2
-rw-r--r--src/nv_dma.h2
-rw-r--r--src/nv_driver.c51
-rw-r--r--src/nv_hw.c11
-rw-r--r--src/nv_include.h2
-rw-r--r--src/nv_local.h2
-rw-r--r--src/nv_proto.h2
-rw-r--r--src/nv_setup.c2
-rw-r--r--src/nv_shadow.c2
-rw-r--r--src/nv_type.h2
-rw-r--r--src/nv_video.c2
-rw-r--r--src/nv_xaa.c2
-rw-r--r--src/nvreg.h200
-rw-r--r--src/nvvga.h82
-rw-r--r--src/riva_const.h2
-rw-r--r--src/riva_cursor.c2
-rw-r--r--src/riva_dac.c2
-rw-r--r--src/riva_dga.c2
-rw-r--r--src/riva_driver.c3
-rw-r--r--src/riva_hw.c2
-rw-r--r--src/riva_hw.h2
-rw-r--r--src/riva_include.h2
-rw-r--r--src/riva_local.h2
-rw-r--r--src/riva_proto.h2
-rw-r--r--src/riva_setup.c2
-rw-r--r--src/riva_shadow.c2
-rw-r--r--src/riva_tbl.h2
-rw-r--r--src/riva_type.h2
-rw-r--r--src/riva_xaa.c2
32 files changed, 349 insertions, 53 deletions
diff --git a/src/nv_const.h b/src/nv_const.h
index f4ab437..bd01635 100644
--- a/src/nv_const.h
+++ b/src/nv_const.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h,v 1.7 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h,v 1.6 2001/12/07 00:09:55 mvojkovi Exp $ */
#ifndef __NV_CONST_H__
#define __NV_CONST_H__
diff --git a/src/nv_cursor.c b/src/nv_cursor.c
index 85ac42a..577b44d 100644
--- a/src/nv_cursor.c
+++ b/src/nv_cursor.c
@@ -37,7 +37,7 @@
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_cursor.c,v 1.12 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_cursor.c,v 1.11 2002/11/26 23:41:58 mvojkovi Exp $ */
#include "nv_include.h"
diff --git a/src/nv_dac.c b/src/nv_dac.c
index c1e093e..4b3f528 100644
--- a/src/nv_dac.c
+++ b/src/nv_dac.c
@@ -236,6 +236,9 @@ NVDACInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
} else
nvReg->cursorConfig |= 0x02000000;
+ nvReg->timingH = 0;
+ nvReg->timingV = 0;
+
return (TRUE);
}
diff --git a/src/nv_dga.c b/src/nv_dga.c
index d4bf3ff..baafbfe 100644
--- a/src/nv_dga.c
+++ b/src/nv_dga.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dga.c,v 1.12 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dga.c,v 1.11 2002/01/25 21:56:06 tsi Exp $ */
#include "nv_local.h"
#include "nv_include.h"
diff --git a/src/nv_dma.h b/src/nv_dma.h
index 6506068..15b222f 100644
--- a/src/nv_dma.h
+++ b/src/nv_dma.h
@@ -38,7 +38,7 @@
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dma.h,v 1.2 2003/07/31 21:41:26 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dma.h,v 1.1 2003/07/31 20:24:29 mvojkovi Exp $ */
#define SURFACE_FORMAT 0x00000300
#define SURFACE_FORMAT_DEPTH8 0x00000001
diff --git a/src/nv_driver.c b/src/nv_driver.c
index c8c2278..11a71e7 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -1,3 +1,4 @@
+/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.1.4.3.2.1 2004/03/04 17:47:49 eich Exp $ */
/* $XConsortium: nv_driver.c /main/3 1996/10/28 05:13:37 kaleb $ */
/*
* Copyright 1996-1997 David J. McKay
@@ -24,7 +25,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
<jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.119 2003/11/07 23:56:28 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.122 2004/01/10 22:31:53 mvojkovi Exp $ */
#include "nv_include.h"
@@ -167,6 +168,7 @@ static SymTabRec NVKnownChipsets[] =
{ 0x10DE031D, "0x031D" },
{ 0x10DE031E, "0x031E" },
{ 0x10DE031F, "0x031F" },
+ { 0x10DE0320, "GeForce FX 5200" },
{ 0x10DE0321, "GeForce FX 5200 Ultra" },
{ 0x10DE0322, "GeForce FX 5200" },
{ 0x10DE0323, "GeForce FX 5200SE" },
@@ -191,12 +193,14 @@ static SymTabRec NVKnownChipsets[] =
{ 0x10DE0338, "Quadro FX 3000" },
{ 0x10DE0341, "GeForce FX 5700 Ultra" },
{ 0x10DE0342, "GeForce FX 5700" },
- { 0x10DE0343, "0x0343" },
- { 0x10DE0347, "0x0347" },
- { 0x10DE0348, "0x0348" },
+ { 0x10DE0343, "GeForce FX 5700LE" },
+ { 0x10DE0344, "GeForce FX 5700VE" },
+ { 0x10DE0345, "0x0345" },
+ { 0x10DE0347, "GeForce FX Go5700" },
+ { 0x10DE0348, "GeForce FX Go5700" },
{ 0x10DE0349, "0x0349" },
{ 0x10DE034B, "0x034B" },
- { 0x10DE034C, "0x034C" },
+ { 0x10DE034C, "Quadro FX Go1000" },
{ 0x10DE034E, "Quadro FX 1100" },
{ 0x10DE034F, "0x034F" },
{-1, NULL}
@@ -1183,22 +1187,12 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
NVCommonSetup(pScrn);
- /*
- * If the user has specified the amount of memory in the XF86Config
- * file, we respect that setting.
- */
- if (pNv->pEnt->device->videoRam != 0) {
- pScrn->videoRam = pNv->pEnt->device->videoRam;
- from = X_CONFIG;
+ if (pNv->FBDev) {
+ pScrn->videoRam = fbdevHWGetVidmem(pScrn)/1024;
} else {
- if (pNv->FBDev) {
- pScrn->videoRam = fbdevHWGetVidmem(pScrn)/1024;
- } else {
- pScrn->videoRam = pNv->RamAmountKBytes;
- }
- from = X_PROBED;
+ pScrn->videoRam = pNv->RamAmountKBytes;
}
- xf86DrvMsg(pScrn->scrnIndex, from, "VideoRAM: %d kBytes\n",
+ xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "VideoRAM: %d kBytes\n",
pScrn->videoRam);
pNv->FbMapSize = pScrn->videoRam * 1024;
@@ -1519,13 +1513,15 @@ static void NVBacklightEnable(NVPtr pNv, Bool on)
(pNv->Chipset == 0x10DE0329))
{
/* NV17,18,34 Apple iMac, iBook, PowerBook */
- CARD32 tmp;
- tmp = pNv->PMC[0x10F0/4] & 0x7FFFFFFF;
- pNv->PMC[0x10F0/4] = tmp;
- tmp = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFC;
- if(on)
- tmp |= 0x1;
- pNv->PCRTC0[0x081C/4] = tmp;
+ CARD32 tmp_pmc, tmp_pcrt;
+ tmp_pmc = pNv->PMC[0x10F0/4] & 0x7FFFFFFF;
+ tmp_pcrt = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFC;
+ if(on) {
+ tmp_pmc |= (1 << 31);
+ tmp_pcrt |= 0x1;
+ }
+ pNv->PMC[0x10F0/4] = tmp_pmc;
+ pNv->PCRTC0[0x081C/4] = tmp_pcrt;
}
#endif
}
@@ -1785,6 +1781,9 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
case 16: refreshArea = NVRefreshArea16; break;
case 32: refreshArea = NVRefreshArea32; break;
}
+ xf86DisableRandR();
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Driver rotation enabled, RandR disabled\n");
}
ShadowFBInit(pScreen, refreshArea);
diff --git a/src/nv_hw.c b/src/nv_hw.c
index b5bb015..67e3b5b 100644
--- a/src/nv_hw.c
+++ b/src/nv_hw.c
@@ -1132,9 +1132,9 @@ void NVLoadStateExt (
}
VGA_WR08(pNv->PCIO, 0x03D4, 0x53);
- VGA_WR08(pNv->PCIO, 0x03D5, 0);
+ VGA_WR08(pNv->PCIO, 0x03D5, state->timingH);
VGA_WR08(pNv->PCIO, 0x03D4, 0x54);
- VGA_WR08(pNv->PCIO, 0x03D5, 0);
+ VGA_WR08(pNv->PCIO, 0x03D5, state->timingV);
VGA_WR08(pNv->PCIO, 0x03D4, 0x21);
VGA_WR08(pNv->PCIO, 0x03D5, 0xfa);
}
@@ -1243,6 +1243,13 @@ void NVUnloadStateExt
if((pNv->Chipset & 0x0ff0) >= 0x0170) {
state->dither = pNv->PRAMDAC[0x083C/4];
}
+
+ if(pNv->FlatPanel) {
+ VGA_WR08(pNv->PCIO, 0x03D4, 0x53);
+ state->timingH = VGA_RD08(pNv->PCIO, 0x03D5);
+ VGA_WR08(pNv->PCIO, 0x03D4, 0x54);
+ state->timingV = VGA_RD08(pNv->PCIO, 0x03D5);
+ }
}
}
diff --git a/src/nv_include.h b/src/nv_include.h
index 2d4465b..acd3543 100644
--- a/src/nv_include.h
+++ b/src/nv_include.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h,v 1.11 2001/12/07 00:09:56 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h,v 1.9 2000/10/06 12:31:03 eich Exp $ */
#ifndef __NV_INCLUDE_H__
#define __NV_INCLUDE_H__
diff --git a/src/nv_local.h b/src/nv_local.h
index f9a8668..ed58ef4 100644
--- a/src/nv_local.h
+++ b/src/nv_local.h
@@ -36,7 +36,7 @@
|* those rights set forth herein. *|
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_local.h,v 1.9 2003/11/03 05:11:25 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_local.h,v 1.8tsi Exp $ */
#ifndef __NV_LOCAL_H__
#define __NV_LOCAL_H__
diff --git a/src/nv_proto.h b/src/nv_proto.h
index f526a71..a074346 100644
--- a/src/nv_proto.h
+++ b/src/nv_proto.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_proto.h,v 1.10 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_proto.h,v 1.9 2003/05/04 01:20:52 mvojkovi Exp $ */
#ifndef __NV_PROTO_H__
#define __NV_PROTO_H__
diff --git a/src/nv_setup.c b/src/nv_setup.c
index 8f84f8e..e399904 100644
--- a/src/nv_setup.c
+++ b/src/nv_setup.c
@@ -292,7 +292,7 @@ static void nv10GetConfig (NVPtr pNv)
}
#endif
- if((pNv->Chipset && 0xffff) == 0x01a0) {
+ if((pNv->Chipset & 0xffff) == 0x01a0) {
int amt = pciReadLong(pciTag(0, 0, 1), 0x7C);
pNv->RamAmountKBytes = (((amt >> 6) & 31) + 1) * 1024;
} else if((pNv->Chipset & 0xffff) == 0x01f0) {
diff --git a/src/nv_shadow.c b/src/nv_shadow.c
index 5effc79..564220a 100644
--- a/src/nv_shadow.c
+++ b/src/nv_shadow.c
@@ -2,7 +2,7 @@
Copyright (c) 1999, The XFree86 Project Inc.
Written by Mark Vojkovich <markv@valinux.com>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_shadow.c,v 1.6 2001/01/22 21:32:36 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_shadow.c,v 1.5 2000/03/13 18:49:29 mvojkovi Exp $ */
#include "nv_local.h"
#include "nv_include.h"
diff --git a/src/nv_type.h b/src/nv_type.h
index 5730cb5..5cae38d 100644
--- a/src/nv_type.h
+++ b/src/nv_type.h
@@ -63,6 +63,8 @@ typedef struct _riva_hw_state
U032 cursor0;
U032 cursor1;
U032 cursor2;
+ U032 timingH;
+ U032 timingV;
} RIVA_HW_STATE, *NVRegPtr;
diff --git a/src/nv_video.c b/src/nv_video.c
index 3b2eb5b..66f49c0 100644
--- a/src/nv_video.c
+++ b/src/nv_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_video.c,v 1.21 2003/11/10 18:22:24 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_video.c,v 1.20tsi Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/src/nv_xaa.c b/src/nv_xaa.c
index e237abb..3bf6b16 100644
--- a/src/nv_xaa.c
+++ b/src/nv_xaa.c
@@ -37,7 +37,7 @@
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c,v 1.34 2003/10/15 20:28:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c,v 1.33 2003/09/21 00:17:34 mvojkovi Exp $ */
#include "nv_include.h"
#include "xaalocal.h"
diff --git a/src/nvreg.h b/src/nvreg.h
new file mode 100644
index 0000000..c7bd6ba
--- /dev/null
+++ b/src/nvreg.h
@@ -0,0 +1,200 @@
+/* $XConsortium: nvreg.h /main/2 1996/10/28 05:13:41 kaleb $ */
+/*
+ * Copyright 1996-1997 David J. McKay
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * DAVID J. MCKAY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nvreg.h,v 1.6 2002/01/25 21:56:06 tsi Exp $ */
+
+#ifndef __NVREG_H_
+#define __NVREG_H_
+
+/* Little macro to construct bitmask for contiguous ranges of bits */
+#define BITMASK(t,b) (((unsigned)(1U << (((t)-(b)+1)))-1) << (b))
+#define MASKEXPAND(mask) BITMASK(1?mask,0?mask)
+
+/* Macro to set specific bitfields (mask has to be a macro x:y) ! */
+#define SetBF(mask,value) ((value) << (0?mask))
+#define GetBF(var,mask) (((unsigned)((var) & MASKEXPAND(mask))) >> (0?mask) )
+
+#define MaskAndSetBF(var,mask,value) (var)=(((var)&(~MASKEXPAND(mask)) \
+ | SetBF(mask,value)))
+
+#define DEVICE_BASE(device) (0?NV##_##device)
+#define DEVICE_SIZE(device) ((1?NV##_##device) - DEVICE_BASE(device)+1)
+
+/* This is where we will have to have conditional compilation */
+#define DEVICE_ACCESS(device,reg) \
+ nv##device##Port[((NV_##device##_##reg)-DEVICE_BASE(device))/4]
+
+#define DEVICE_WRITE(device,reg,value) DEVICE_ACCESS(device,reg)=(value)
+#define DEVICE_READ(device,reg) DEVICE_ACCESS(device,reg)
+#define DEVICE_PRINT(device,reg) \
+ ErrorF("NV_"#device"_"#reg"=#%08lx\n",DEVICE_ACCESS(device,reg))
+#define DEVICE_DEF(device,mask,value) \
+ SetBF(NV_##device##_##mask,NV_##device##_##mask##_##value)
+#define DEVICE_VALUE(device,mask,value) SetBF(NV_##device##_##mask,value)
+#define DEVICE_MASK(device,mask) MASKEXPAND(NV_##device##_##mask)
+
+#define PDAC_Write(reg,value) DEVICE_WRITE(PDAC,reg,value)
+#define PDAC_Read(reg) DEVICE_READ(PDAC,reg)
+#define PDAC_Print(reg) DEVICE_PRINT(PDAC,reg)
+#define PDAC_Def(mask,value) DEVICE_DEF(PDAC,mask,value)
+#define PDAC_Val(mask,value) DEVICE_VALUE(PDAC,mask,value)
+#define PDAC_Mask(mask) DEVICE_MASK(PDAC,mask)
+
+#define PFB_Write(reg,value) DEVICE_WRITE(PFB,reg,value)
+#define PFB_Read(reg) DEVICE_READ(PFB,reg)
+#define PFB_Print(reg) DEVICE_PRINT(PFB,reg)
+#define PFB_Def(mask,value) DEVICE_DEF(PFB,mask,value)
+#define PFB_Val(mask,value) DEVICE_VALUE(PFB,mask,value)
+#define PFB_Mask(mask) DEVICE_MASK(PFB,mask)
+
+#define PRM_Write(reg,value) DEVICE_WRITE(PRM,reg,value)
+#define PRM_Read(reg) DEVICE_READ(PRM,reg)
+#define PRM_Print(reg) DEVICE_PRINT(PRM,reg)
+#define PRM_Def(mask,value) DEVICE_DEF(PRM,mask,value)
+#define PRM_Val(mask,value) DEVICE_VALUE(PRM,mask,value)
+#define PRM_Mask(mask) DEVICE_MASK(PRM,mask)
+
+#define PGRAPH_Write(reg,value) DEVICE_WRITE(PGRAPH,reg,value)
+#define PGRAPH_Read(reg) DEVICE_READ(PGRAPH,reg)
+#define PGRAPH_Print(reg) DEVICE_PRINT(PGRAPH,reg)
+#define PGRAPH_Def(mask,value) DEVICE_DEF(PGRAPH,mask,value)
+#define PGRAPH_Val(mask,value) DEVICE_VALUE(PGRAPH,mask,value)
+#define PGRAPH_Mask(mask) DEVICE_MASK(PGRAPH,mask)
+
+#define PDMA_Write(reg,value) DEVICE_WRITE(PDMA,reg,value)
+#define PDMA_Read(reg) DEVICE_READ(PDMA,reg)
+#define PDMA_Print(reg) DEVICE_PRINT(PDMA,reg)
+#define PDMA_Def(mask,value) DEVICE_DEF(PDMA,mask,value)
+#define PDMA_Val(mask,value) DEVICE_VALUE(PDMA,mask,value)
+#define PDMA_Mask(mask) DEVICE_MASK(PDMA,mask)
+
+#define PTIMER_Write(reg,value) DEVICE_WRITE(PTIMER,reg,value)
+#define PTIMER_Read(reg) DEVICE_READ(PTIMER,reg)
+#define PTIMER_Print(reg) DEVICE_PRINT(PTIMER,reg)
+#define PTIMER_Def(mask,value) DEVICE_DEF(PTIMER,mask,value)
+#define PTIMER_Val(mask,value) DEVICE_VALUE(PTIEMR,mask,value)
+#define PTIMER_Mask(mask) DEVICE_MASK(PTIMER,mask)
+
+#define PEXTDEV_Write(reg,value) DEVICE_WRITE(PEXTDEV,reg,value)
+#define PEXTDEV_Read(reg) DEVICE_READ(PEXTDEV,reg)
+#define PEXTDEV_Print(reg) DEVICE_PRINT(PEXTDEV,reg)
+#define PEXTDEV_Def(mask,value) DEVICE_DEF(PEXTDEV,mask,value)
+#define PEXTDEV_Val(mask,value) DEVICE_VALUE(PEXTDEV,mask,value)
+#define PEXTDEV_Mask(mask) DEVICE_MASK(PEXTDEV,mask)
+
+#define PFIFO_Write(reg,value) DEVICE_WRITE(PFIFO,reg,value)
+#define PFIFO_Read(reg) DEVICE_READ(PFIFO,reg)
+#define PFIFO_Print(reg) DEVICE_PRINT(PFIFO,reg)
+#define PFIFO_Def(mask,value) DEVICE_DEF(PFIFO,mask,value)
+#define PFIFO_Val(mask,value) DEVICE_VALUE(PFIFO,mask,value)
+#define PFIFO_Mask(mask) DEVICE_MASK(PFIFO,mask)
+
+#define PRAM_Write(reg,value) DEVICE_WRITE(PRAM,reg,value)
+#define PRAM_Read(reg) DEVICE_READ(PRAM,reg)
+#define PRAM_Print(reg) DEVICE_PRINT(PRAM,reg)
+#define PRAM_Def(mask,value) DEVICE_DEF(PRAM,mask,value)
+#define PRAM_Val(mask,value) DEVICE_VALUE(PRAM,mask,value)
+#define PRAM_Mask(mask) DEVICE_MASK(PRAM,mask)
+
+#define PRAMFC_Write(reg,value) DEVICE_WRITE(PRAMFC,reg,value)
+#define PRAMFC_Read(reg) DEVICE_READ(PRAMFC,reg)
+#define PRAMFC_Print(reg) DEVICE_PRINT(PRAMFC,reg)
+#define PRAMFC_Def(mask,value) DEVICE_DEF(PRAMFC,mask,value)
+#define PRAMFC_Val(mask,value) DEVICE_VALUE(PRAMFC,mask,value)
+#define PRAMFC_Mask(mask) DEVICE_MASK(PRAMFC,mask)
+
+#define PMC_Write(reg,value) DEVICE_WRITE(PMC,reg,value)
+#define PMC_Read(reg) DEVICE_READ(PMC,reg)
+#define PMC_Print(reg) DEVICE_PRINT(PMC,reg)
+#define PMC_Def(mask,value) DEVICE_DEF(PMC,mask,value)
+#define PMC_Val(mask,value) DEVICE_VALUE(PMC,mask,value)
+#define PMC_Mask(mask) DEVICE_MASK(PMC,mask)
+
+#define PMC_Write(reg,value) DEVICE_WRITE(PMC,reg,value)
+#define PMC_Read(reg) DEVICE_READ(PMC,reg)
+#define PMC_Print(reg) DEVICE_PRINT(PMC,reg)
+#define PMC_Def(mask,value) DEVICE_DEF(PMC,mask,value)
+#define PMC_Val(mask,value) DEVICE_VALUE(PMC,mask,value)
+#define PMC_Mask(mask) DEVICE_MASK(PMC,mask)
+
+
+#define PBUS_Write(reg,value) DEVICE_WRITE(PBUS,reg,value)
+#define PBUS_Read(reg) DEVICE_READ(PBUS,reg)
+#define PBUS_Print(reg) DEVICE_PRINT(PBUS,reg)
+#define PBUS_Def(mask,value) DEVICE_DEF(PBUS,mask,value)
+#define PBUS_Val(mask,value) DEVICE_VALUE(PBUS,mask,value)
+#define PBUS_Mask(mask) DEVICE_MASK(PBUS,mask)
+
+
+#define PRAMDAC_Write(reg,value) DEVICE_WRITE(PRAMDAC,reg,value)
+#define PRAMDAC_Read(reg) DEVICE_READ(PRAMDAC,reg)
+#define PRAMDAC_Print(reg) DEVICE_PRINT(PRAMDAC,reg)
+#define PRAMDAC_Def(mask,value) DEVICE_DEF(PRAMDAC,mask,value)
+#define PRAMDAC_Val(mask,value) DEVICE_VALUE(PRAMDAC,mask,value)
+#define PRAMDAC_Mask(mask) DEVICE_MASK(PRAMDAC,mask)
+
+
+#define PDAC_ReadExt(reg) \
+ ((PDAC_Write(INDEX_LO,(NV_PDAC_EXT_##reg) & 0xff)),\
+ (PDAC_Write(INDEX_HI,((NV_PDAC_EXT_##reg) >> 8) & 0xff)),\
+ (PDAC_Read(INDEX_DATA)))
+
+#define PDAC_WriteExt(reg,value)\
+ ((PDAC_Write(INDEX_LO,(NV_PDAC_EXT_##reg) & 0xff)),\
+ (PDAC_Write(INDEX_HI,((NV_PDAC_EXT_##reg) >> 8) & 0xff)),\
+ (PDAC_Write(INDEX_DATA,(value))))
+
+#define PCRTC_Def(mask,value) DEVICE_DEF(PCRTC,mask,value)
+#define PCRTC_Val(mask,value) DEVICE_VALUE(PCRTC,mask,value)
+#define PCRTC_Mask(mask) DEVICE_MASK(PCRTC,mask)
+
+
+/* These are the variables which actually point at the register blocks */
+extern volatile unsigned *nvPDACPort; /* Points to the DAC */
+extern volatile unsigned *nvPFBPort; /* Points to the Frame buffer */
+extern volatile unsigned *nvPRMPort; /* Points to real mode stuff */
+extern volatile unsigned *nvPGRAPHPort; /* Graphics unit */
+extern volatile unsigned *nvPDMAPort; /* DMA engine */
+extern volatile unsigned *nvPFIFOPort; /* FIFO registers */
+extern volatile unsigned *nvPTIMERPort; /* TIMER registers */
+extern volatile unsigned *nvPEXTDEVPort; /* EXTDEV registers */
+extern volatile unsigned *nvPRAMPort; /* Priviliged RAM registers */
+extern volatile unsigned *nvPRAMFCPort; /* Priviliged RAM (Fifo) */
+extern volatile unsigned *nvPRAMHTPort; /* Priviliged RAM (hash) */
+extern volatile unsigned *nvPMCPort; /* Priviliged RAM (hash) */
+extern volatile unsigned *nvCHAN0Port; /* User channel 0 */
+extern volatile unsigned *nvPRAMDACPort; /* Points to the RAMDAC */
+extern volatile unsigned *nvPRAMINPort; /* Privileges instance memory */
+extern volatile unsigned *nvPBUSPort; /* Priviled Bus */
+extern volatile unsigned *nvPNVMPort; /* Priviled Bus */
+extern volatile unsigned *dumb; /* FrameBuffer - hack!!!! */
+
+
+typedef enum {NV1,NV3,NV4,NV10,NumNVChips} NVChipType;
+
+NVChipType GetChipType(void);
+
+
+#endif
+
+
diff --git a/src/nvvga.h b/src/nvvga.h
new file mode 100644
index 0000000..e194792
--- /dev/null
+++ b/src/nvvga.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright 1996-1997 David J. McKay
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * DAVID J. MCKAY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nvvga.h,v 1.2 2001/11/19 15:33:41 tsi Exp $ */
+
+#ifndef __NVVGA_H__
+#define __NVVGA_H__
+
+#include "riva_hw.h"
+
+#define PALETTE_SIZE 256
+
+#define NV_PDAC_CURSOR_SIZE 32
+#define NV_PDAC_CURSOR_PLANE_SIZE (NV_PDAC_CURSOR_SIZE*4)
+
+/* This is the structure for the NV1. It is not a VGA based core */
+
+typedef struct {
+ unsigned char Nparam, Mparam, Oparam, Pparam;
+ unsigned char NparamMPLL, MparamMPLL, OparamMPLL, PparamMPLL;
+ unsigned char dacConfReg0;
+ unsigned char dacConfReg1;
+ unsigned char dacRgbPalCtrl;
+ unsigned long confReg0;
+ unsigned long green0; /* DPMS and sync polarity control */
+ unsigned long memoryTrace;
+ unsigned long startAddr; /* Where to start reading out from the buffer */
+ /* All the following registers control the display */
+ unsigned long prmConfig0; /* Controls if text mode on or off */
+ unsigned long horFrontPorch; /* Front porch in pixels */
+ unsigned long horSyncWidth; /* Sync Width in pixels */
+ unsigned long horBackPorch; /* horizontal back porch in in pixels */
+ unsigned long horDispWidth; /* Horizontal display width in pixels */
+ unsigned long verFrontPorch; /* Vertical front porch in lines */
+ unsigned long verSyncWidth; /* Vertical sync width in lines */
+ unsigned long verBackPorch; /* Vertical back porch in lines */
+ unsigned long verDispWidth; /* Vertical display width in lines */
+ /* Hardware cursor registers */
+ unsigned char cursorCtrl;
+ unsigned char xHi,xLo,yHi,yLo;
+ unsigned char colour1[3]; /* RGB values for cursor planes */
+ unsigned char colour2[3];
+ unsigned char colour3[3];
+ unsigned char plane0[NV_PDAC_CURSOR_PLANE_SIZE];
+ unsigned char plane1[NV_PDAC_CURSOR_PLANE_SIZE];
+ unsigned char palette[PALETTE_SIZE][3];
+}NV1Registers;
+
+/*
+ * Driver data structures.
+ */
+typedef struct {
+/* vgaHWRec std; good old IBM VGA */
+ int vgaValid; /* is the above state valid?? */
+ NVChipType type; /* What the union holds */
+
+ union {
+ NV1Registers nv1;
+ RIVA_HW_STATE RivaState;
+ }regs;
+} vgaNVRec, *vgaNVPtr;
+
+#endif
diff --git a/src/riva_const.h b/src/riva_const.h
index 31dc8d5..c3b9794 100644
--- a/src/riva_const.h
+++ b/src/riva_const.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_const.h,v 1.1 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_const.h $ */
#ifndef __RIVA_CONST_H__
#define __RIVA_CONST_H__
diff --git a/src/riva_cursor.c b/src/riva_cursor.c
index 7dcaed9..835a4d7 100644
--- a/src/riva_cursor.c
+++ b/src/riva_cursor.c
@@ -23,7 +23,7 @@
/* Rewritten with reference from mga driver and 3.3.4 NVIDIA driver by
Jarno Paananen <jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_cursor.c,v 1.1 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_cursor.c $ */
#include "riva_include.h"
diff --git a/src/riva_dac.c b/src/riva_dac.c
index 348e526..7118ae1 100644
--- a/src/riva_dac.c
+++ b/src/riva_dac.c
@@ -23,7 +23,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
<jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_dac.c,v 1.2 2003/09/16 00:17:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_dac.c,v 1.1 2003/07/31 20:24:29 mvojkovi Exp $ */
#include "riva_include.h"
diff --git a/src/riva_dga.c b/src/riva_dga.c
index cbe4224..6e5afd8 100644
--- a/src/riva_dga.c
+++ b/src/riva_dga.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_dga.c,v 1.1 2003/07/31 20:24:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/riva/riva_dga.c $ */
#include "riva_local.h"
#include "riva_include.h"
diff --git a/src/riva_driver.c b/src/riva_driver.c
index 1b4ca07..daf7b9c 100644
--- a/src/riva_driver.c
+++ b/src/riva_driver.c
@@ -1334,6 +1334,9 @@ RivaScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
case 16: refreshArea = RivaRefreshArea16; break;
case 32: refreshArea = RivaRefreshArea32; break;
}
+ xf86DisableRandR();
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Driver rotation enabled, RandR disabled\n");
}
ShadowFBInit(pScreen, refreshArea);
diff --git a/src/riva_hw.c b/src/riva_hw.c
index bf6885d..fbd9858 100644
--- a/src/riva_hw.c
+++ b/src/riva_hw.c
@@ -36,7 +36,7 @@
|* those rights set forth herein. *|
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_hw.c,v 1.52 2003/11/03 05:11:26 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_hw.c,v 1.51tsi Exp $ */
#include "riva_local.h"
#include "compiler.h"
diff --git a/src/riva_hw.h b/src/riva_hw.h
index ec2b90b..0680d7d 100644
--- a/src/riva_hw.h
+++ b/src/riva_hw.h
@@ -36,7 +36,7 @@
|* those rights set forth herein. *|
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_hw.h,v 1.26 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_hw.h,v 1.25 2003/05/04 01:20:52 mvojkovi Exp $ */
#ifndef __RIVA_HW_H__
#define __RIVA_HW_H__
diff --git a/src/riva_include.h b/src/riva_include.h
index e64d78f..d5994d2 100644
--- a/src/riva_include.h
+++ b/src/riva_include.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_include.h,v 1.1 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_include.h $ */
#ifndef __RIVA_INCLUDE_H__
#define __RIVA_INCLUDE_H__
diff --git a/src/riva_local.h b/src/riva_local.h
index efe0c7e..b060acc 100644
--- a/src/riva_local.h
+++ b/src/riva_local.h
@@ -36,7 +36,7 @@
|* those rights set forth herein. *|
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_local.h,v 1.2 2003/11/03 05:11:26 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_local.h,v 1.1tsi Exp $ */
#ifndef __RIVA_LOCAL_H__
#define __RIVA_LOCAL_H__
diff --git a/src/riva_proto.h b/src/riva_proto.h
index 75f5d01..bff07a2 100644
--- a/src/riva_proto.h
+++ b/src/riva_proto.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_proto.h,v 1.1 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_proto.h $ */
#ifndef __RIVA_PROTO_H__
#define __RIVA_PROTO_H__
diff --git a/src/riva_setup.c b/src/riva_setup.c
index 6a0d32e..7e8b874 100644
--- a/src/riva_setup.c
+++ b/src/riva_setup.c
@@ -23,7 +23,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
<jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_setup.c,v 1.1 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_setup.c $ */
#include "riva_include.h"
diff --git a/src/riva_shadow.c b/src/riva_shadow.c
index 90f1f12..a858f7c 100644
--- a/src/riva_shadow.c
+++ b/src/riva_shadow.c
@@ -2,7 +2,7 @@
Copyright (c) 1999, The XFree86 Project Inc.
Written by Mark Vojkovich <markv@valinux.com>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_shadow.c,v 1.1 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_shadow.c $ */
#include "riva_local.h"
#include "riva_include.h"
diff --git a/src/riva_tbl.h b/src/riva_tbl.h
index bb2a329..4156c80 100644
--- a/src/riva_tbl.h
+++ b/src/riva_tbl.h
@@ -36,7 +36,7 @@
|* those rights set forth herein. *|
|* *|
\***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_tbl.h,v 1.10 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_tbl.h,v 1.9 2002/01/30 01:35:03 mvojkovi Exp $ */
/*
diff --git a/src/riva_type.h b/src/riva_type.h
index 7913128..204c758 100644
--- a/src/riva_type.h
+++ b/src/riva_type.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_type.h,v 1.1 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_type.h $ */
#ifndef __Riva_STRUCT_H__
#define __Riva_STRUCT_H__
diff --git a/src/riva_xaa.c b/src/riva_xaa.c
index 240e9ec..a7d30a0 100644
--- a/src/riva_xaa.c
+++ b/src/riva_xaa.c
@@ -40,7 +40,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by
Jarno Paananen <jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_xaa.c,v 1.1 2003/07/31 20:24:31 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_xaa.c $ */
#include "riva_include.h"
#include "xaalocal.h"