Ticket #5872: nvidia_driver_syslog.patch
File nvidia_driver_syslog.patch, 6.4 KB (added by , 14 years ago) |
---|
-
src/add-ons/kernel/drivers/graphics/nvidia/driver.c
265 265 0x02a0, /* Nvidia GeForce3 Integrated GPU */ 266 266 0x02e0, /* Nvidia GeForce 7600 GT */ 267 267 0x02e1, /* Nvidia GeForce 7600 GS */ 268 0x02e2, /* Nvidia GeForce 7300 GT */ 268 269 0x0301, /* Nvidia GeForce FX 5800 Ultra */ 269 270 0x0302, /* Nvidia GeForce FX 5800 */ 270 271 0x0308, /* Nvidia Quadro FX 2000 */ … … 395 396 uint32 cnt; 396 397 char fname[64]; 397 398 399 dprintf(DRIVER_PREFIX ": ROM dump requested\n"); 398 400 /* determine the romfile name: we need split-up per card in the system */ 399 401 sprintf (fname, "/boot/home/" DRIVER_PREFIX "." DEVICE_FORMAT ".rom", 400 402 pcii.vendor_id, pcii.device_id, pcii.bus, pcii.device, pcii.function); … … 407 409 for (cnt = 0; (cnt < size); cnt += 32768) 408 410 write (fd, ((void *)(((uint8 *)rom) + cnt)), 32768); 409 411 close (fd); 412 dprintf(DRIVER_PREFIX ": ROM dump successful\n"); 410 413 } 411 414 412 415 … … 605 608 /* check if we got the BIOS and signature (might fail on laptops..) */ 606 609 if (rom_area >= 0) { 607 610 if ((rom_temp[0] != 0x55) || (rom_temp[1] != 0xaa)) { 611 dprintf(DRIVER_PREFIX ": PCI mismapped ROM\n"); 608 612 /* apparantly no ROM is mapped here */ 609 613 delete_area(rom_area); 610 614 rom_area = -1; … … 612 616 tmpUlong = 0x00000000; 613 617 } 614 618 } else { 619 dprintf(DRIVER_PREFIX ": PCI map ROM failed\n"); 615 620 /* mapping failed: force using ISA legacy map as fall-back */ 616 621 tmpUlong = 0x00000000; 617 622 } 618 623 } 619 624 620 625 if (!tmpUlong) { 626 dprintf(DRIVER_PREFIX ": trying ISA map ROM for %s\n", di->name); 621 627 /* ROM was not assigned an adress, fetch it from ISA legacy memory map! */ 622 628 rom_area = map_physical_memory(buffer, (void *)0x000c0000, 623 629 65536, B_ANY_KERNEL_ADDRESS, B_READ_AREA, (void **)&(rom_temp)); … … 625 631 626 632 /* if mapping ROM to vmem failed then clean up and pass on error */ 627 633 if (rom_area < 0) { 634 dprintf(DRIVER_PREFIX ": ISA map ROM failed\n"); 628 635 delete_area(si->regs_area); 629 636 si->regs_area = -1; 630 637 return rom_area; … … 663 670 664 671 /*if failed with write combining try again without*/ 665 672 if (si->fb_area < 0) { 673 dprintf(DRIVER_PREFIX ": trying frame buffer without Write Combining" 674 "for %s\n", di->name); 666 675 si->fb_area = map_physical_memory(buffer, 667 676 /* WARNING: Nvidia needs to map framebuffer as viewed from PCI space! */ 668 677 (void *) di->pcii.u.h0.base_registers_pci[frame_buffer], … … 674 683 675 684 /* if there was an error, delete our other areas and pass on error*/ 676 685 if (si->fb_area < 0) { 686 dprintf(DRIVER_PREFIX ": failed to create frame buffer for %s\n", 687 di->name); 677 688 delete_area(si->regs_area); 678 689 si->regs_area = -1; 679 690 return si->fb_area; … … 778 789 pd->count = count; 779 790 /* terminate list of device names with a null pointer */ 780 791 pd->device_names[pd->count] = NULL; 792 if (count == 1) dprintf(DRIVER_PREFIX ": 1 device found\n"); 793 else dprintf(DRIVER_PREFIX ": %d devices found\n", count); 781 794 } 782 795 783 796 … … 885 898 ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & ~(B_PAGE_SIZE - 1)), B_FULL_LOCK, 886 899 B_USER_CLONEABLE_AREA); 887 900 if (di->shared_area < 0) { 901 dprintf(DRIVER_PREFIX ": failed to create shared info area for %s\n", 902 name); 888 903 /* return the error */ 889 904 result = di->shared_area; 890 905 goto done; … … 908 923 /* on error, abort */ 909 924 if (si->unaligned_dma_area < 0) 910 925 { 926 dprintf(DRIVER_PREFIX ": failed to create DMA cmd buffer for %s\n", 927 name); 911 928 /* free the already created shared_info area, and return the error */ 912 929 result = si->unaligned_dma_area; 913 930 goto free_shared; … … 926 943 B_READ_AREA | B_WRITE_AREA, &(si->dma_buffer)); 927 944 /* if failed with write combining try again without */ 928 945 if (si->dma_area < 0) { 946 dprintf(DRIVER_PREFIX ": trying DMA cmd buffer without Write Combining" 947 "for %s\n", name); 929 948 si->dma_area = map_physical_memory( 930 949 "NV aligned DMA cmd buffer", si->dma_buffer_pci, net_buf_size, 931 950 B_ANY_KERNEL_BLOCK_ADDRESS, … … 934 953 /* if there was an error, delete our other areas and pass on error*/ 935 954 if (si->dma_area < 0) 936 955 { 956 dprintf(DRIVER_PREFIX ": failed to map DMA cmd buffer for %s\n", name); 937 957 /* free the already created areas, and return the error */ 938 958 result = si->dma_area; 939 959 goto free_shared_and_uadma; … … 998 1018 999 1019 /* create a semaphore for vertical blank management */ 1000 1020 si->vblank = create_sem(0, di->name); 1001 if (si->vblank < 0) goto mark_as_open; 1021 if (si->vblank < 0) 1022 { 1023 dprintf(DRIVER_PREFIX ": failed to create semaphore for %s\n", name); 1024 goto mark_as_open; 1025 } 1002 1026 1003 1027 /* change the owner of the semaphores to the opener's team */ 1004 1028 /* this is required because apps can't aquire kernel semaphores */ … … 1034 1058 } 1035 1059 1036 1060 mark_as_open: 1061 dprintf(DRIVER_PREFIX ": opened hook for %s\n", name); 1037 1062 /* mark the device open */ 1038 1063 di->is_open++; 1039 1064 … … 1044 1069 1045 1070 1046 1071 free_shared_and_alldma: 1072 dprintf(DRIVER_PREFIX ": failed to map device\n"); 1047 1073 /* clean up our aligned DMA area */ 1048 1074 delete_area(si->dma_area); 1049 1075 si->dma_area = -1; … … 1162 1188 /* the only PUBLIC ioctl */ 1163 1189 case B_GET_ACCELERANT_SIGNATURE: 1164 1190 { 1191 dprintf(DRIVER_PREFIX ": %s\n", sSettings.accelerant); 1165 1192 strcpy((char* )buf, sSettings.accelerant); 1166 1193 result = B_OK; 1167 1194 break; … … 1347 1374 1348 1375 /* choke if we can't find the PCI bus */ 1349 1376 if (get_module(B_PCI_MODULE_NAME, (module_info **)&pci_bus) != B_OK) 1377 { 1378 dprintf(DRIVER_PREFIX ": failed to get PCI bus!\n"); 1350 1379 return B_ERROR; 1380 } 1351 1381 1352 1382 /* choke if we can't find the ISA bus */ 1353 1383 if (get_module(B_ISA_MODULE_NAME, (module_info **)&isa_bus) != B_OK) 1354 1384 { 1385 dprintf(DRIVER_PREFIX ": failed to get ISA bus!\n"); 1355 1386 put_module(B_PCI_MODULE_NAME); 1356 1387 return B_ERROR; 1357 1388 } … … 1383 1414 } 1384 1415 1385 1416 done: 1417 if (!found) dprintf(DRIVER_PREFIX ": no supported device found\n"); 1386 1418 /* put away the module manager */ 1387 1419 put_module(B_PCI_MODULE_NAME); 1388 1420 return found ? B_OK : B_ERROR; … … 1401 1433 char *end; 1402 1434 uint32 value; 1403 1435 1436 dprintf(DRIVER_PREFIX ": settings loaded\n"); 1437 1404 1438 // for driver 1405 1439 item = get_driver_parameter(settings, "accelerant", "", ""); 1406 1440 if (item[0] && strlen(item) < sizeof(sSettings.accelerant) - 1) … … 1464 1498 sSettings.ram_clk = value; 1465 1499 1466 1500 unload_driver_settings(settings); 1467 } 1501 } else dprintf(DRIVER_PREFIX ": using default settings\n"); 1468 1502 1469 1503 /* get a handle for the pci bus */ 1470 1504 if (get_module(B_PCI_MODULE_NAME, (module_info **)&pci_bus) != B_OK)