intel_extreme and radeon_hd: some 64 bit fixes

This commit is contained in:
Jérôme Duval 2013-05-04 20:20:33 +02:00
parent 82c2deb5b7
commit c162f52eaa
13 changed files with 29 additions and 26 deletions

View File

@ -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;
}

View File

@ -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;
};
//----------------------------------------------------------

View File

@ -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;
}

View File

@ -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 */

View File

@ -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;

View File

@ -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

View File

@ -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__

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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