comparison vidix/nvidia_vid.c @ 22880:8b0cfdc71759

GeForce 6x00 and above are actually referenced as NV40 in X.Org driver (though it doesn't work better right now)
author ben
date Sun, 01 Apr 2007 20:48:34 +0000
parents 9a8f6901e888
children a9e111b88c4a
comparison
equal deleted inserted replaced
22879:910cdc3f2afb 22880:8b0cfdc71759
55 #define NV_ARCH_03 0x03 55 #define NV_ARCH_03 0x03
56 #define NV_ARCH_04 0x04 56 #define NV_ARCH_04 0x04
57 #define NV_ARCH_10 0x10 57 #define NV_ARCH_10 0x10
58 #define NV_ARCH_20 0x20 58 #define NV_ARCH_20 0x20
59 #define NV_ARCH_30 0x30 59 #define NV_ARCH_30 0x30
60 #define NV_ARCH_40 0x40
60 61
61 // since no useful information whatsoever is passed 62 // since no useful information whatsoever is passed
62 // to the equalizer functions we need this 63 // to the equalizer functions we need this
63 static struct { 64 static struct {
64 uint32_t lum; // luminance (brightness + contrast) 65 uint32_t lum; // luminance (brightness + contrast)
216 {DEVICE_NVIDIA_NV36_GEFORCE_PCX,NV_ARCH_30}, 217 {DEVICE_NVIDIA_NV36_GEFORCE_PCX,NV_ARCH_30},
217 {DEVICE_NVIDIA_NV35_GEFORCE_PCX,NV_ARCH_30}, 218 {DEVICE_NVIDIA_NV35_GEFORCE_PCX,NV_ARCH_30},
218 {DEVICE_NVIDIA_NV37GL_QUADRO_FX,NV_ARCH_30}, 219 {DEVICE_NVIDIA_NV37GL_QUADRO_FX,NV_ARCH_30},
219 {DEVICE_NVIDIA_NV37GL_QUADRO_FX2,NV_ARCH_30}, 220 {DEVICE_NVIDIA_NV37GL_QUADRO_FX2,NV_ARCH_30},
220 {DEVICE_NVIDIA_NV38GL_QUADRO_FX,NV_ARCH_30}, 221 {DEVICE_NVIDIA_NV38GL_QUADRO_FX,NV_ARCH_30},
221 /* FIXME are they different? */ 222 /* NV40: GeForce 6x00 to 7x00 */
222 {DEVICE_NVIDIA_NV40_GEFORCE_6800,NV_ARCH_30}, 223 {DEVICE_NVIDIA_NV40_GEFORCE_6800,NV_ARCH_40},
223 {DEVICE_NVIDIA_NV40_GEFORCE_68002,NV_ARCH_30}, 224 {DEVICE_NVIDIA_NV40_GEFORCE_68002,NV_ARCH_40},
224 {DEVICE_NVIDIA_NV40_2_GEFORCE_6800,NV_ARCH_30}, 225 {DEVICE_NVIDIA_NV40_2_GEFORCE_6800,NV_ARCH_40},
225 {DEVICE_NVIDIA_NV40_3,NV_ARCH_30}, 226 {DEVICE_NVIDIA_NV40_3,NV_ARCH_40},
226 {DEVICE_NVIDIA_NV40_GEFORCE_68003,NV_ARCH_30}, 227 {DEVICE_NVIDIA_NV40_GEFORCE_68003,NV_ARCH_40},
227 {DEVICE_NVIDIA_NV40_GEFORCE_68004,NV_ARCH_30}, 228 {DEVICE_NVIDIA_NV40_GEFORCE_68004,NV_ARCH_40},
228 {DEVICE_NVIDIA_NV40_GEFORCE_68005,NV_ARCH_30}, 229 {DEVICE_NVIDIA_NV40_GEFORCE_68005,NV_ARCH_40},
229 {DEVICE_NVIDIA_NV40_GEFORCE_68006,NV_ARCH_30}, 230 {DEVICE_NVIDIA_NV40_GEFORCE_68006,NV_ARCH_40},
230 {DEVICE_NVIDIA_NV40_GEFORCE_68007,NV_ARCH_30}, 231 {DEVICE_NVIDIA_NV40_GEFORCE_68007,NV_ARCH_40},
231 {DEVICE_NVIDIA_NV40_GEFORCE_68008,NV_ARCH_30}, 232 {DEVICE_NVIDIA_NV40_GEFORCE_68008,NV_ARCH_40},
232 {DEVICE_NVIDIA_NV40_GEFORCE_68009,NV_ARCH_30}, 233 {DEVICE_NVIDIA_NV40_GEFORCE_68009,NV_ARCH_40},
233 {DEVICE_NVIDIA_NV40_GEFORCE_680010,NV_ARCH_30}, 234 {DEVICE_NVIDIA_NV40_GEFORCE_680010,NV_ARCH_40},
234 {DEVICE_NVIDIA_NV40_GEFORCE_680011,NV_ARCH_30}, 235 {DEVICE_NVIDIA_NV40_GEFORCE_680011,NV_ARCH_40},
235 {DEVICE_NVIDIA_NV40_GEFORCE_680012,NV_ARCH_30}, 236 {DEVICE_NVIDIA_NV40_GEFORCE_680012,NV_ARCH_40},
236 {DEVICE_NVIDIA_NV40_GEFORCE_68008,NV_ARCH_30}, 237 {DEVICE_NVIDIA_NV40_GEFORCE_68008,NV_ARCH_40},
237 {DEVICE_NVIDIA_NV40GL,NV_ARCH_30}, 238 {DEVICE_NVIDIA_NV40GL,NV_ARCH_40},
238 {DEVICE_NVIDIA_NV40GL_QUADRO_FX,NV_ARCH_30}, 239 {DEVICE_NVIDIA_NV40GL_QUADRO_FX,NV_ARCH_40},
239 {DEVICE_NVIDIA_NV40GL_QUADRO_FX2,NV_ARCH_30}, 240 {DEVICE_NVIDIA_NV40GL_QUADRO_FX2,NV_ARCH_40},
240 {DEVICE_NVIDIA_NV41_GEFORCE_6800,NV_ARCH_30}, 241 {DEVICE_NVIDIA_NV41_GEFORCE_6800,NV_ARCH_40},
241 {DEVICE_NVIDIA_NV41_1_GEFORCE_6800,NV_ARCH_30}, 242 {DEVICE_NVIDIA_NV41_1_GEFORCE_6800,NV_ARCH_40},
242 {DEVICE_NVIDIA_NV41_2_GEFORCE_6800,NV_ARCH_30}, 243 {DEVICE_NVIDIA_NV41_2_GEFORCE_6800,NV_ARCH_40},
243 {DEVICE_NVIDIA_NV41_8_GEFORCE_GO,NV_ARCH_30}, 244 {DEVICE_NVIDIA_NV41_8_GEFORCE_GO,NV_ARCH_40},
244 {DEVICE_NVIDIA_NV41_9_GEFORCE_GO,NV_ARCH_30}, 245 {DEVICE_NVIDIA_NV41_9_GEFORCE_GO,NV_ARCH_40},
245 {DEVICE_NVIDIA_NV41_QUADRO_FX,NV_ARCH_30}, 246 {DEVICE_NVIDIA_NV41_QUADRO_FX,NV_ARCH_40},
246 {DEVICE_NVIDIA_NV41_QUADRO_FX2,NV_ARCH_30}, 247 {DEVICE_NVIDIA_NV41_QUADRO_FX2,NV_ARCH_40},
247 {DEVICE_NVIDIA_NV41GL_QUADRO_FX,NV_ARCH_30}, 248 {DEVICE_NVIDIA_NV41GL_QUADRO_FX,NV_ARCH_40},
248 {DEVICE_NVIDIA_NV41GL_QUADRO_FX,NV_ARCH_30}, 249 {DEVICE_NVIDIA_NV41GL_QUADRO_FX,NV_ARCH_40},
249 {DEVICE_NVIDIA_NV40_GEFORCE_6800_GEFORCE,NV_ARCH_30}, 250 {DEVICE_NVIDIA_NV40_GEFORCE_6800_GEFORCE,NV_ARCH_40},
250 {DEVICE_NVIDIA_NV43_GEFORCE_6600_GEFORCE,NV_ARCH_30}, 251 {DEVICE_NVIDIA_NV43_GEFORCE_6600_GEFORCE,NV_ARCH_40},
251 {DEVICE_NVIDIA_NV43_GEFORCE_6600_GEFORCE2,NV_ARCH_30}, 252 {DEVICE_NVIDIA_NV43_GEFORCE_6600_GEFORCE2,NV_ARCH_40},
252 {DEVICE_NVIDIA_NV43_GEFORCE_6200,NV_ARCH_30}, 253 {DEVICE_NVIDIA_NV43_GEFORCE_6200,NV_ARCH_40},
253 {DEVICE_NVIDIA_NV43_GEFORCE_62002,NV_ARCH_30}, 254 {DEVICE_NVIDIA_NV43_GEFORCE_62002,NV_ARCH_40},
254 {DEVICE_NVIDIA_NV43_GEFORCE_6600,NV_ARCH_30}, 255 {DEVICE_NVIDIA_NV43_GEFORCE_6600,NV_ARCH_40},
255 {DEVICE_NVIDIA_NV43_GEFORCE_66002,NV_ARCH_30}, 256 {DEVICE_NVIDIA_NV43_GEFORCE_66002,NV_ARCH_40},
256 {DEVICE_NVIDIA_NV43_GEFORCE_66003,NV_ARCH_30}, 257 {DEVICE_NVIDIA_NV43_GEFORCE_66003,NV_ARCH_40},
257 {DEVICE_NVIDIA_NV43_GEFORCE_66004,NV_ARCH_30}, 258 {DEVICE_NVIDIA_NV43_GEFORCE_66004,NV_ARCH_40},
258 {DEVICE_NVIDIA_NV43_GEFORCE_66005,NV_ARCH_30}, 259 {DEVICE_NVIDIA_NV43_GEFORCE_66005,NV_ARCH_40},
259 {DEVICE_NVIDIA_NV43_GEFORCE_GO,NV_ARCH_30}, 260 {DEVICE_NVIDIA_NV43_GEFORCE_GO,NV_ARCH_40},
260 {DEVICE_NVIDIA_NV43_GEFORCE_GO2,NV_ARCH_30}, 261 {DEVICE_NVIDIA_NV43_GEFORCE_GO2,NV_ARCH_40},
261 {DEVICE_NVIDIA_NV43_GEFORCE_GO3,NV_ARCH_30}, 262 {DEVICE_NVIDIA_NV43_GEFORCE_GO3,NV_ARCH_40},
262 {DEVICE_NVIDIA_NV43_GEFORCE_GO4,NV_ARCH_30}, 263 {DEVICE_NVIDIA_NV43_GEFORCE_GO4,NV_ARCH_40},
263 {DEVICE_NVIDIA_NV43_GEFORCE_GO5,NV_ARCH_30}, 264 {DEVICE_NVIDIA_NV43_GEFORCE_GO5,NV_ARCH_40},
264 {DEVICE_NVIDIA_NV43_GEFORCE_GO6,NV_ARCH_30}, 265 {DEVICE_NVIDIA_NV43_GEFORCE_GO6,NV_ARCH_40},
265 {DEVICE_NVIDIA_NV43_GEFORCE_6610,NV_ARCH_30}, 266 {DEVICE_NVIDIA_NV43_GEFORCE_6610,NV_ARCH_40},
266 {DEVICE_NVIDIA_NV43GL_QUADRO_FX,NV_ARCH_30}, 267 {DEVICE_NVIDIA_NV43GL_QUADRO_FX,NV_ARCH_40},
267 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE,NV_ARCH_30}, 268 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE,NV_ARCH_40},
268 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE2,NV_ARCH_30}, 269 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE2,NV_ARCH_40},
269 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE3,NV_ARCH_30}, 270 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE3,NV_ARCH_40},
270 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE4,NV_ARCH_30}, 271 {DEVICE_NVIDIA_GEFORCE_6100_NFORCE4,NV_ARCH_40},
271 {DEVICE_NVIDIA_C51G_GEFORCE_6100,NV_ARCH_30}, 272 {DEVICE_NVIDIA_C51G_GEFORCE_6100,NV_ARCH_40},
272 {DEVICE_NVIDIA_C51PV_GEFORCE_6150,NV_ARCH_30}, 273 {DEVICE_NVIDIA_C51PV_GEFORCE_6150,NV_ARCH_40},
273 {DEVICE_NVIDIA_NV44_GEFORCE_6200,NV_ARCH_30}, 274 {DEVICE_NVIDIA_NV44_GEFORCE_6200,NV_ARCH_40},
274 {DEVICE_NVIDIA_NV44_GEFORCE_62002,NV_ARCH_30}, 275 {DEVICE_NVIDIA_NV44_GEFORCE_62002,NV_ARCH_40},
275 {DEVICE_NVIDIA_NV44_GEFORCE_62003,NV_ARCH_30}, 276 {DEVICE_NVIDIA_NV44_GEFORCE_62003,NV_ARCH_40},
276 {DEVICE_NVIDIA_NV44_GEFORCE_GO,NV_ARCH_30}, 277 {DEVICE_NVIDIA_NV44_GEFORCE_GO,NV_ARCH_40},
277 {DEVICE_NVIDIA_NV44_QUADRO_NVS,NV_ARCH_30}, 278 {DEVICE_NVIDIA_NV44_QUADRO_NVS,NV_ARCH_40},
278 {DEVICE_NVIDIA_GEFORCE_GO_6200,NV_ARCH_30}, 279 {DEVICE_NVIDIA_GEFORCE_GO_6200,NV_ARCH_40},
279 {DEVICE_NVIDIA_NV44A_GEFORCE_6200,NV_ARCH_30}, 280 {DEVICE_NVIDIA_NV44A_GEFORCE_6200,NV_ARCH_40},
280 {DEVICE_NVIDIA_NV45GL_QUADRO_FX,NV_ARCH_30}, 281 {DEVICE_NVIDIA_NV45GL_QUADRO_FX,NV_ARCH_40},
281 {DEVICE_NVIDIA_GEFORCE_GO_7200,NV_ARCH_30}, 282 {DEVICE_NVIDIA_GEFORCE_GO_7200,NV_ARCH_40},
282 {DEVICE_NVIDIA_QUADRO_NVS_110M,NV_ARCH_30}, 283 {DEVICE_NVIDIA_QUADRO_NVS_110M,NV_ARCH_40},
283 {DEVICE_NVIDIA_GEFORCE_GO_7400,NV_ARCH_30}, 284 {DEVICE_NVIDIA_GEFORCE_GO_7400,NV_ARCH_40},
284 {DEVICE_NVIDIA_QUADRO_NVS_110M2,NV_ARCH_30}, 285 {DEVICE_NVIDIA_QUADRO_NVS_110M2,NV_ARCH_40},
285 {DEVICE_NVIDIA_QUADRO_FX_350,NV_ARCH_30}, 286 {DEVICE_NVIDIA_QUADRO_FX_350,NV_ARCH_40},
286 {DEVICE_NVIDIA_G70_GEFORCE_7300,NV_ARCH_30}, 287 {DEVICE_NVIDIA_G70_GEFORCE_7300,NV_ARCH_40},
287 {DEVICE_NVIDIA_GEFORCE_7300_GS,NV_ARCH_30}, 288 {DEVICE_NVIDIA_GEFORCE_7300_GS,NV_ARCH_40},
288 {DEVICE_NVIDIA_G70_GEFORCE_7600,NV_ARCH_30}, 289 {DEVICE_NVIDIA_G70_GEFORCE_7600,NV_ARCH_40},
289 {DEVICE_NVIDIA_G70_GEFORCE_76002,NV_ARCH_30}, 290 {DEVICE_NVIDIA_G70_GEFORCE_76002,NV_ARCH_40},
290 {DEVICE_NVIDIA_GEFORCE_7600_GS,NV_ARCH_30}, 291 {DEVICE_NVIDIA_GEFORCE_7600_GS,NV_ARCH_40},
291 {DEVICE_NVIDIA_G70_GEFORCE_GO,NV_ARCH_30}, 292 {DEVICE_NVIDIA_G70_GEFORCE_GO,NV_ARCH_40},
292 {DEVICE_NVIDIA_QUADRO_FX_560,NV_ARCH_30}, 293 {DEVICE_NVIDIA_QUADRO_FX_560,NV_ARCH_40},
293 {DEVICE_NVIDIA_G70_GEFORCE_7800,NV_ARCH_30}, 294 {DEVICE_NVIDIA_G70_GEFORCE_7800,NV_ARCH_40},
294 {DEVICE_NVIDIA_G70_GEFORCE_78002,NV_ARCH_30}, 295 {DEVICE_NVIDIA_G70_GEFORCE_78002,NV_ARCH_40},
295 {DEVICE_NVIDIA_G70_GEFORCE_78003,NV_ARCH_30}, 296 {DEVICE_NVIDIA_G70_GEFORCE_78003,NV_ARCH_40},
296 {DEVICE_NVIDIA_G70_GEFORCE_78004,NV_ARCH_30}, 297 {DEVICE_NVIDIA_G70_GEFORCE_78004,NV_ARCH_40},
297 {DEVICE_NVIDIA_G70_GEFORCE_78005,NV_ARCH_30}, 298 {DEVICE_NVIDIA_G70_GEFORCE_78005,NV_ARCH_40},
298 {DEVICE_NVIDIA_GEFORCE_GO_7800,NV_ARCH_30}, 299 {DEVICE_NVIDIA_GEFORCE_GO_7800,NV_ARCH_40},
299 {DEVICE_NVIDIA_GEFORCE_7900_GTX,NV_ARCH_30}, 300 {DEVICE_NVIDIA_GEFORCE_7900_GTX,NV_ARCH_40},
300 {DEVICE_NVIDIA_GEFORCE_7900_GT,NV_ARCH_30}, 301 {DEVICE_NVIDIA_GEFORCE_7900_GT,NV_ARCH_40},
301 {DEVICE_NVIDIA_GEFORCE_7900_GS,NV_ARCH_30}, 302 {DEVICE_NVIDIA_GEFORCE_7900_GS,NV_ARCH_40},
302 {DEVICE_NVIDIA_GEFORCE_GO_7900,NV_ARCH_30}, 303 {DEVICE_NVIDIA_GEFORCE_GO_7900,NV_ARCH_40},
303 {DEVICE_NVIDIA_GEFORCE_GO_79002,NV_ARCH_30}, 304 {DEVICE_NVIDIA_GEFORCE_GO_79002,NV_ARCH_40},
304 {DEVICE_NVIDIA_GE_FORCE_GO,NV_ARCH_30}, 305 {DEVICE_NVIDIA_GE_FORCE_GO,NV_ARCH_40},
305 {DEVICE_NVIDIA_G70GL_QUADRO_FX4500,NV_ARCH_30}, 306 {DEVICE_NVIDIA_G70GL_QUADRO_FX4500,NV_ARCH_40},
306 {DEVICE_NVIDIA_G71_QUADRO_FX,NV_ARCH_30}, 307 {DEVICE_NVIDIA_G71_QUADRO_FX,NV_ARCH_40},
307 {DEVICE_NVIDIA_G71_QUADRO_FX2,NV_ARCH_30} 308 {DEVICE_NVIDIA_G71_QUADRO_FX2,NV_ARCH_40}
308 }; 309 };
309 310
310 311
311 static int find_chip(unsigned chip_id){ 312 static int find_chip(unsigned chip_id){
312 unsigned i; 313 unsigned i;
522 /* save the current colorkey */ 523 /* save the current colorkey */
523 switch (info->chip.arch ) { 524 switch (info->chip.arch ) {
524 case NV_ARCH_10: 525 case NV_ARCH_10:
525 case NV_ARCH_20: 526 case NV_ARCH_20:
526 case NV_ARCH_30: 527 case NV_ARCH_30:
528 case NV_ARCH_40:
527 /* NV_PVIDEO_COLOR_KEY */ 529 /* NV_PVIDEO_COLOR_KEY */
528 info->colorkey = VID_RD32 (info->chip.PVIDEO, 0xB00); 530 info->colorkey = VID_RD32 (info->chip.PVIDEO, 0xB00);
529 break; 531 break;
530 case NV_ARCH_03: 532 case NV_ARCH_03:
531 case NV_ARCH_04: 533 case NV_ARCH_04:
543 /* Stop overlay video. */ 545 /* Stop overlay video. */
544 static void rivatv_overlay_stop (struct rivatv_info *info) { 546 static void rivatv_overlay_stop (struct rivatv_info *info) {
545 switch (info->chip.arch ) { 547 switch (info->chip.arch ) {
546 case NV_ARCH_10: 548 case NV_ARCH_10:
547 case NV_ARCH_20: 549 case NV_ARCH_20:
548 case NV_ARCH_30: 550 case NV_ARCH_30:
551 case NV_ARCH_40:
549 /* NV_PVIDEO_COLOR_KEY */ 552 /* NV_PVIDEO_COLOR_KEY */
550 /* Xv-Extension-Hack: Restore previously saved value. */ 553 /* Xv-Extension-Hack: Restore previously saved value. */
551 VID_WR32 (info->chip.PVIDEO, 0xB00, info->colorkey); 554 VID_WR32 (info->chip.PVIDEO, 0xB00, info->colorkey);
552 /* NV_PVIDEO_STOP */ 555 /* NV_PVIDEO_STOP */
553 VID_OR32 (info->chip.PVIDEO, 0x704, 0x11); 556 VID_OR32 (info->chip.PVIDEO, 0x704, 0x11);
622 //printf("[nvidia_vid] depth=%d %08X \n", info->depth, chromakey); 625 //printf("[nvidia_vid] depth=%d %08X \n", info->depth, chromakey);
623 switch (info->chip.arch) { 626 switch (info->chip.arch) {
624 case NV_ARCH_10: 627 case NV_ARCH_10:
625 case NV_ARCH_20: 628 case NV_ARCH_20:
626 case NV_ARCH_30: 629 case NV_ARCH_30:
630 case NV_ARCH_40:
627 VID_WR32 (info->chip.PVIDEO, 0xB00, key); 631 VID_WR32 (info->chip.PVIDEO, 0xB00, key);
628 break; 632 break;
629 case NV_ARCH_03: 633 case NV_ARCH_03:
630 case NV_ARCH_04: 634 case NV_ARCH_04:
631 VID_WR32 (info->chip.PVIDEO, 0x240, key); 635 VID_WR32 (info->chip.PVIDEO, 0x240, key);
714 718
715 switch (info->chip.arch) { 719 switch (info->chip.arch) {
716 case NV_ARCH_10: 720 case NV_ARCH_10:
717 case NV_ARCH_20: 721 case NV_ARCH_20:
718 case NV_ARCH_30: 722 case NV_ARCH_30:
723 case NV_ARCH_40:
719 724
720 /* NV_PVIDEO_BASE */ 725 /* NV_PVIDEO_BASE */
721 VID_WR32 (info->chip.PVIDEO, 0x900 + 0, base + offset); 726 VID_WR32 (info->chip.PVIDEO, 0x900 + 0, base + offset);
722 //VID_WR32 (info->chip.PVIDEO, 0x900 + 4, base); 727 //VID_WR32 (info->chip.PVIDEO, 0x900 + 4, base);
723 /* NV_PVIDEO_LIMIT */ 728 /* NV_PVIDEO_LIMIT */
724 VID_WR32 (info->chip.PVIDEO, 0x908 + 0, base + offset + size - 1); 729 VID_WR32 (info->chip.PVIDEO, 0x908 + 0, base + offset + size - 1);
725 //VID_WR32 (info->chip.PVIDEO, 0x908 + 4, base + size - 1); 730 //VID_WR32 (info->chip.PVIDEO, 0x908 + 4, base + size - 1);
726 731
727 /* extra code for NV20 && NV30 architectures */ 732 /* extra code for NV20 && NV30 architectures */
728 if (info->chip.arch == NV_ARCH_20 || info->chip.arch == NV_ARCH_30) { 733 if (info->chip.arch == NV_ARCH_20 || info->chip.arch == NV_ARCH_30 || info->chip.arch == NV_ARCH_40) {
729 VID_WR32 (info->chip.PVIDEO, 0x800 + 0, base + offset); 734 VID_WR32 (info->chip.PVIDEO, 0x800 + 0, base + offset);
730 //VID_WR32 (info->chip.PVIDEO, 0x800 + 4, base); 735 //VID_WR32 (info->chip.PVIDEO, 0x800 + 4, base);
731 VID_WR32 (info->chip.PVIDEO, 0x808 + 0, base + offset + size - 1); 736 VID_WR32 (info->chip.PVIDEO, 0x808 + 0, base + offset + size - 1);
732 //VID_WR32 (info->chip.PVIDEO, 0x808 + 4, base + size - 1); 737 //VID_WR32 (info->chip.PVIDEO, 0x808 + 4, base + size - 1);
733 } 738 }
884 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00680000); 889 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00680000);
885 break; 890 break;
886 case NV_ARCH_10: 891 case NV_ARCH_10:
887 case NV_ARCH_20: 892 case NV_ARCH_20:
888 case NV_ARCH_30: 893 case NV_ARCH_30:
894 case NV_ARCH_40:
889 info->chip.lock = rivatv_lock_nv04; 895 info->chip.lock = rivatv_lock_nv04;
890 info->chip.fbsize = rivatv_fbsize_nv10 (&info->chip); 896 info->chip.fbsize = rivatv_fbsize_nv10 (&info->chip);
891 info->chip.PRAMIN = (uint32_t *) (info->control_base + 0x00700000); 897 info->chip.PRAMIN = (uint32_t *) (info->control_base + 0x00700000);
892 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00008000); 898 info->chip.PVIDEO = (uint32_t *) (info->control_base + 0x00008000);
893 break; 899 break;
905 } 911 }
906 case NV_ARCH_04: 912 case NV_ARCH_04:
907 case NV_ARCH_10: 913 case NV_ARCH_10:
908 case NV_ARCH_20: 914 case NV_ARCH_20:
909 case NV_ARCH_30: 915 case NV_ARCH_30:
916 case NV_ARCH_40:
910 { 917 {
911 info->video_base = map_phys_mem(pci_info.base1, info->chip.fbsize); 918 info->video_base = map_phys_mem(pci_info.base1, info->chip.fbsize);
912 info->picture_offset = info->chip.fbsize - NV04_BES_SIZE; 919 info->picture_offset = info->chip.fbsize - NV04_BES_SIZE;
913 if(info->chip.fbsize > 16*1024*1024) 920 if(info->chip.fbsize > 16*1024*1024)
914 info->picture_offset -= NV04_BES_SIZE; 921 info->picture_offset -= NV04_BES_SIZE;