diff --git a/headers/private/graphics/intel_extreme/AreaKeeper.h b/headers/private/graphics/intel_extreme/AreaKeeper.h index 8e17dec24a..d604bb45cb 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 f7e7d22d5a..b8e969fba7 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 8e17dec24a..d604bb45cb 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 1f8aa4523c..df5e274859 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 6ab8422266..731b972b72 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 2727a16df0..4e87f10f78 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 7b95058931..5aa448c08e 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 bfbd21302d..2fa2ff48fc 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 a6a8c81178..8c4912d80d 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 8df7837870..4735393620 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 ffb1ddcf46..beb03523be 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 1609f9c308..4d048920f0 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 10135221e8..ad9d2edcb9 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