intel_extreme and radeon_hd: some 64 bit fixes
This commit is contained in:
parent
82c2deb5b7
commit
c162f52eaa
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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__
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user