Use pmap_mapdev()/pmap_unmapdev() to map device memory instead of using
AcpiOsMapMemory()/AcpiOsUnmapMemory() (-> pmap_mapbios()/pmap_unmapbios()) for AcpiOsReadMemory() and AcpiOsWriteMemory(). Although they do not sound too obvious, these functions are exclusively used to access memory mapped IO in ACPICA.
This commit is contained in:
parent
53abeaa9aa
commit
4006e89baa
@ -97,7 +97,7 @@ AcpiOsReadMemory(ACPI_PHYSICAL_ADDRESS Address, UINT32 *Value, UINT32 Width)
|
||||
{
|
||||
void *LogicalAddress;
|
||||
|
||||
LogicalAddress = AcpiOsMapMemory(Address, Width / 8);
|
||||
LogicalAddress = pmap_mapdev(Address, Width / 8);
|
||||
if (LogicalAddress == NULL)
|
||||
return (AE_NOT_EXIST);
|
||||
|
||||
@ -113,7 +113,7 @@ AcpiOsReadMemory(ACPI_PHYSICAL_ADDRESS Address, UINT32 *Value, UINT32 Width)
|
||||
break;
|
||||
}
|
||||
|
||||
AcpiOsUnmapMemory(LogicalAddress, Width / 8);
|
||||
pmap_unmapdev((vm_offset_t)LogicalAddress, Width / 8);
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
@ -123,7 +123,7 @@ AcpiOsWriteMemory(ACPI_PHYSICAL_ADDRESS Address, UINT32 Value, UINT32 Width)
|
||||
{
|
||||
void *LogicalAddress;
|
||||
|
||||
LogicalAddress = AcpiOsMapMemory(Address, Width / 8);
|
||||
LogicalAddress = pmap_mapdev(Address, Width / 8);
|
||||
if (LogicalAddress == NULL)
|
||||
return (AE_NOT_EXIST);
|
||||
|
||||
@ -139,7 +139,7 @@ AcpiOsWriteMemory(ACPI_PHYSICAL_ADDRESS Address, UINT32 Value, UINT32 Width)
|
||||
break;
|
||||
}
|
||||
|
||||
AcpiOsUnmapMemory(LogicalAddress, Width / 8);
|
||||
pmap_unmapdev((vm_offset_t)LogicalAddress, Width / 8);
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user