Mercurial > mplayer.hg
annotate vidix/nvidia_vid.c @ 31523:7ab5787e625c
configure: Fix detection of SDL backend for vo_gl on OS X
SDL overrides main, and provides a prototype for SDL_main
which uses argc and argv. Since the prototype didn't match
the main() in the test program, it failed to compile, making
the test fail when it should have worked.
author | astrange |
---|---|
date | Wed, 30 Jun 2010 09:27:03 +0000 |
parents | 32725ca88fed |
children | 1495455e6d22 |
rev | line source |
---|---|
22850 | 1 /* |
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
2 * VIDIX driver for nVidia chipsets. |
26718
051b2632f121
consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents:
26203
diff
changeset
|
3 * |
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
4 * Copyright (C) 2003-2004 Sascha Sommer |
26718
051b2632f121
consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents:
26203
diff
changeset
|
5 * This file is based on sources from RIVATV (rivatv.sf.net) |
051b2632f121
consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents:
26203
diff
changeset
|
6 * Multi buffer support and TNT2 fixes by Dmitry Baryshkov. |
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
7 * |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
8 * This file is part of MPlayer. |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
9 * |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
10 * MPlayer is free software; you can redistribute it and/or modify |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
11 * it under the terms of the GNU General Public License as published by |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
12 * the Free Software Foundation; either version 2 of the License, or |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
13 * (at your option) any later version. |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
14 * |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
15 * MPlayer is distributed in the hope that it will be useful, |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
18 * GNU General Public License for more details. |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
19 * |
26719 | 20 * You should have received a copy of the GNU General Public License along |
21 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22955
diff
changeset
|
23 */ |
22850 | 24 |
25 #include <errno.h> | |
26 #include <stdio.h> | |
27 #include <stdlib.h> | |
28 #include <string.h> | |
29 #include <math.h> | |
30 #include <inttypes.h> | |
31 #include <unistd.h> | |
32 | |
33 | |
26203 | 34 #include "config.h" |
22850 | 35 #include "vidix.h" |
36 #include "fourcc.h" | |
22901 | 37 #include "dha.h" |
22900
a9e111b88c4a
merged libdha and libvidix, moved all files from libdha to vidix directory
ben
parents:
22880
diff
changeset
|
38 #include "pci_ids.h" |
a9e111b88c4a
merged libdha and libvidix, moved all files from libdha to vidix directory
ben
parents:
22880
diff
changeset
|
39 #include "pci_names.h" |
22905 | 40 #include "libavutil/common.h" |
41 #include "mpbswap.h" | |
22850 | 42 |
43 | |
23055 | 44 static pciinfo_t pci_info; |
22850 | 45 |
46 | |
47 #define MAX_FRAMES 3 | |
48 #define NV04_BES_SIZE 1024*2000*4 | |
49 | |
50 | |
51 static vidix_capability_t nvidia_cap = { | |
52 "NVIDIA RIVA OVERLAY DRIVER", | |
53 "Sascha Sommer <saschasommer@freenet.de>", | |
54 TYPE_OUTPUT, | |
55 { 0, 0, 0, 0 }, | |
56 2046, | |
57 2046, | |
58 4, | |
59 4, | |
60 -1, | |
61 FLAG_UPSCALER|FLAG_DOWNSCALER, | |
62 VENDOR_NVIDIA2, | |
63 -1, | |
64 { 0, 0, 0, 0 } | |
65 }; | |
66 | |
67 #define NV_ARCH_03 0x03 | |
68 #define NV_ARCH_04 0x04 | |
69 #define NV_ARCH_10 0x10 | |
70 #define NV_ARCH_20 0x20 | |
71 #define NV_ARCH_30 0x30 | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
72 #define NV_ARCH_40 0x40 |
22850 | 73 |
74 // since no useful information whatsoever is passed | |
75 // to the equalizer functions we need this | |
76 static struct { | |
77 uint32_t lum; // luminance (brightness + contrast) | |
78 uint32_t chrom; // chrominance (saturation + hue) | |
79 uint8_t red_off; // for NV03/NV04 | |
80 uint8_t green_off; | |
81 uint8_t blue_off; | |
82 vidix_video_eq_t vals; | |
83 } eq; | |
84 | |
85 struct nvidia_cards { | |
86 unsigned short chip_id; | |
87 unsigned short arch; | |
88 }; | |
89 | |
90 | |
91 static struct nvidia_cards nvidia_card_ids[] = { | |
92 /*NV03*/ | |
93 {DEVICE_NVIDIA2_RIVA128, NV_ARCH_03}, | |
94 {DEVICE_NVIDIA2_RIVA128ZX,NV_ARCH_03}, | |
95 /*NV04*/ | |
96 {DEVICE_NVIDIA_NV4_RIVA_TNT,NV_ARCH_04}, | |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
97 {DEVICE_NVIDIA_NV5_RIVA_TNT2_TNT2,NV_ARCH_04}, |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
98 {DEVICE_NVIDIA_NV5_RIVA_TNT2,NV_ARCH_04}, |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
99 {DEVICE_NVIDIA_NV5_RIVA_TNT22,NV_ARCH_04}, |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
100 {DEVICE_NVIDIA_NV5_RIVA_TNT23,NV_ARCH_04}, |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
101 {DEVICE_NVIDIA_NV6_VANTA_VANTA_LT,NV_ARCH_04}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
102 {DEVICE_NVIDIA_NV5M64_RIVA_TNT2,NV_ARCH_04}, |
22850 | 103 {DEVICE_NVIDIA_NV6_VANTA,NV_ARCH_04}, |
104 {DEVICE_NVIDIA_NV6_VANTA2,NV_ARCH_04}, | |
105 {DEVICE_NVIDIA2_TNT,NV_ARCH_04}, | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
106 {DEVICE_NVIDIA2_TNT2,NV_ARCH_04}, |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
107 {DEVICE_NVIDIA2_VTNT2,NV_ARCH_04}, |
22850 | 108 {DEVICE_NVIDIA2_UTNT2 ,NV_ARCH_04}, |
109 {DEVICE_NVIDIA2_ITNT2,NV_ARCH_04}, | |
22954
b9bd992d5d4c
this TnT2 chipset is actually NV4/5 arch but for sure not NV30
ben
parents:
22905
diff
changeset
|
110 {DEVICE_NVIDIA_NV5_ALADDIN_TNT2,NV_ARCH_04}, |
22850 | 111 /*NV10*/ |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
112 {DEVICE_NVIDIA_NV18_GEFORCE_PCX,NV_ARCH_10}, |
22850 | 113 {DEVICE_NVIDIA_NV10_GEFORCE_256,NV_ARCH_10}, |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
114 {DEVICE_NVIDIA_NV10DDR_GEFORCE_256,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
115 {DEVICE_NVIDIA_NV10GL_QUADRO,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
116 {DEVICE_NVIDIA_NV11_GEFORCE2_MX_MX,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
117 {DEVICE_NVIDIA_NV11DDR_GEFORCE2_MX,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
118 {DEVICE_NVIDIA_NV11_GEFORCE2_GO,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
119 {DEVICE_NVIDIA_NV11GL_QUADRO2_MXR_EX_GO,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
120 {DEVICE_NVIDIA_NV15_GEFORCE2_GTS_PRO,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
121 {DEVICE_NVIDIA_NV15DDR_GEFORCE2_TI,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
122 {DEVICE_NVIDIA_NV15BR_GEFORCE2_ULTRA,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
123 {DEVICE_NVIDIA_NV15GL_QUADRO2_PRO,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
124 {DEVICE_NVIDIA_NV17_GEFORCE4_MX,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
125 {DEVICE_NVIDIA_NV17_GEFORCE4_MX2,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
126 {DEVICE_NVIDIA_NV17_GEFORCE4_MX3,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
127 {DEVICE_NVIDIA_NV17_GEFORCE4_MX4,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
128 {DEVICE_NVIDIA_NV17_GEFORCE4_440,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
129 {DEVICE_NVIDIA_NV17_GEFORCE4_420,NV_ARCH_10}, |
22850 | 130 {DEVICE_NVIDIA_NV17_GEFORCE4_4202,NV_ARCH_10}, |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
131 {DEVICE_NVIDIA_NV17_GEFORCE4_460,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
132 {DEVICE_NVIDIA_NV17GL_QUADRO4_550,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
133 {DEVICE_NVIDIA_NV17_GEFORCE4_4203,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
134 {DEVICE_NVIDIA_NV17GL_QUADRO4_200_400,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
135 {DEVICE_NVIDIA_NV17GL_QUADRO4_5502,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
136 {DEVICE_NVIDIA_NV17GL_QUADRO4_550,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
137 {DEVICE_NVIDIA_NV17_GEFORCE4_410,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
138 {DEVICE_NVIDIA_NV18_GEFORCE4_MX,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
139 {DEVICE_NVIDIA_NV18_GEFORCE4_MX2,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
140 {DEVICE_NVIDIA_NV18_GEFORCE4_MX3,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
141 {DEVICE_NVIDIA_NV18_GEFORCE4_MX4,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
142 {DEVICE_NVIDIA_NV18_GEFORCE4_MX5,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
143 {DEVICE_NVIDIA_NV18M_GEFORCE4_448,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
144 {DEVICE_NVIDIA_NV18M_GEFORCE4_488,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
145 {DEVICE_NVIDIA_NV18GL_QUADRO_FX,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
146 {DEVICE_NVIDIA_NV18GL_QUADRO4_580,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
147 {DEVICE_NVIDIA_NV18GL_QUADRO4_NVS,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
148 {DEVICE_NVIDIA_NV18GL_QUADRO4_380,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
149 {DEVICE_NVIDIA_NV18M_GEFORCE4_4482,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
150 {DEVICE_NVIDIA_NVCRUSH11_GEFORCE2_MX,NV_ARCH_10}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
151 {DEVICE_NVIDIA_NV18_GEFORCE4_MX5,NV_ARCH_10}, |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
152 {DEVICE_NVIDIA_NV18_GEFORCE_PCX,NV_ARCH_10}, |
22850 | 153 /*NV20*/ |
154 {DEVICE_NVIDIA_NV20_GEFORCE3,NV_ARCH_20}, | |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
155 {DEVICE_NVIDIA_NV20_GEFORCE3_TI,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
156 {DEVICE_NVIDIA_NV20_GEFORCE3_TI2,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
157 {DEVICE_NVIDIA_NV20DCC_QUADRO_DCC,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
158 {DEVICE_NVIDIA_NV25_GEFORCE4_TI,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
159 {DEVICE_NVIDIA_NV25_GEFORCE4_TI2,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
160 {DEVICE_NVIDIA_NV25_GEFORCE4_TI3,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
161 {DEVICE_NVIDIA_NV25_GEFORCE4_TI4,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
162 {DEVICE_NVIDIA_NV25GL_QUADRO4_900,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
163 {DEVICE_NVIDIA_NV25GL_QUADRO4_750,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
164 {DEVICE_NVIDIA_NV25GL_QUADRO4_700,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
165 {DEVICE_NVIDIA_NV28_GEFORCE4_TI,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
166 {DEVICE_NVIDIA_NV28_GEFORCE4_TI2,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
167 {DEVICE_NVIDIA_NV28_GEFORCE4_TI3,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
168 {DEVICE_NVIDIA_NV28_GEFORCE4_TI4,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
169 {DEVICE_NVIDIA_NV28GL_QUADRO4_980,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
170 {DEVICE_NVIDIA_NV28GL_QUADRO4_780,NV_ARCH_20}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
171 {DEVICE_NVIDIA_NV28GLM_QUADRO4_700,NV_ARCH_20}, |
22850 | 172 /*NV30*/ |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
173 {DEVICE_NVIDIA_NV30_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
174 {DEVICE_NVIDIA_NV30_GEFORCE_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
175 {DEVICE_NVIDIA_NV30_GEFORCE_FX3,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
176 {DEVICE_NVIDIA_NV30GL_QUADRO_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
177 {DEVICE_NVIDIA_NV30GL_QUADRO_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
178 {DEVICE_NVIDIA_NV31_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
179 {DEVICE_NVIDIA_NV31_GEFORCE_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
180 {DEVICE_NVIDIA_NV31,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
181 {DEVICE_NVIDIA_NV31_GEFORCE_FX3,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
182 {DEVICE_NVIDIA_NV31M,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
183 {DEVICE_NVIDIA_NV31M_PRO,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
184 {DEVICE_NVIDIA_NV31M_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
185 {DEVICE_NVIDIA_NV31M_GEFORCE_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
186 {DEVICE_NVIDIA_NVIDIA_QUADRO_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
187 {DEVICE_NVIDIA_NV31GLM,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
188 {DEVICE_NVIDIA_NV31GLM_PRO,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
189 {DEVICE_NVIDIA_NV31GLM_PRO2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
190 {DEVICE_NVIDIA_NV34_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
191 {DEVICE_NVIDIA_NV34_GEFORCE_FX2,NV_ARCH_30}, |
22850 | 192 {DEVICE_NVIDIA_NV34_GEFORCE_FX3,NV_ARCH_30}, |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
193 {DEVICE_NVIDIA_NV34_GEFORCE_FX4,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
194 {DEVICE_NVIDIA_NV34M_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
195 {DEVICE_NVIDIA_NV34M_GEFORCE_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
196 {DEVICE_NVIDIA_NV34_GEFORCE_FX5,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
197 {DEVICE_NVIDIA_NV34_GEFORCE_FX6,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
198 {DEVICE_NVIDIA_NV34M_GEFORCE_FX3,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
199 {DEVICE_NVIDIA_NV34M_GEFORCE_FX4,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
200 {DEVICE_NVIDIA_NV34GL_QUADRO_NVS,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
201 {DEVICE_NVIDIA_NV34GL_QUADRO_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
202 {DEVICE_NVIDIA_NV34GLM_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
203 {DEVICE_NVIDIA_NV34_GEFORCE_FX7,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
204 {DEVICE_NVIDIA_NV34GL,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
205 {DEVICE_NVIDIA_NV35_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
206 {DEVICE_NVIDIA_NV35_GEFORCE_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
207 {DEVICE_NVIDIA_NV35_GEFORCE_FX3,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
208 {DEVICE_NVIDIA_NV38_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
209 {DEVICE_NVIDIA_NV35_GEFORCE_FX4,NV_ARCH_30}, |
22850 | 210 {DEVICE_NVIDIA_NV35GL_QUADRO_FX,NV_ARCH_30}, |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
211 {DEVICE_NVIDIA_NV35GL_QUADRO_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
212 {DEVICE_NVIDIA_NV35_GEFORCE_PCX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
213 {DEVICE_NVIDIA_NV36_1_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
214 {DEVICE_NVIDIA_NV36_2_GEFORCE_FX,NV_ARCH_30}, |
22850 | 215 {DEVICE_NVIDIA_NV36_GEFORCE_FX,NV_ARCH_30}, |
22874
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
216 {DEVICE_NVIDIA_NV36_4_GEFORCE_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
217 {DEVICE_NVIDIA_NV36_5,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
218 {DEVICE_NVIDIA_NV36_GEFORCE_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
219 {DEVICE_NVIDIA_NV36_GEFORCE_FX3,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
220 {DEVICE_NVIDIA_NV36_GEFORCE_PCX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
221 {DEVICE_NVIDIA_NV36M_PRO,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
222 {DEVICE_NVIDIA_NV36MAP,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
223 {DEVICE_NVIDIA_NV36_QUADRO_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
224 {DEVICE_NVIDIA_NV36GL_QUADRO_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
225 {DEVICE_NVIDIA_NV36GL,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
226 {DEVICE_NVIDIA_NV36_GEFORCE_PCX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
227 {DEVICE_NVIDIA_NV35_GEFORCE_PCX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
228 {DEVICE_NVIDIA_NV37GL_QUADRO_FX,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
229 {DEVICE_NVIDIA_NV37GL_QUADRO_FX2,NV_ARCH_30}, |
9a8f6901e888
updated pci ids list, fixed vidix drivers compilation and added nearly exhaustive pci ids for nvidia driver
ben
parents:
22858
diff
changeset
|
230 {DEVICE_NVIDIA_NV38GL_QUADRO_FX,NV_ARCH_30}, |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
231 /* NV40: GeForce 6x00 to 7x00 */ |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
232 {DEVICE_NVIDIA_NV40_GEFORCE_6800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
233 {DEVICE_NVIDIA_NV40_GEFORCE_68002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
234 {DEVICE_NVIDIA_NV40_2_GEFORCE_6800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
235 {DEVICE_NVIDIA_NV40_3,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
236 {DEVICE_NVIDIA_NV40_GEFORCE_68003,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
237 {DEVICE_NVIDIA_NV40_GEFORCE_68004,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
238 {DEVICE_NVIDIA_NV40_GEFORCE_68005,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
239 {DEVICE_NVIDIA_NV40_GEFORCE_68006,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
240 {DEVICE_NVIDIA_NV40_GEFORCE_68007,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
241 {DEVICE_NVIDIA_NV40_GEFORCE_68008,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
242 {DEVICE_NVIDIA_NV40_GEFORCE_68009,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
243 {DEVICE_NVIDIA_NV40_GEFORCE_680010,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
244 {DEVICE_NVIDIA_NV40_GEFORCE_680011,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
245 {DEVICE_NVIDIA_NV40_GEFORCE_680012,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
246 {DEVICE_NVIDIA_NV40_GEFORCE_68008,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
247 {DEVICE_NVIDIA_NV40GL,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
248 {DEVICE_NVIDIA_NV40GL_QUADRO_FX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
249 {DEVICE_NVIDIA_NV40GL_QUADRO_FX2,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
250 {DEVICE_NVIDIA_NV41_GEFORCE_6800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
251 {DEVICE_NVIDIA_NV41_1_GEFORCE_6800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
252 {DEVICE_NVIDIA_NV41_2_GEFORCE_6800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
253 {DEVICE_NVIDIA_NV41_8_GEFORCE_GO,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
254 {DEVICE_NVIDIA_NV41_9_GEFORCE_GO,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
255 {DEVICE_NVIDIA_NV41_QUADRO_FX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
256 {DEVICE_NVIDIA_NV41_QUADRO_FX2,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
257 {DEVICE_NVIDIA_NV41GL_QUADRO_FX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
258 {DEVICE_NVIDIA_NV40_GEFORCE_6800_GEFORCE,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
259 {DEVICE_NVIDIA_NV43_GEFORCE_6600_GEFORCE,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
260 {DEVICE_NVIDIA_NV43_GEFORCE_6600_GEFORCE2,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
261 {DEVICE_NVIDIA_NV43_GEFORCE_6200,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
262 {DEVICE_NVIDIA_NV43_GEFORCE_62002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
263 {DEVICE_NVIDIA_NV43_GEFORCE_6600,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
264 {DEVICE_NVIDIA_NV43_GEFORCE_66002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
265 {DEVICE_NVIDIA_NV43_GEFORCE_66003,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
266 {DEVICE_NVIDIA_NV43_GEFORCE_66004,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
267 {DEVICE_NVIDIA_NV43_GEFORCE_66005,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
268 {DEVICE_NVIDIA_NV43_GEFORCE_GO,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
269 {DEVICE_NVIDIA_NV43_GEFORCE_GO2,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
270 {DEVICE_NVIDIA_NV43_GEFORCE_GO3,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
271 {DEVICE_NVIDIA_NV43_GEFORCE_GO4,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
272 {DEVICE_NVIDIA_NV43_GEFORCE_GO5,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
273 {DEVICE_NVIDIA_NV43_GEFORCE_GO6,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
274 {DEVICE_NVIDIA_NV43_GEFORCE_6610,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
275 {DEVICE_NVIDIA_NV43GL_QUADRO_FX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
276 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
277 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE2,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
278 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE3,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
279 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE4,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
280 {DEVICE_NVIDIA_C51G_GEFORCE_6100,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
281 {DEVICE_NVIDIA_C51PV_GEFORCE_6150,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
282 {DEVICE_NVIDIA_NV44_GEFORCE_6200,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
283 {DEVICE_NVIDIA_NV44_GEFORCE_62002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
284 {DEVICE_NVIDIA_NV44_GEFORCE_62003,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
285 {DEVICE_NVIDIA_NV44_GEFORCE_GO,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
286 {DEVICE_NVIDIA_NV44_QUADRO_NVS,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
287 {DEVICE_NVIDIA_GEFORCE_GO_6200,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
288 {DEVICE_NVIDIA_NV44A_GEFORCE_6200,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
289 {DEVICE_NVIDIA_NV45GL_QUADRO_FX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
290 {DEVICE_NVIDIA_GEFORCE_GO_7200,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
291 {DEVICE_NVIDIA_QUADRO_NVS_110M,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
292 {DEVICE_NVIDIA_GEFORCE_GO_7400,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
293 {DEVICE_NVIDIA_QUADRO_NVS_110M2,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
294 {DEVICE_NVIDIA_QUADRO_FX_350,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
295 {DEVICE_NVIDIA_G70_GEFORCE_7300,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
296 {DEVICE_NVIDIA_GEFORCE_7300_GS,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
297 {DEVICE_NVIDIA_G70_GEFORCE_7600,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
298 {DEVICE_NVIDIA_G70_GEFORCE_76002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
299 {DEVICE_NVIDIA_GEFORCE_7600_GS,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
300 {DEVICE_NVIDIA_G70_GEFORCE_GO,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
301 {DEVICE_NVIDIA_QUADRO_FX_560,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
302 {DEVICE_NVIDIA_G70_GEFORCE_7800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
303 {DEVICE_NVIDIA_G70_GEFORCE_78002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
304 {DEVICE_NVIDIA_G70_GEFORCE_78003,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
305 {DEVICE_NVIDIA_G70_GEFORCE_78004,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
306 {DEVICE_NVIDIA_G70_GEFORCE_78005,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
307 {DEVICE_NVIDIA_GEFORCE_GO_7800,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
308 {DEVICE_NVIDIA_GEFORCE_7900_GTX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
309 {DEVICE_NVIDIA_GEFORCE_7900_GT,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
310 {DEVICE_NVIDIA_GEFORCE_7900_GS,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
311 {DEVICE_NVIDIA_GEFORCE_GO_7900,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
312 {DEVICE_NVIDIA_GEFORCE_GO_79002,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
313 {DEVICE_NVIDIA_GE_FORCE_GO,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
314 {DEVICE_NVIDIA_G70GL_QUADRO_FX4500,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
315 {DEVICE_NVIDIA_G71_QUADRO_FX,NV_ARCH_40}, |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
316 {DEVICE_NVIDIA_G71_QUADRO_FX2,NV_ARCH_40} |
22850 | 317 }; |
318 | |
319 | |
320 static int find_chip(unsigned chip_id){ | |
321 unsigned i; | |
322 for(i = 0;i < sizeof(nvidia_card_ids)/sizeof(struct nvidia_cards);i++) | |
323 { | |
324 if(chip_id == nvidia_card_ids[i].chip_id)return i; | |
325 } | |
326 return -1; | |
327 } | |
328 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
329 static int nv_probe(int verbose, int force){ |
22850 | 330 pciinfo_t lst[MAX_PCI_DEVICES]; |
331 unsigned i,num_pci; | |
332 int err; | |
333 | |
334 if (force) | |
335 printf("[nvidia_vid]: warning: forcing not supported yet!\n"); | |
336 err = pci_scan(lst,&num_pci); | |
337 if(err){ | |
338 printf("[nvidia_vid] Error occurred during pci scan: %s\n",strerror(err)); | |
339 return err; | |
340 } | |
341 else { | |
342 err = ENXIO; | |
343 for(i=0; i < num_pci; i++){ | |
344 if(lst[i].vendor == VENDOR_NVIDIA2 || lst[i].vendor == VENDOR_NVIDIA){ | |
345 int idx; | |
346 const char *dname; | |
347 idx = find_chip(lst[i].device); | |
348 if(idx == -1) | |
349 continue; | |
350 dname = pci_device_name(lst[i].vendor, lst[i].device); | |
351 dname = dname ? dname : "Unknown chip"; | |
352 printf("[nvidia_vid] Found chip: %s\n", dname); | |
353 if ((lst[i].command & PCI_COMMAND_IO) == 0){ | |
354 printf("[nvidia_vid] Device is disabled, ignoring\n"); | |
355 continue; | |
356 } | |
357 nvidia_cap.device_id = lst[i].device; | |
358 err = 0; | |
359 memcpy(&pci_info, &lst[i], sizeof(pciinfo_t)); | |
360 break; | |
361 } | |
362 } | |
363 } | |
364 if(err && verbose) printf("[nvidia_vid] Can't find chip\n"); | |
365 return err; | |
366 } | |
367 | |
368 | |
369 | |
370 | |
371 /* | |
372 * PCI-Memory IO access macros. | |
373 */ | |
374 | |
27757
b5a46071062a
Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.
diego
parents:
27727
diff
changeset
|
375 #define MEM_BARRIER() __asm__ volatile ("" : : : "memory") |
22850 | 376 |
377 #undef VID_WR08 | |
378 #define VID_WR08(p,i,val) ({ MEM_BARRIER(); ((uint8_t *)(p))[(i)]=(val); }) | |
379 #undef VID_RD08 | |
380 #define VID_RD08(p,i) ({ MEM_BARRIER(); ((uint8_t *)(p))[(i)]; }) | |
381 | |
382 #undef VID_WR32 | |
383 #define VID_WR32(p,i,val) ({ MEM_BARRIER(); ((uint32_t *)(p))[(i)/4]=val; }) | |
384 #undef VID_RD32 | |
385 #define VID_RD32(p,i) ({ MEM_BARRIER(); ((uint32_t *)(p))[(i)/4]; }) | |
386 | |
387 #define VID_AND32(p,i,val) VID_WR32(p,i,VID_RD32(p,i)&(val)) | |
388 #define VID_OR32(p,i,val) VID_WR32(p,i,VID_RD32(p,i)|(val)) | |
389 #define VID_XOR32(p,i,val) VID_WR32(p,i,VID_RD32(p,i)^(val)) | |
390 | |
391 | |
392 | |
393 | |
394 | |
395 | |
396 struct rivatv_chip { | |
397 volatile uint32_t *PMC; /* general control */ | |
398 volatile uint32_t *PME; /* multimedia port */ | |
399 volatile uint32_t *PFB; /* framebuffer control */ | |
400 volatile uint32_t *PVIDEO; /* overlay control */ | |
401 volatile uint8_t *PCIO; /* SVGA (CRTC, ATTR) registers */ | |
402 volatile uint8_t *PVIO; /* SVGA (MISC, GRAPH, SEQ) registers */ | |
403 volatile uint32_t *PRAMIN; /* instance memory */ | |
404 volatile uint32_t *PRAMHT; /* hash table */ | |
405 volatile uint32_t *PRAMFC; /* fifo context table */ | |
406 volatile uint32_t *PRAMRO; /* fifo runout table */ | |
407 volatile uint32_t *PFIFO; /* fifo control region */ | |
408 volatile uint32_t *FIFO; /* fifo channels (USER) */ | |
409 volatile uint32_t *PGRAPH; /* graphics engine */ | |
410 | |
411 unsigned long fbsize; /* framebuffer size */ | |
412 int arch; /* compatible NV_ARCH_XX define */ | |
413 int realarch; /* real architecture */ | |
414 void (* lock) (struct rivatv_chip *, int); | |
415 }; | |
416 typedef struct rivatv_chip rivatv_chip; | |
417 | |
418 | |
419 struct rivatv_info { | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
420 unsigned int use_colorkey; |
22850 | 421 unsigned int colorkey; /* saved xv colorkey*/ |
422 unsigned int vidixcolorkey; /*currently used colorkey*/ | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
423 unsigned int depth; |
22850 | 424 unsigned int format; |
425 unsigned int pitch; | |
426 unsigned int width,height; | |
427 unsigned int d_width,d_height; /*scaled width && height*/ | |
428 unsigned int wx,wy; /*window x && y*/ | |
429 unsigned int screen_x; /*screen width*/ | |
430 unsigned int screen_y; /*screen height*/ | |
431 unsigned long buffer_size; /* size of the image buffer */ | |
432 struct rivatv_chip chip; /* NV architecture structure */ | |
433 void* video_base; /* virtual address of control region */ | |
434 void* control_base; /* virtual address of fb region */ | |
435 void* picture_base; /* direct pointer to video picture */ | |
436 unsigned long picture_offset; /* offset of video picture in frame buffer */ | |
437 // struct rivatv_dma dma; /* DMA structure */ | |
438 unsigned int cur_frame; | |
439 unsigned int num_frames; /* number of buffers */ | |
440 int bps; /* bytes per line */ | |
441 }; | |
442 typedef struct rivatv_info rivatv_info; | |
443 | |
30549
11106186d92c
VIDIX: Mark some functions not used outside their files as static.
diego
parents:
29263
diff
changeset
|
444 static uint8_t nvReadVGA(struct rivatv_chip *chip, int index) |
11106186d92c
VIDIX: Mark some functions not used outside their files as static.
diego
parents:
29263
diff
changeset
|
445 { |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
446 VID_WR08 (chip->PCIO, 0x3D4, index); |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
447 return VID_RD08 (chip->PCIO, 0x3D5); |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
448 } |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
449 |
30549
11106186d92c
VIDIX: Mark some functions not used outside their files as static.
diego
parents:
29263
diff
changeset
|
450 static void nvWriteVGA(struct rivatv_chip *chip, int index, int data) |
11106186d92c
VIDIX: Mark some functions not used outside their files as static.
diego
parents:
29263
diff
changeset
|
451 { |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
452 VID_WR08 (chip->PCIO, 0x3D4, index); |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
453 VID_WR08 (chip->PCIO, 0x3D5, data); |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
454 } |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
455 |
22850 | 456 //framebuffer size funcs |
457 static unsigned long rivatv_fbsize_nv03 (struct rivatv_chip *chip){ | |
458 if (VID_RD32 (chip->PFB, 0) & 0x00000020) { | |
459 if (((VID_RD32 (chip->PMC, 0) & 0xF0) == 0x20) | |
460 && ((VID_RD32 (chip->PMC, 0) & 0x0F) >= 0x02)) { | |
461 /* SDRAM 128 ZX. */ | |
26753
502f04b67653
cosmetics: Remove useless parentheses from return statements.
diego
parents:
26719
diff
changeset
|
462 return (1 << (VID_RD32 (chip->PFB, 0) & 0x03)) * 1024 * 1024; |
22850 | 463 } |
464 else { | |
465 return 1024 * 1024 * 8; | |
466 } | |
467 } | |
468 else { | |
469 /* SGRAM 128. */ | |
470 switch (VID_RD32(chip->PFB, 0) & 0x00000003) { | |
471 case 0: | |
472 return 1024 * 1024 * 8; | |
473 break; | |
474 case 2: | |
475 return 1024 * 1024 * 4; | |
476 break; | |
477 default: | |
478 return 1024 * 1024 * 2; | |
479 break; | |
480 } | |
481 } | |
482 } | |
483 static unsigned long rivatv_fbsize_nv04 (struct rivatv_chip *chip){ | |
484 if (VID_RD32 (chip->PFB, 0) & 0x00000100) { | |
485 return ((VID_RD32 (chip->PFB, 0) >> 12) & 0x0F) * 1024 * 1024 * 2 | |
486 + 1024 * 1024 * 2; | |
487 } else { | |
488 switch (VID_RD32 (chip->PFB, 0) & 0x00000003) { | |
489 case 0: | |
490 return 1024 * 1024 * 32; | |
491 break; | |
492 case 1: | |
493 return 1024 * 1024 * 4; | |
494 break; | |
495 case 2: | |
496 return 1024 * 1024 * 8; | |
497 break; | |
498 case 3: | |
499 default: | |
500 return 1024 * 1024 * 16; | |
501 break; | |
502 } | |
503 } | |
504 } | |
505 | |
506 static unsigned long rivatv_fbsize_nv10 (struct rivatv_chip *chip){ | |
507 return VID_RD32 (chip->PFB, 0x20C) & 0xFFF00000; | |
508 } | |
509 | |
510 //lock funcs | |
511 static void rivatv_lock_nv03 (struct rivatv_chip *chip, int LockUnlock){ | |
512 VID_WR08 (chip->PVIO, 0x3C4, 0x06); | |
513 VID_WR08 (chip->PVIO, 0x3C5, LockUnlock ? 0x99 : 0x57); | |
514 } | |
515 | |
516 static void rivatv_lock_nv04 (struct rivatv_chip *chip, int LockUnlock){ | |
24565
a5255ffdcfaf
rivatv_lock_nv04 is actually an extended version of rivatv_lock_nv03 (patch by Guillaume LECERF <foxcore at gmail.com>)
faust3
parents:
24547
diff
changeset
|
517 rivatv_lock_nv03 (chip, LockUnlock); |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
518 nvWriteVGA (chip, 0x1F, LockUnlock ? 0x99 : 0x57); |
22850 | 519 } |
520 | |
521 | |
522 | |
523 | |
524 /* Enable PFB (Framebuffer), PVIDEO (Overlay unit) and PME (Mediaport) if neccessary. */ | |
525 static void rivatv_enable_PMEDIA (struct rivatv_info *info){ | |
526 uint32_t reg; | |
527 | |
528 /* switch off interrupts once for a while */ | |
529 // VID_WR32 (info->chip.PME, 0x200140, 0x00); | |
530 // VID_WR32 (info->chip.PMC, 0x000140, 0x00); | |
531 | |
532 reg = VID_RD32 (info->chip.PMC, 0x000200); | |
533 | |
534 /* NV3 (0x10100010): NV03_PMC_ENABLE_PMEDIA, NV03_PMC_ENABLE_PFB, NV03_PMC_ENABLE_PVIDEO */ | |
535 | |
536 if ((reg & 0x10100010) != 0x10100010) { | |
537 printf("PVIDEO and PFB disabled, enabling...\n"); | |
538 VID_OR32 (info->chip.PMC, 0x000200, 0x10100010); | |
539 } | |
540 | |
541 /* save the current colorkey */ | |
542 switch (info->chip.arch ) { | |
543 case NV_ARCH_10: | |
544 case NV_ARCH_20: | |
545 case NV_ARCH_30: | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
546 case NV_ARCH_40: |
22850 | 547 /* NV_PVIDEO_COLOR_KEY */ |
548 info->colorkey = VID_RD32 (info->chip.PVIDEO, 0xB00); | |
549 break; | |
550 case NV_ARCH_03: | |
551 case NV_ARCH_04: | |
552 /* NV_PVIDEO_KEY */ | |
553 info->colorkey = VID_RD32 (info->chip.PVIDEO, 0x240); | |
554 break; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
555 } |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
556 |
22850 | 557 |
558 /* re-enable interrupts again */ | |
559 // VID_WR32 (info->chip.PMC, 0x000140, 0x01); | |
560 // VID_WR32 (info->chip.PME, 0x200140, 0x01); | |
561 } | |
562 | |
563 /* Stop overlay video. */ | |
564 static void rivatv_overlay_stop (struct rivatv_info *info) { | |
565 switch (info->chip.arch ) { | |
566 case NV_ARCH_10: | |
567 case NV_ARCH_20: | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
568 case NV_ARCH_30: |
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
569 case NV_ARCH_40: |
22850 | 570 /* NV_PVIDEO_COLOR_KEY */ |
571 /* Xv-Extension-Hack: Restore previously saved value. */ | |
572 VID_WR32 (info->chip.PVIDEO, 0xB00, info->colorkey); | |
573 /* NV_PVIDEO_STOP */ | |
574 VID_OR32 (info->chip.PVIDEO, 0x704, 0x11); | |
575 /* NV_PVIDEO_BUFFER */ | |
576 VID_AND32 (info->chip.PVIDEO, 0x700, ~0x11); | |
577 /* NV_PVIDEO_INTR_EN_BUFFER */ | |
578 // VID_AND32 (info->chip.PVIDEO, 0x140, ~0x11); | |
579 break; | |
580 case NV_ARCH_03: | |
581 case NV_ARCH_04: | |
582 /* NV_PVIDEO_KEY */ | |
583 VID_WR32 (info->chip.PVIDEO, 0x240, info->colorkey); | |
584 /* NV_PVIDEO_OVERLAY_VIDEO_OFF */ | |
585 VID_AND32 (info->chip.PVIDEO, 0x244, ~0x01); | |
586 /* NV_PVIDEO_INTR_EN_0_NOTIFY */ | |
587 // VID_AND32 (info->chip.PVIDEO, 0x140, ~0x01); | |
588 /* NV_PVIDEO_OE_STATE */ | |
589 VID_WR32 (info->chip.PVIDEO, 0x224, 0); | |
590 /* NV_PVIDEO_SU_STATE */ | |
591 VID_WR32 (info->chip.PVIDEO, 0x228, 0); | |
592 /* NV_PVIDEO_RM_STATE */ | |
593 VID_WR32 (info->chip.PVIDEO, 0x22C, 0); | |
594 break; | |
595 } | |
596 } | |
597 | |
598 /* Get pan offset of the physical screen. */ | |
599 static uint32_t rivatv_overlay_pan (struct rivatv_info *info){ | |
600 uint32_t pan; | |
601 info->chip.lock (&info->chip, 0); | |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
602 pan = nvReadVGA (&info->chip, 0x0D); |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
603 pan |= nvReadVGA (&info->chip, 0x0C) << 8; |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
604 pan |= (nvReadVGA (&info->chip, 0x19) & 0x1F) << 16; |
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
605 pan |= (nvReadVGA (&info->chip, 0x2D) & 0x60) << 16; |
22850 | 606 return pan << 2; |
607 } | |
608 | |
609 /* Compute and set colorkey depending on the colour depth. */ | |
610 static void rivatv_overlay_colorkey (rivatv_info* info, unsigned int chromakey){ | |
611 uint32_t r, g, b, key = 0; | |
612 | |
613 r = (chromakey & 0x00FF0000) >> 16; | |
614 g = (chromakey & 0x0000FF00) >> 8; | |
615 b = chromakey & 0x000000FF; | |
616 switch (info->depth) { | |
617 case 15: | |
618 key = ((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3)); | |
27727
48c1ae64255b
Replace preprocessor check for WIN32 with checks for __MINGW32__ and __CYGWIN__.
diego
parents:
27079
diff
changeset
|
619 |
48c1ae64255b
Replace preprocessor check for WIN32 with checks for __MINGW32__ and __CYGWIN__.
diego
parents:
27079
diff
changeset
|
620 #if !defined(__MINGW32__) && !defined(__CYGWIN__) |
22850 | 621 key = key | 0x00008000; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
622 #endif |
22850 | 623 break; |
624 case 16: // XXX unchecked | |
625 key = ((r >> 3) << 11) | ((g >> 2) << 5) | ((b >> 3)); | |
27727
48c1ae64255b
Replace preprocessor check for WIN32 with checks for __MINGW32__ and __CYGWIN__.
diego
parents:
27079
diff
changeset
|
626 #if !defined(__MINGW32__) && !defined(__CYGWIN__) |
22850 | 627 key = key | 0x00008000; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
628 #endif |
22850 | 629 break; |
630 case 24: // XXX unchecked, maybe swap order of masking - FIXME Can the card be in 24 bit mode anyway? | |
631 key = (chromakey & 0x00FFFFFF) | 0x00800000; | |
632 break; | |
633 case 32: | |
634 key = chromakey; | |
27727
48c1ae64255b
Replace preprocessor check for WIN32 with checks for __MINGW32__ and __CYGWIN__.
diego
parents:
27079
diff
changeset
|
635 #if !defined(__MINGW32__) && !defined(__CYGWIN__) |
22850 | 636 key = key | 0x80000000; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
637 #endif |
22850 | 638 break; |
639 } | |
640 //printf("[nvidia_vid] depth=%d %08X \n", info->depth, chromakey); | |
641 switch (info->chip.arch) { | |
642 case NV_ARCH_10: | |
643 case NV_ARCH_20: | |
644 case NV_ARCH_30: | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
645 case NV_ARCH_40: |
22850 | 646 VID_WR32 (info->chip.PVIDEO, 0xB00, key); |
647 break; | |
648 case NV_ARCH_03: | |
649 case NV_ARCH_04: | |
650 VID_WR32 (info->chip.PVIDEO, 0x240, key); | |
651 break; | |
652 } | |
653 } | |
654 | |
655 static void nv_getscreenproperties(struct rivatv_info *info){ | |
656 uint32_t bpp=0,x; | |
657 info->chip.lock(&info->chip, 0); | |
658 /*get screen depth*/ | |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
659 bpp = nvReadVGA (&info->chip, 0x28) & 0x3; |
22850 | 660 if((bpp == 2) && (VID_RD32(info->chip.PVIDEO,0x600) & 0x00001000) == 0x0)info->depth=15; |
661 else info->depth = 0x04 << bpp; | |
662 /*get screen width*/ | |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
663 info->screen_x = nvReadVGA (&info->chip, 0x1); |
24516
610500ad2e6c
fix screen width and height calculation on nvidia vidix (patch by Guillaume Lecerf (fox at geexbox dot org)
ben
parents:
23922
diff
changeset
|
664 /* NV_PCRTC_HORIZ_EXTRA_DISPLAY_END_8 */ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
665 info->screen_x |= (nvReadVGA (&info->chip, 0x2D) & 0x02) << 7; |
24516
610500ad2e6c
fix screen width and height calculation on nvidia vidix (patch by Guillaume Lecerf (fox at geexbox dot org)
ben
parents:
23922
diff
changeset
|
666 info->screen_x = (info->screen_x + 1) << 3; |
22850 | 667 /*get screen height*/ |
668 /* get first 8 bits in VT_DISPLAY_END*/ | |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
669 info->screen_y = nvReadVGA (&info->chip, 0x12); |
22850 | 670 /* get 9th bit in CRTC_OVERFLOW*/ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
671 info->screen_y |= (nvReadVGA (&info->chip, 0x07) & 0x02) << 7; |
22850 | 672 /* and the 10th in CRTC_OVERFLOW*/ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
673 info->screen_y |= (nvReadVGA (&info->chip, 0x07) & 0x40) << 3; |
22850 | 674 ++info->screen_y; |
24537
104e3dafa1ad
fix resolution detection for NV03 and NV04 cards, patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24517
diff
changeset
|
675 |
104e3dafa1ad
fix resolution detection for NV03 and NV04 cards, patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24517
diff
changeset
|
676 if(info->chip.arch >= NV_ARCH_10){ |
24547
cb6afcd110a9
fix indentation after the last change (patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24537
diff
changeset
|
677 /* NV_PCRTC_EXTRA_VERT_DISPLAY_END_10 */ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
678 info->screen_y |= (nvReadVGA (&info->chip, 0x25) & 0x02) << 9; |
24547
cb6afcd110a9
fix indentation after the last change (patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24537
diff
changeset
|
679 /* NV_PCRTC_???_VERT_DISPLAY_END_11 */ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
680 info->screen_y |= (nvReadVGA (&info->chip, 0x41) & 0x04) << 9; |
24537
104e3dafa1ad
fix resolution detection for NV03 and NV04 cards, patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24517
diff
changeset
|
681 } |
22850 | 682 |
683 /* NV_PCRTC_OFFSET */ | |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
684 x = nvReadVGA (&info->chip, 0x13); |
22850 | 685 /* NV_PCRTC_REPAINT0_OFFSET_10_8 */ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
686 x |= (nvReadVGA (&info->chip, 0x19) & 0xE0) << 3; |
22850 | 687 /* NV_PCRTC_EXTRA_OFFSET_11 */ |
24574
f89d135bcae0
add functions for the vga register access patch by Guillaume LECERF <foxcore at gmail.com>
faust3
parents:
24568
diff
changeset
|
688 x |= (nvReadVGA (&info->chip, 0x25) & 0x20) << 6; x <<= 3; |
22850 | 689 info->bps = x * bpp; |
690 } | |
691 | |
692 | |
693 | |
694 | |
695 /* Start overlay video. */ | |
696 static void rivatv_overlay_start (struct rivatv_info *info,int bufno){ | |
697 uint32_t base, size, offset, xscale, yscale, pan; | |
698 uint32_t value; | |
699 int x=info->wx, y=info->wy; | |
700 int lwidth=info->d_width, lheight=info->d_height; | |
701 | |
702 size = info->buffer_size; | |
703 base = info->picture_offset; | |
704 offset = bufno*size; | |
705 /*update depth & dimensions here because it may change with vo vesa or vo fbdev*/ | |
706 nv_getscreenproperties(info); | |
707 | |
708 if(info->depth){ | |
709 /* get pan offset of the physical screen */ | |
710 pan = rivatv_overlay_pan (info); | |
711 /* adjust window position depending on the pan offset */ | |
712 if (info->bps != 0) | |
713 { | |
714 x = info->wx - (pan % info->bps) * 8 / info->depth; | |
715 y = info->wy - (pan / info->bps); | |
716 } | |
717 } else { | |
718 // we can't adjust the window position correctly in textmode | |
719 // setting y to 8 seems to work ok, though | |
720 if(info->chip.arch < NV_ARCH_10 && y < 8) y = 8; | |
721 } | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
722 |
22850 | 723 /* adjust negative output window variables */ |
724 if (x < 0) { | |
725 lwidth = info->d_width + x; | |
726 offset += (-x * info->width / info->d_width) << 1; | |
727 // offset += (-window->x * port->vld_width / window->width) << 1; | |
728 x = 0; | |
729 } | |
730 if (y < 0) { | |
731 lheight = info->d_height + y; | |
732 offset += (-y * info->height / info->d_height * info->width) << 1; | |
733 // offset += (-window->y * port->vld_height / window->height * port->org_width) << 1; | |
734 y = 0; | |
735 } | |
736 | |
737 switch (info->chip.arch) { | |
738 case NV_ARCH_10: | |
739 case NV_ARCH_20: | |
740 case NV_ARCH_30: | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
741 case NV_ARCH_40: |
22850 | 742 |
743 /* NV_PVIDEO_BASE */ | |
744 VID_WR32 (info->chip.PVIDEO, 0x900 + 0, base + offset); | |
745 //VID_WR32 (info->chip.PVIDEO, 0x900 + 4, base); | |
746 /* NV_PVIDEO_LIMIT */ | |
747 VID_WR32 (info->chip.PVIDEO, 0x908 + 0, base + offset + size - 1); | |
748 //VID_WR32 (info->chip.PVIDEO, 0x908 + 4, base + size - 1); | |
749 | |
750 /* extra code for NV20 && NV30 architectures */ | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
751 if (info->chip.arch == NV_ARCH_20 || info->chip.arch == NV_ARCH_30 || info->chip.arch == NV_ARCH_40) { |
22850 | 752 VID_WR32 (info->chip.PVIDEO, 0x800 + 0, base + offset); |
753 //VID_WR32 (info->chip.PVIDEO, 0x800 + 4, base); | |
754 VID_WR32 (info->chip.PVIDEO, 0x808 + 0, base + offset + size - 1); | |
755 //VID_WR32 (info->chip.PVIDEO, 0x808 + 4, base + size - 1); | |
756 } | |
757 | |
758 /* NV_PVIDEO_LUMINANCE */ | |
759 VID_WR32 (info->chip.PVIDEO, 0x910 + 0, eq.lum); | |
760 //VID_WR32 (info->chip.PVIDEO, 0x910 + 4, 0x00001000); | |
761 /* NV_PVIDEO_CHROMINANCE */ | |
762 VID_WR32 (info->chip.PVIDEO, 0x918 + 0, eq.chrom); | |
763 //VID_WR32 (info->chip.PVIDEO, 0x918 + 4, 0x00001000); | |
764 | |
765 /* NV_PVIDEO_OFFSET */ | |
766 VID_WR32 (info->chip.PVIDEO, 0x920 + 0, 0x0); | |
767 //VID_WR32 (info->chip.PVIDEO, 0x920 + 4, offset + pitch); | |
768 /* NV_PVIDEO_SIZE_IN */ | |
769 VID_WR32 (info->chip.PVIDEO, 0x928 + 0, ((info->height) << 16) | info->width); | |
770 //VID_WR32 (info->chip.PVIDEO, 0x928 + 4, ((port->org_height/2) << 16) | port->org_width); | |
771 /* NV_PVIDEO_POINT_IN */ | |
772 VID_WR32 (info->chip.PVIDEO, 0x930 + 0, 0x00000000); | |
773 //VID_WR32 (info->chip.PVIDEO, 0x930 + 4, 0x00000000); | |
774 /* NV_PVIDEO_DS_DX_RATIO */ | |
775 VID_WR32 (info->chip.PVIDEO, 0x938 + 0, (info->width << 20) / info->d_width); | |
776 //VID_WR32 (info->chip.PVIDEO, 0x938 + 4, (port->org_width << 20) / window->width); | |
777 /* NV_PVIDEO_DT_DY_RATIO */ | |
778 VID_WR32 (info->chip.PVIDEO, 0x940 + 0, ((info->height) << 20) / info->d_height); | |
779 //VID_WR32 (info->chip.PVIDEO, 0x940 + 4, ((port->org_height/2) << 20) / window->height); | |
780 | |
781 /* NV_PVIDEO_POINT_OUT */ | |
782 VID_WR32 (info->chip.PVIDEO, 0x948 + 0, ((y + 0) << 16) | x); | |
783 //VID_WR32 (info->chip.PVIDEO, 0x948 + 4, ((y + 0) << 16) | x); | |
784 /* NV_PVIDEO_SIZE_OUT */ | |
785 VID_WR32 (info->chip.PVIDEO, 0x950 + 0, (lheight << 16) | lwidth); | |
786 //VID_WR32 (info->chip.PVIDEO, 0x950 + 4, (height << 16) | width); | |
787 | |
788 /* NV_PVIDEO_FORMAT */ | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
789 value = info->pitch; |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
790 if(info->use_colorkey)value |= 1 << 20; |
22850 | 791 if(info->format == IMGFMT_YUY2)value |= 1 << 16; |
792 VID_WR32 (info->chip.PVIDEO, 0x958 + 0, value); | |
793 //VID_WR32 (info->chip.PVIDEO, 0x958 + 4, (pitch << 1) | 0x00100000); | |
794 | |
795 /* NV_PVIDEO_INTR_EN_BUFFER */ | |
796 // VID_OR32 (info->chip.PVIDEO, 0x140, 0x01/*0x11*/); | |
797 /* NV_PVIDEO_STOP */ | |
798 VID_WR32 (info->chip.PVIDEO, 0x704,0x0); | |
799 /* NV_PVIDEO_BUFFER */ | |
800 VID_WR32 (info->chip.PVIDEO, 0x700, 0x01/*0x11*/); | |
801 break; | |
802 | |
803 case NV_ARCH_03: | |
804 case NV_ARCH_04: | |
805 | |
806 | |
807 /* NV_PVIDEO_OE_STATE */ | |
808 VID_WR32 (info->chip.PVIDEO, 0x224, 0); | |
809 /* NV_PVIDEO_SU_STATE */ | |
810 VID_WR32 (info->chip.PVIDEO, 0x228, 0); | |
811 /* NV_PVIDEO_RM_STATE */ | |
812 VID_WR32 (info->chip.PVIDEO, 0x22C, 0); | |
813 | |
814 /* NV_PVIDEO_BUFF0_START_ADDRESS */ | |
815 VID_WR32 (info->chip.PVIDEO, 0x20C + 0, base + offset + 0); | |
816 VID_WR32 (info->chip.PVIDEO, 0x20C + 4, base + offset + 0); | |
817 /* NV_PVIDEO_BUFF0_PITCH_LENGTH */ | |
818 VID_WR32 (info->chip.PVIDEO, 0x214 + 0, info->pitch); | |
819 VID_WR32 (info->chip.PVIDEO, 0x214 + 4, info->pitch); | |
820 | |
821 /* NV_PVIDEO_WINDOW_START */ | |
822 VID_WR32 (info->chip.PVIDEO, 0x230, (y << 16) | x); | |
823 /* NV_PVIDEO_WINDOW_SIZE */ | |
824 VID_WR32 (info->chip.PVIDEO, 0x234, (lheight << 16) | lwidth); | |
825 /* NV_PVIDEO_STEP_SIZE */ | |
826 yscale = ((info->height - 1) << 11) / (info->d_height - 1); | |
827 xscale = ((info->width - 1) << 11) / (info->d_width - 1); | |
828 VID_WR32 (info->chip.PVIDEO, 0x200, (yscale << 16) | xscale); | |
829 | |
830 /* NV_PVIDEO_RED_CSC_OFFSET */ | |
831 VID_WR32 (info->chip.PVIDEO, 0x280, eq.red_off); | |
832 /* NV_PVIDEO_GREEN_CSC_OFFSET */ | |
833 VID_WR32 (info->chip.PVIDEO, 0x284, eq.green_off); | |
834 /* NV_PVIDEO_BLUE_CSC_OFFSET */ | |
835 VID_WR32 (info->chip.PVIDEO, 0x288, eq.blue_off); | |
836 /* NV_PVIDEO_CSC_ADJUST */ | |
837 VID_WR32 (info->chip.PVIDEO, 0x28C, 0x00000); /* No colour correction! */ | |
838 | |
839 /* NV_PVIDEO_CONTROL_Y (BLUR_ON, LINE_HALF) */ | |
840 VID_WR32 (info->chip.PVIDEO, 0x204, 0x001); | |
841 /* NV_PVIDEO_CONTROL_X (WEIGHT_HEAVY, SHARPENING_ON, SMOOTHING_ON) */ | |
842 VID_WR32 (info->chip.PVIDEO, 0x208, 0x111); /*directx overlay 0x110 */ | |
843 | |
844 /* NV_PVIDEO_FIFO_BURST_LENGTH */ | |
845 VID_WR32 (info->chip.PVIDEO, 0x23C, 0x03); | |
846 /* NV_PVIDEO_FIFO_THRES_SIZE */ | |
847 VID_WR32 (info->chip.PVIDEO, 0x238, 0x38); /*windows uses 0x40*/ | |
848 | |
849 /* NV_PVIDEO_BUFF0_OFFSET */ | |
850 VID_WR32 (info->chip.PVIDEO, 0x21C + 0, 0); | |
851 VID_WR32 (info->chip.PVIDEO, 0x21C + 4, 0); | |
852 | |
853 /* NV_PVIDEO_INTR_EN_0_NOTIFY_ENABLED */ | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
854 // VID_OR32 (info->chip.PVIDEO, 0x140, 0x01); |
22850 | 855 |
856 /* NV_PVIDEO_OVERLAY (KEY_ON, VIDEO_ON, FORMAT_CCIR) */ | |
857 value = 0x1; /*video on*/ | |
858 if(info->format==IMGFMT_YUY2)value |= 0x100; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
859 if(info->use_colorkey)value |=0x10; |
22850 | 860 VID_WR32 (info->chip.PVIDEO, 0x244, value); |
861 | |
862 /* NV_PVIDEO_SU_STATE */ | |
863 VID_XOR32 (info->chip.PVIDEO, 0x228, 1 << 16); | |
864 break; | |
865 } | |
866 /*set colorkey*/ | |
867 rivatv_overlay_colorkey(info,info->vidixcolorkey); | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
868 |
22850 | 869 } |
870 | |
871 | |
872 | |
873 | |
874 | |
875 | |
876 | |
877 static rivatv_info* info; | |
878 | |
879 | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
880 |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
881 |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
882 static int nv_init(void){ |
22850 | 883 int mtrr; |
884 info = calloc(1,sizeof(rivatv_info)); | |
885 info->control_base = map_phys_mem(pci_info.base0, 0x00C00000 + 0x00008000); | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
886 info->chip.arch = nvidia_card_ids[find_chip(pci_info.device)].arch; |
22850 | 887 printf("[nvidia_vid] arch %x register base %p\n",info->chip.arch,info->control_base); |
888 info->chip.PFIFO = (uint32_t *) (info->control_base + 0x00002000); | |
889 info->chip.FIFO = (uint32_t *) (info->control_base + 0x00800000); | |
890 info->chip.PMC = (uint32_t *) (info->control_base + 0x00000000); | |
891 info->chip.PFB = (uint32_t *) (info->control_base + 0x00100000); | |
892 info->chip.PME = (uint32_t *) (info->control_base + 0x00000000); | |
893 info->chip.PCIO = (uint8_t *) (info->control_base + 0x00601000); | |
894 info->chip.PVIO = (uint8_t *) (info->control_base + 0x000C0000); | |
895 info->chip.PGRAPH = (uint32_t *) (info->control_base + 0x00400000); | |
896 /* setup chip specific functions */ | |
897 switch (info->chip.arch) { | |
898 case NV_ARCH_03: | |
899 info->chip.lock = rivatv_lock_nv03; | |
900 info->chip.fbsize = rivatv_fbsize_nv03 (&info->chip); | |
901 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00680000); | |
902 break; | |
903 case NV_ARCH_04: | |
904 info->chip.lock = rivatv_lock_nv04; | |
905 info->chip.fbsize = rivatv_fbsize_nv04 (&info->chip); | |
906 info->chip.PRAMIN = (uint32_t *) (info->control_base + 0x00700000); | |
907 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00680000); | |
908 break; | |
909 case NV_ARCH_10: | |
910 case NV_ARCH_20: | |
911 case NV_ARCH_30: | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
912 case NV_ARCH_40: |
22850 | 913 info->chip.lock = rivatv_lock_nv04; |
914 info->chip.fbsize = rivatv_fbsize_nv10 (&info->chip); | |
915 info->chip.PRAMIN = (uint32_t *) (info->control_base + 0x00700000); | |
916 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00008000); | |
917 break; | |
918 } | |
919 switch (info->chip.arch) { | |
920 case NV_ARCH_03: | |
921 { | |
922 /* This maps framebuffer @6MB, thus 2MB are left for video. */ | |
923 info->video_base = map_phys_mem(pci_info.base1, info->chip.fbsize); | |
924 /* This may trash your screen for resolutions greater than 1024x768, sorry. */ | |
925 info->picture_offset = 1024*768* 4 * ((info->chip.fbsize > 4194304)?2:1); | |
926 info->picture_base = info->video_base + info->picture_offset; | |
927 info->chip.PRAMIN = (uint32_t *) (info->video_base + 0x00C00000); | |
928 break; | |
929 } | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
930 case NV_ARCH_04: |
22850 | 931 case NV_ARCH_10: |
932 case NV_ARCH_20: | |
933 case NV_ARCH_30: | |
22880
8b0cfdc71759
GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
ben
parents:
22874
diff
changeset
|
934 case NV_ARCH_40: |
22850 | 935 { |
936 info->video_base = map_phys_mem(pci_info.base1, info->chip.fbsize); | |
937 info->picture_offset = info->chip.fbsize - NV04_BES_SIZE; | |
938 if(info->chip.fbsize > 16*1024*1024) | |
939 info->picture_offset -= NV04_BES_SIZE; | |
940 // info->picture_base = (unsigned long)map_phys_mem(pci_info.base1+info->picture_offset,NV04_BES_SIZE); | |
941 info->picture_base = info->video_base + info->picture_offset; | |
942 break; | |
943 } | |
944 } | |
945 | |
946 printf("[nvidia_vid] detected memory size %u MB\n",(uint32_t)(info->chip.fbsize /1024/1024)); | |
947 | |
948 if ((mtrr = mtrr_set_type(pci_info.base1, info->chip.fbsize, MTRR_TYPE_WRCOMB))!= 0) | |
949 printf("[nvidia_vid] unable to setup MTRR: %s\n", strerror(mtrr)); | |
950 else | |
951 printf("[nvidia_vid] MTRR set up\n"); | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
952 |
22850 | 953 nv_getscreenproperties(info); |
954 if(!info->depth)printf("[nvidia_vid] text mode: %ux%u\n",info->screen_x,info->screen_y); | |
955 else printf("[nvidia_vid] video mode: %ux%u@%u\n",info->screen_x,info->screen_y, info->depth); | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
956 |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
957 |
22850 | 958 rivatv_enable_PMEDIA(info); |
959 info->cur_frame = 0; | |
960 info->use_colorkey = 0; | |
961 | |
962 eq.lum = 0x00001000; | |
963 eq.chrom = 0x00001000; | |
964 memset(&eq.vals, 0, sizeof(vidix_video_eq_t)); | |
965 eq.vals.cap = VEQ_CAP_BRIGHTNESS; | |
966 if (info->chip.arch > NV_ARCH_04) | |
967 eq.vals.cap |= VEQ_CAP_CONTRAST | VEQ_CAP_SATURATION | VEQ_CAP_HUE; | |
968 eq.red_off = 0x69; | |
969 eq.green_off = 0x3e; | |
970 eq.blue_off = 0x89; | |
971 return 0; | |
972 } | |
973 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
974 static void nv_destroy(void){ |
22850 | 975 unmap_phys_mem(info->control_base ,0x00C00000 + 0x00008000); |
976 unmap_phys_mem(info->video_base, info->chip.fbsize); | |
977 free(info); | |
978 } | |
979 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
980 static int nv_get_caps(vidix_capability_t *to){ |
22850 | 981 memcpy(to, &nvidia_cap, sizeof(vidix_capability_t)); |
982 return 0; | |
983 } | |
984 | |
985 inline static int is_supported_fourcc(uint32_t fourcc) | |
986 { | |
987 if (fourcc == IMGFMT_UYVY || fourcc == IMGFMT_YUY2) | |
988 return 1; | |
989 else | |
990 return 0; | |
991 } | |
992 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
993 static int nv_query_fourcc(vidix_fourcc_t *to){ |
22850 | 994 if(is_supported_fourcc(to->fourcc)){ |
23060 | 995 to->depth = VID_DEPTH_ALL; |
22850 | 996 to->flags = VID_CAP_EXPAND | VID_CAP_SHRINK | VID_CAP_COLORKEY; |
997 return 0; | |
998 } | |
999 else to->depth = to->flags = 0; | |
1000 return ENOSYS; | |
1001 } | |
1002 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1003 static int nv_config_playback(vidix_playback_t *vinfo){ |
22850 | 1004 uint32_t i; |
23922
ee2cf48d6659
Comment out purely debugging printf that in addition uses __FUNCTION__ which
reimar
parents:
23060
diff
changeset
|
1005 // printf("called %s\n", __FUNCTION__); |
22850 | 1006 if (! is_supported_fourcc(vinfo->fourcc)) |
1007 return ENOSYS; | |
1008 | |
1009 info->width = vinfo->src.w; | |
1010 info->height = vinfo->src.h; | |
1011 | |
1012 info->d_width = vinfo->dest.w; | |
1013 info->d_height = vinfo->dest.h; | |
1014 info->wx = vinfo->dest.x; | |
1015 info->wy = vinfo->dest.y; | |
1016 info->format = vinfo->fourcc; | |
1017 | |
1018 printf("[nvidia_vid] setting up a %dx%d-%dx%d video window (src %dx%d), format 0x%X\n", | |
1019 info->d_width, info->d_height, info->wx, info->wy, info->width, info->height, vinfo->fourcc); | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
1020 |
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27757
diff
changeset
|
1021 |
22850 | 1022 vinfo->dga_addr=info->picture_base; |
1023 | |
1024 switch (vinfo->fourcc) | |
1025 { | |
1026 case IMGFMT_YUY2: | |
1027 case IMGFMT_UYVY: | |
1028 | |
1029 vinfo->dest.pitch.y = 64; | |
1030 vinfo->dest.pitch.u = 0; | |
1031 vinfo->dest.pitch.v = 0; | |
1032 | |
1033 vinfo->offset.y = 0; | |
1034 vinfo->offset.v = 0; | |
1035 vinfo->offset.u = 0; | |
1036 info->pitch = ((info->width << 1) + (vinfo->dest.pitch.y-1)) & ~(vinfo->dest.pitch.y-1); | |
1037 vinfo->frame_size = info->pitch * info->height; | |
1038 break; | |
1039 } | |
1040 info->buffer_size = vinfo->frame_size; | |
1041 info->num_frames = vinfo->num_frames= (info->chip.fbsize - info->picture_offset)/vinfo->frame_size; | |
1042 if(vinfo->num_frames > MAX_FRAMES)vinfo->num_frames = MAX_FRAMES; | |
1043 // vinfo->num_frames = 1; | |
1044 // printf("[nvidia_vid] Number of frames %i\n",vinfo->num_frames); | |
1045 for(i=0;i <vinfo->num_frames;i++)vinfo->offsets[i] = vinfo->frame_size*i; | |
1046 return 0; | |
1047 } | |
1048 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1049 static int nv_playback_on(void){ |
22850 | 1050 rivatv_overlay_start(info,info->cur_frame); |
1051 return 0; | |
1052 } | |
1053 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1054 static int nv_playback_off(void){ |
22850 | 1055 rivatv_overlay_stop(info); |
1056 return 0; | |
1057 } | |
1058 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1059 static int nv_set_gkeys( const vidix_grkey_t * grkey){ |
22850 | 1060 if (grkey->ckey.op == CKEY_FALSE) |
1061 { | |
1062 info->use_colorkey = 0; | |
1063 printf("[nvidia_vid] colorkeying disabled\n"); | |
1064 } | |
1065 else { | |
1066 info->use_colorkey = 1; | |
1067 info->vidixcolorkey = ((grkey->ckey.red<<16)|(grkey->ckey.green<<8)|grkey->ckey.blue); | |
1068 printf("[nvidia_vid] set colorkey 0x%x\n",info->vidixcolorkey); | |
1069 } | |
1070 if(info->d_width && info->d_height)rivatv_overlay_start(info,0); | |
1071 return 0; | |
1072 } | |
1073 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1074 static int nv_frame_sel(unsigned int frame){ |
22850 | 1075 // printf("selecting buffer %d\n", frame); |
1076 rivatv_overlay_start(info, frame); | |
1077 if (info->num_frames >= 1) | |
1078 info->cur_frame = frame/*(frame+1)%info->num_frames*/; | |
1079 return 0; | |
1080 } | |
1081 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1082 static int nv_set_eq(const vidix_video_eq_t *eq_parm) { |
22850 | 1083 double angle; |
1084 int16_t chrom_cos, chrom_sin; | |
1085 if (eq_parm->cap & VEQ_CAP_BRIGHTNESS) | |
1086 eq.vals.brightness = eq_parm->brightness; | |
1087 if (eq_parm->cap & VEQ_CAP_CONTRAST) | |
1088 eq.vals.contrast = eq_parm->contrast; | |
1089 if (eq_parm->cap & VEQ_CAP_SATURATION) | |
1090 eq.vals.saturation = eq_parm->saturation; | |
1091 if (eq_parm->cap & VEQ_CAP_HUE) | |
1092 eq.vals.hue = eq_parm->hue; | |
1093 eq.lum = (((eq.vals.brightness * 512 + 500) / 1000) << 16) | | |
1094 ((((eq.vals.contrast + 1000) * 8191 + 1000) / 2000) & 0xffff); | |
1095 angle = (double)eq.vals.hue / 1000.0 * 3.1415927; | |
1096 chrom_cos = ((eq.vals.saturation + 1000) * 8191 * cos(angle) + 1000) / 2000; | |
1097 chrom_sin = ((eq.vals.saturation + 1000) * 8191 * sin(angle) + 1000) / 2000; | |
1098 eq.chrom = chrom_sin << 16 | chrom_cos; | |
1099 eq.red_off = 0x69 - eq.vals.brightness * 62 / 1000; | |
1100 eq.green_off = 0x3e + eq.vals.brightness * 62 / 1000; | |
1101 eq.blue_off = 0x89 - eq.vals.brightness * 62 / 1000; | |
1102 return 0; | |
1103 } | |
1104 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1105 static int nv_get_eq(vidix_video_eq_t *eq_parm) { |
22850 | 1106 memcpy(eq_parm, &eq.vals, sizeof(vidix_video_eq_t)); |
1107 return 0; | |
1108 } | |
1109 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1110 VDXDriver nvidia_drv = { |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1111 "nvidia", |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1112 NULL, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1113 .probe = nv_probe, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1114 .get_caps = nv_get_caps, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1115 .query_fourcc = nv_query_fourcc, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1116 .init = nv_init, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1117 .destroy = nv_destroy, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1118 .config_playback = nv_config_playback, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1119 .playback_on = nv_playback_on, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1120 .playback_off = nv_playback_off, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1121 .frame_sel = nv_frame_sel, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1122 .get_eq = nv_get_eq, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1123 .set_eq = nv_set_eq, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1124 .set_gkey = nv_set_gkeys, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
1125 }; |
24568 | 1126 |
1127 | |
1128 #if 0 | |
1129 //gcc -o nvidia_vid nvidia_vid.c -I ../ -lm ../vidix/libvidix.a | |
1130 | |
1131 int main(int argc,char* argv[]){ | |
1132 if(nv_probe(0,0)){ | |
1133 printf("no supported chip found\n"); | |
1134 return 1; | |
1135 } | |
1136 if(nv_init()){ | |
1137 printf("could not init\n"); | |
1138 return 1; | |
1139 } | |
1140 if(info->chip.arch >= NV_ARCH_10){ | |
1141 printf("NV_PVIDEO_BASE (0x900) 0x%x\n",VID_RD32(info->chip.PVIDEO, 0x900)); | |
1142 printf("NV_PVIDEO_LIMIT (0x908) 0x%x\n",VID_RD32(info->chip.PVIDEO, 0x908)); | |
1143 printf("NV_PVIDEO_OFFSET (0x920) 0x%x\n",VID_RD32(info->chip.PVIDEO, 0x920)); | |
1144 printf("NV_PVIDEO_FORMAT (0x958) 0x%x\n",VID_RD32(info->chip.PVIDEO, 0x958)); | |
1145 printf("NV_PVIDEO_STOP (0x704) 0x%x\n",VID_RD32(info->chip.PVIDEO, 0x704)); | |
1146 printf("NV_PVIDEO_BUFFER (0x700) 0x%x\n",VID_RD32(info->chip.PVIDEO, 0x700)); | |
1147 } | |
1148 | |
1149 nv_destroy(); | |
1150 return 0; | |
1151 } | |
1152 | |
1153 #endif |