Merge branch 'iomem' into release
This commit is contained in:
Коммит
dc3397437d
|
@ -636,17 +636,21 @@ EXPORT_SYMBOL(acpi_os_write_port);
|
|||
acpi_status
|
||||
acpi_os_read_memory(acpi_physical_address phys_addr, u32 * value, u32 width)
|
||||
{
|
||||
u32 dummy;
|
||||
void __iomem *virt_addr;
|
||||
int size = width / 8, unmap = 0;
|
||||
unsigned int size = width / 8;
|
||||
bool unmap = false;
|
||||
u32 dummy;
|
||||
|
||||
rcu_read_lock();
|
||||
virt_addr = acpi_map_vaddr_lookup(phys_addr, size);
|
||||
rcu_read_unlock();
|
||||
if (!virt_addr) {
|
||||
rcu_read_unlock();
|
||||
virt_addr = acpi_os_ioremap(phys_addr, size);
|
||||
unmap = 1;
|
||||
if (!virt_addr)
|
||||
return AE_BAD_ADDRESS;
|
||||
unmap = true;
|
||||
}
|
||||
|
||||
if (!value)
|
||||
value = &dummy;
|
||||
|
||||
|
@ -666,6 +670,8 @@ acpi_os_read_memory(acpi_physical_address phys_addr, u32 * value, u32 width)
|
|||
|
||||
if (unmap)
|
||||
iounmap(virt_addr);
|
||||
else
|
||||
rcu_read_unlock();
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
@ -674,14 +680,17 @@ acpi_status
|
|||
acpi_os_write_memory(acpi_physical_address phys_addr, u32 value, u32 width)
|
||||
{
|
||||
void __iomem *virt_addr;
|
||||
int size = width / 8, unmap = 0;
|
||||
unsigned int size = width / 8;
|
||||
bool unmap = false;
|
||||
|
||||
rcu_read_lock();
|
||||
virt_addr = acpi_map_vaddr_lookup(phys_addr, size);
|
||||
rcu_read_unlock();
|
||||
if (!virt_addr) {
|
||||
rcu_read_unlock();
|
||||
virt_addr = acpi_os_ioremap(phys_addr, size);
|
||||
unmap = 1;
|
||||
if (!virt_addr)
|
||||
return AE_BAD_ADDRESS;
|
||||
unmap = true;
|
||||
}
|
||||
|
||||
switch (width) {
|
||||
|
@ -700,6 +709,8 @@ acpi_os_write_memory(acpi_physical_address phys_addr, u32 value, u32 width)
|
|||
|
||||
if (unmap)
|
||||
iounmap(virt_addr);
|
||||
else
|
||||
rcu_read_unlock();
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче