diff --git a/headers/private/graphics/nvidia/DriverInterface.h b/headers/private/graphics/nvidia/DriverInterface.h index 48950327fb..c041eac5fc 100644 --- a/headers/private/graphics/nvidia/DriverInterface.h +++ b/headers/private/graphics/nvidia/DriverInterface.h @@ -31,7 +31,7 @@ typedef struct { int32 ben; } benaphore; -#define INIT_BEN(x) x.sem = create_sem(0, "G400 "#x" benaphore"); x.ben = 0; +#define INIT_BEN(x) x.sem = create_sem(0, "NV "#x" benaphore"); x.ben = 0; #define AQUIRE_BEN(x) if((atomic_add(&(x.ben), 1)) >= 1) acquire_sem(x.sem); #define RELEASE_BEN(x) if((atomic_add(&(x.ben), -1)) > 1) release_sem(x.sem); #define DELETE_BEN(x) delete_sem(x.sem); @@ -267,11 +267,7 @@ typedef struct { } ps; /* mirror of the ROM (copied in driver, because may not be mapped permanently) */ - struct - { - uint8 mirror[128 * 1024]; - uint32 size; - } rom; + uint8 rom_mirror[65536]; /* some configuration settings from ~/config/settings/kernel/drivers/nv.settings if exists */ settings settings; diff --git a/src/add-ons/accelerants/nvidia/engine/nv_general.c b/src/add-ons/accelerants/nvidia/engine/nv_general.c index 6441eca790..8d910ff35b 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_general.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_general.c @@ -80,7 +80,7 @@ status_t nv_general_powerup() { status_t status; - LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.15 running.\n")); + LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.16 running.\n")); /* preset no laptop */ si->ps.laptop = false; diff --git a/src/add-ons/accelerants/nvidia/engine/nv_info.c b/src/add-ons/accelerants/nvidia/engine/nv_info.c index 40c8a5cd1a..855471e2a5 100644 --- a/src/add-ons/accelerants/nvidia/engine/nv_info.c +++ b/src/add-ons/accelerants/nvidia/engine/nv_info.c @@ -33,11 +33,9 @@ status_t parse_pins () /* preset PINS read status to failed */ si->ps.pins_status = B_ERROR; - LOG(2,("INFO: cardROM size: %dKb\n", (si->rom.size / 1024))); - /* check the validity of PINS */ LOG(2,("INFO: Reading PINS info\n")); - rom = (uint8 *) si->rom.mirror; + rom = (uint8 *) si->rom_mirror; /* check BIOS signature - this is defined in the PCI standard */ if (rom[0]!=0x55 || rom[1]!=0xaa) { diff --git a/src/add-ons/kernel/drivers/graphics/nvidia/driver.c b/src/add-ons/kernel/drivers/graphics/nvidia/driver.c index 5c9edfae66..3144d76a72 100644 --- a/src/add-ons/kernel/drivers/graphics/nvidia/driver.c +++ b/src/add-ons/kernel/drivers/graphics/nvidia/driver.c @@ -456,7 +456,6 @@ static status_t map_device(device_info *di) /* variables for making copy of ROM */ char * rom_temp; area_id rom_area; - uint32 rom_size; /* Nvidia cards have registers in [0] and framebuffer in [1] */ int registers = 0; @@ -529,14 +528,11 @@ static status_t map_device(device_info *di) return rom_area; } - /* dump ROM to file if selected in nv.settings */ - if (current_settings.dumprom) dumprom (rom_temp, di->pcii.u.h0.rom_size); - /* we reserved 128Kb for the ROM mirror, but note actual size for reference */ - si->rom.size = di->pcii.u.h0.rom_size; - /* make a copy of ROM for future reference, but truncate our mirror if needed */ - rom_size = si->rom.size; - if (rom_size > (128 * 1024)) rom_size = (128 * 1024); - memcpy (si->rom.mirror, rom_temp, rom_size); + /* dump ROM to file if selected in nv.settings + * (ROM is always 64Kb: checked TNT1 - FX5950) */ + if (current_settings.dumprom) dumprom (rom_temp, 65536); + /* make a copy of ROM for future reference */ + memcpy (si->rom_mirror, rom_temp, 65536); /* disable ROM decoding - this is defined in the PCI standard, and delete the area */ tmpUlong = get_pci(PCI_rom_base, 4);