hrev45621 adds 2 changesets to branch 'master' old head: f756b25e8a83e5485162a48ebef70f226baa376d new head: c162f52eaa83ca2cf01f61c4fb6353d76e10caa1 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=c162f52+%5Ef756b25 ---------------------------------------------------------------------------- 82c2deb: agp_gart: some 64 bit fixes c162f52: intel_extreme and radeon_hd: some 64 bit fixes [ Jérôme Duval <jerome.duval@xxxxxxxxx> ] ---------------------------------------------------------------------------- 14 files changed, 36 insertions(+), 33 deletions(-) headers/private/graphics/intel_extreme/AreaKeeper.h | 6 +++--- .../private/graphics/intel_extreme/intel_extreme.h | 4 ++-- headers/private/graphics/radeon_hd/AreaKeeper.h | 6 +++--- src/add-ons/accelerants/intel_extreme/accelerant.h | 4 ++-- src/add-ons/accelerants/intel_extreme/memory.cpp | 4 ++-- src/add-ons/accelerants/intel_extreme/mode.cpp | 15 +++++++++------ src/add-ons/kernel/bus_managers/agp_gart/agp_gart.cpp | 14 +++++++------- .../kernel/drivers/graphics/intel_extreme/device.cpp | 2 +- .../kernel/drivers/graphics/intel_extreme/driver.cpp | 2 +- .../drivers/graphics/intel_extreme/intel_extreme.cpp | 2 +- .../graphics/intel_extreme/intel_extreme_private.h | 2 +- .../kernel/drivers/graphics/radeon_hd/driver.cpp | 2 +- .../kernel/drivers/graphics/radeon_hd/radeon_hd.cpp | 4 ++-- .../drivers/graphics/radeon_hd/radeon_hd_private.h | 2 +- ############################################################################ Commit: 82c2deb5b76c5715f74fcb35aea4ceb2c5a77336 URL: http://cgit.haiku-os.org/haiku/commit/?id=82c2deb Author: Jérôme Duval <jerome.duval@xxxxxxxxx> Date: Sat May 4 17:50:17 2013 UTC agp_gart: some 64 bit fixes ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/bus_managers/agp_gart/agp_gart.cpp b/src/add-ons/kernel/bus_managers/agp_gart/agp_gart.cpp index cc43abb..da9234e 100644 --- a/src/add-ons/kernel/bus_managers/agp_gart/agp_gart.cpp +++ b/src/add-ons/kernel/bus_managers/agp_gart/agp_gart.cpp @@ -248,7 +248,7 @@ check_capabilities(agp_device_info &deviceInfo, uint32 &command) agpStatus = fix_rate_support(agpStatus); } - TRACE("device %u.%u.%u has AGP capabilities %lx\n", deviceInfo.info.bus, + TRACE("device %u.%u.%u has AGP capabilities %" B_PRIx32 "\n", deviceInfo.info.bus, deviceInfo.info.device, deviceInfo.info.function, agpStatus); // block non-supported AGP modes @@ -482,8 +482,8 @@ Aperture::CreateMemory(size_t size, size_t alignment, uint32 flags) return NULL; } - TRACE("create memory %p, base %lx, size %lx, flags %lx\n", memory, - memory->base, memory->size, flags); + TRACE("create memory %p, base %" B_PRIxADDR ", size %" B_PRIxSIZE + ", flags %" B_PRIx32 "\n", memory, memory->base, memory->size, flags); memory->flags = flags; #if defined(__HAIKU__) && !defined(GART_TEST) @@ -852,7 +852,7 @@ Aperture::_Insert(aperture_memory *memory, size_t size, size_t alignment, status_t get_nth_agp_info(uint32 index, agp_info *info) { - TRACE("get_nth_agp_info(index %lu)\n", index); + TRACE("get_nth_agp_info(index %" B_PRIu32 ")\n", index); if (index >= sDeviceCount) return B_BAD_VALUE; @@ -888,7 +888,7 @@ release_agp(void) uint32 set_agp_mode(uint32 command) { - TRACE("set_agp_mode(command %lx)\n", command); + TRACE("set_agp_mode(command %" B_PRIx32 ")\n", command); if ((command & AGP_ENABLE) == 0) { set_pci_mode(); @@ -912,7 +912,7 @@ set_agp_mode(uint32 command) } command = fix_rate_command(command); - TRACE("set AGP command %lx on all capable devices.\n", command); + TRACE("set AGP command %" B_PRIx32 " on all capable devices.\n", command); // The order of programming differs for enabling/disabling AGP mode // (see AGP specification) @@ -1213,7 +1213,7 @@ agp_init(void) sDeviceCount++; } - TRACE("found %ld AGP devices\n", sDeviceCount); + TRACE("found %" B_PRId32 " AGP devices\n", sDeviceCount); // Since there can be custom aperture modules (for memory management only), // we always succeed if we could get the resources we need. ############################################################################ Revision: hrev45621 Commit: c162f52eaa83ca2cf01f61c4fb6353d76e10caa1 URL: http://cgit.haiku-os.org/haiku/commit/?id=c162f52 Author: Jérôme Duval <jerome.duval@xxxxxxxxx> Date: Sat May 4 18:20:33 2013 UTC intel_extreme and radeon_hd: some 64 bit fixes ---------------------------------------------------------------------------- diff --git a/headers/private/graphics/intel_extreme/AreaKeeper.h b/headers/private/graphics/intel_extreme/AreaKeeper.h index 8e17dec..d604bb4 100644 --- a/headers/private/graphics/intel_extreme/AreaKeeper.h +++ b/headers/private/graphics/intel_extreme/AreaKeeper.h @@ -22,7 +22,7 @@ class AreaKeeper { area_id Create(const char *name, void **_virtualAddress, uint32 spec, size_t size, uint32 lock, uint32 protection); - area_id Map(const char *name, void *physicalAddress, size_t numBytes, + area_id Map(const char *name, addr_t physicalAddress, size_t numBytes, uint32 spec, uint32 protection, void **_virtualAddress); status_t InitCheck() { return fArea < B_OK ? (status_t)fArea : B_OK; } @@ -57,10 +57,10 @@ AreaKeeper::Create(const char *name, void **_virtualAddress, uint32 spec, area_id -AreaKeeper::Map(const char *name, void *physicalAddress, size_t numBytes, +AreaKeeper::Map(const char *name, addr_t physicalAddress, size_t numBytes, uint32 spec, uint32 protection, void **_virtualAddress) { - fArea = map_physical_memory(name, (addr_t)physicalAddress, numBytes, spec, + fArea = map_physical_memory(name, physicalAddress, numBytes, spec, protection, _virtualAddress); return fArea; } diff --git a/headers/private/graphics/intel_extreme/intel_extreme.h b/headers/private/graphics/intel_extreme/intel_extreme.h index f7e7d22..b8e969f 100644 --- a/headers/private/graphics/intel_extreme/intel_extreme.h +++ b/headers/private/graphics/intel_extreme/intel_extreme.h @@ -226,13 +226,13 @@ struct intel_allocate_graphics_memory { uint32 size; uint32 alignment; uint32 flags; - uint32 buffer_base; + addr_t buffer_base; }; // free graphics memory struct intel_free_graphics_memory { uint32 magic; - uint32 buffer_base; + addr_t buffer_base; }; //---------------------------------------------------------- diff --git a/headers/private/graphics/radeon_hd/AreaKeeper.h b/headers/private/graphics/radeon_hd/AreaKeeper.h index 8e17dec..d604bb4 100644 --- a/headers/private/graphics/radeon_hd/AreaKeeper.h +++ b/headers/private/graphics/radeon_hd/AreaKeeper.h @@ -22,7 +22,7 @@ class AreaKeeper { area_id Create(const char *name, void **_virtualAddress, uint32 spec, size_t size, uint32 lock, uint32 protection); - area_id Map(const char *name, void *physicalAddress, size_t numBytes, + area_id Map(const char *name, addr_t physicalAddress, size_t numBytes, uint32 spec, uint32 protection, void **_virtualAddress); status_t InitCheck() { return fArea < B_OK ? (status_t)fArea : B_OK; } @@ -57,10 +57,10 @@ AreaKeeper::Create(const char *name, void **_virtualAddress, uint32 spec, area_id -AreaKeeper::Map(const char *name, void *physicalAddress, size_t numBytes, +AreaKeeper::Map(const char *name, addr_t physicalAddress, size_t numBytes, uint32 spec, uint32 protection, void **_virtualAddress) { - fArea = map_physical_memory(name, (addr_t)physicalAddress, numBytes, spec, + fArea = map_physical_memory(name, physicalAddress, numBytes, spec, protection, _virtualAddress); return fArea; } diff --git a/src/add-ons/accelerants/intel_extreme/accelerant.h b/src/add-ons/accelerants/intel_extreme/accelerant.h index 1f8aa45..df5e274 100644 --- a/src/add-ons/accelerants/intel_extreme/accelerant.h +++ b/src/add-ons/accelerants/intel_extreme/accelerant.h @@ -105,7 +105,7 @@ extern void save_lvds_mode(void); extern status_t create_mode_list(void); // memory.cpp -extern void intel_free_memory(uint32 base); -extern status_t intel_allocate_memory(size_t size, uint32 flags, uint32 &base); +extern void intel_free_memory(addr_t base); +extern status_t intel_allocate_memory(size_t size, uint32 flags, addr_t &base); #endif /* INTEL_EXTREME_ACCELERANT_H */ diff --git a/src/add-ons/accelerants/intel_extreme/memory.cpp b/src/add-ons/accelerants/intel_extreme/memory.cpp index 6ab8422..731b972 100644 --- a/src/add-ons/accelerants/intel_extreme/memory.cpp +++ b/src/add-ons/accelerants/intel_extreme/memory.cpp @@ -27,7 +27,7 @@ void -intel_free_memory(uint32 base) +intel_free_memory(addr_t base) { if (base == 0) return; @@ -42,7 +42,7 @@ intel_free_memory(uint32 base) status_t -intel_allocate_memory(size_t size, uint32 flags, uint32 &base) +intel_allocate_memory(size_t size, uint32 flags, addr_t &base) { intel_allocate_graphics_memory allocMemory; allocMemory.magic = INTEL_PRIVATE_DATA_MAGIC; diff --git a/src/add-ons/accelerants/intel_extreme/mode.cpp b/src/add-ons/accelerants/intel_extreme/mode.cpp index 2727a16..4e87f10 100644 --- a/src/add-ons/accelerants/intel_extreme/mode.cpp +++ b/src/add-ons/accelerants/intel_extreme/mode.cpp @@ -77,7 +77,7 @@ struct pll_limits { static status_t get_i2c_signals(void* cookie, int* _clock, int* _data) { - uint32 ioRegister = (uint32)cookie; + uint32 ioRegister = (uint32)(addr_t)cookie; uint32 value = read32(ioRegister); *_clock = (value & I2C_CLOCK_VALUE_IN) != 0; @@ -90,7 +90,7 @@ get_i2c_signals(void* cookie, int* _clock, int* _data) static status_t set_i2c_signals(void* cookie, int clock, int data) { - uint32 ioRegister = (uint32)cookie; + uint32 ioRegister = (uint32)(addr_t)cookie; uint32 value; if (gInfo->shared_info->device_type.InGroup(INTEL_TYPE_83x)) { @@ -488,17 +488,20 @@ sanitize_display_mode(display_mode& mode) // TODO: verify constraints - these are more or less taken from the // radeon driver! - const display_constraints constraints = { + display_constraints constraints = { // resolution 320, 8192, 200, 4096, // pixel clock gInfo->shared_info->pll_info.min_frequency, gInfo->shared_info->pll_info.max_frequency, // horizontal - {olderCard ? 2 : 1, 0, 8160, 32, 8192, 0, 8192}, + {1, 0, 8160, 32, 8192, 0, 8192}, {1, 1, 4092, 2, 63, 1, 4096} }; + if (olderCard) + constraints.horizontal_timing.resolution = 2; + return sanitize_display_mode(mode, constraints, gInfo->has_edid ? &gInfo->edid_info : NULL); } @@ -563,7 +566,7 @@ status_t create_mode_list(void) { i2c_bus bus; - bus.cookie = (void*)INTEL_I2C_IO_A; + bus.cookie = (void*)(addr_t)INTEL_I2C_IO_A; bus.set_signals = &set_i2c_signals; bus.get_signals = &get_i2c_signals; ddc2_init_timing(&bus); @@ -762,7 +765,7 @@ if (first) { intel_free_memory(sharedInfo.frame_buffer); - uint32 base; + addr_t base; if (intel_allocate_memory(bytesPerRow * target.virtual_height, 0, base) < B_OK) { // oh, how did that happen? Unfortunately, there is no really good way diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp index 7b95058..5aa448c 100644 --- a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp +++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp @@ -231,7 +231,7 @@ device_ioctl(void* data, uint32 op, void* buffer, size_t bufferLength) status_t status = intel_allocate_memory(*info, allocMemory.size, allocMemory.alignment, allocMemory.flags, - (addr_t* )&allocMemory.buffer_base); + &allocMemory.buffer_base); if (status == B_OK) { // copy result #ifdef __HAIKU__ diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/driver.cpp b/src/add-ons/kernel/drivers/graphics/intel_extreme/driver.cpp index bfbd213..2fa2ff4 100644 --- a/src/add-ons/kernel/drivers/graphics/intel_extreme/driver.cpp +++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/driver.cpp @@ -224,7 +224,7 @@ init_driver(void) gDeviceInfo[found]->init_status = B_NO_INIT; gDeviceInfo[found]->id = found; gDeviceInfo[found]->pci = info; - gDeviceInfo[found]->registers = (uint8*)info->u.h0.base_registers[0]; + gDeviceInfo[found]->registers = info->u.h0.base_registers[0]; gDeviceInfo[found]->device_identifier = kSupportedDevices[type].name; gDeviceInfo[found]->device_type = kSupportedDevices[type].type; diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp b/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp index a6a8c81..8c4912d 100644 --- a/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp +++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp @@ -239,7 +239,7 @@ intel_extreme_init(intel_info &info) AreaKeeper mmioMapper; info.registers_area = mmioMapper.Map("intel extreme mmio", - (void*)info.pci->u.h0.base_registers[mmioIndex], + (addr_t)info.pci->u.h0.base_registers[mmioIndex], info.pci->u.h0.base_register_sizes[mmioIndex], B_ANY_KERNEL_ADDRESS, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA, (void**)&info.registers); diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme_private.h b/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme_private.h index 8df7837..4735393 100644 --- a/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme_private.h +++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme_private.h @@ -25,7 +25,7 @@ struct intel_info { addr_t aperture_base; aperture_id aperture; - uint8* registers; + addr_t registers; area_id registers_area; struct intel_shared_info* shared_info; diff --git a/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp b/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp index ffb1ddc..beb0352 100644 --- a/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp +++ b/src/add-ons/kernel/drivers/graphics/radeon_hd/driver.cpp @@ -436,7 +436,7 @@ init_driver(void) gDeviceInfo[found]->init_status = B_NO_INIT; gDeviceInfo[found]->id = found; gDeviceInfo[found]->pci = info; - gDeviceInfo[found]->registers = (uint8*)info->u.h0.base_registers[0]; + gDeviceInfo[found]->registers = info->u.h0.base_registers[0]; gDeviceInfo[found]->pciID = kSupportedDevices[type].pciID; gDeviceInfo[found]->deviceName = kSupportedDevices[type].deviceName; gDeviceInfo[found]->chipsetID = kSupportedDevices[type].chipsetID; diff --git a/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd.cpp b/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd.cpp index 1609f9c..4d04892 100644 --- a/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd.cpp +++ b/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd.cpp @@ -592,7 +592,7 @@ radeon_hd_init(radeon_info &info) // *** Map Memory mapped IO AreaKeeper mmioMapper; info.registers_area = mmioMapper.Map("radeon hd mmio", - (void*)info.pci->u.h0.base_registers[PCI_BAR_MMIO], + info.pci->u.h0.base_registers[PCI_BAR_MMIO], info.pci->u.h0.base_register_sizes[PCI_BAR_MMIO], B_ANY_KERNEL_ADDRESS, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA, (void**)&info.registers); @@ -665,7 +665,7 @@ radeon_hd_init(radeon_info &info) // *** Framebuffer mapping AreaKeeper frambufferMapper; info.framebuffer_area = frambufferMapper.Map("radeon hd frame buffer", - (void*)info.pci->u.h0.base_registers[PCI_BAR_FB], + info.pci->u.h0.base_registers[PCI_BAR_FB], info.shared_info->frame_buffer_size * 1024, B_ANY_KERNEL_ADDRESS, B_READ_AREA | B_WRITE_AREA, (void**)&info.shared_info->frame_buffer); diff --git a/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd_private.h b/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd_private.h index 1013522..ad9d2ed 100644 --- a/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd_private.h +++ b/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd_private.h @@ -34,7 +34,7 @@ struct radeon_info { status_t init_status; int32 id; pci_info* pci; - uint8* registers; + addr_t registers; uint8* atom_buffer; // buffer for atombios