Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 217686
b: refs/heads/master
c: 2971852
h: refs/heads/master
v: v3
  • Loading branch information
Myron Stowe authored and Len Brown committed Oct 25, 2010
1 parent b1cba8c commit 0050570
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 620242ae8c3d9c0b1a77451744fb2d855d1e7342
refs/heads/master: 29718521237a1b1607ea05b49243100ea2044337
38 changes: 38 additions & 0 deletions trunk/drivers/acpi/osl.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,44 @@ void __init early_acpi_os_unmap_memory(void __iomem *virt, acpi_size size)
__acpi_unmap_table(virt, size);
}

int acpi_os_map_generic_address(struct acpi_generic_address *addr)
{
void __iomem *virt;

if (addr->space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY)
return 0;

if (!addr->address || !addr->bit_width)
return -EINVAL;

virt = acpi_os_map_memory(addr->address, addr->bit_width / 8);
if (!virt)
return -EIO;

return 0;
}
EXPORT_SYMBOL_GPL(acpi_os_map_generic_address);

void acpi_os_unmap_generic_address(struct acpi_generic_address *addr)
{
void __iomem *virt;
unsigned long flags;
acpi_size size = addr->bit_width / 8;

if (addr->space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY)
return;

if (!addr->address || !addr->bit_width)
return;

spin_lock_irqsave(&acpi_ioremap_lock, flags);
virt = acpi_map_vaddr_lookup(addr->address, size);
spin_unlock_irqrestore(&acpi_ioremap_lock, flags);

acpi_os_unmap_memory(virt, size);
}
EXPORT_SYMBOL_GPL(acpi_os_unmap_generic_address);

#ifdef ACPI_FUTURE_USAGE
acpi_status
acpi_os_get_physical_address(void *virt, acpi_physical_address * phys)
Expand Down
3 changes: 3 additions & 0 deletions trunk/include/linux/acpi.h
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,9 @@ extern acpi_status acpi_pci_osc_control_set(acpi_handle handle,
u32 *mask, u32 req);
extern void acpi_early_init(void);

int acpi_os_map_generic_address(struct acpi_generic_address *addr);
void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);

#else /* !CONFIG_ACPI */

#define acpi_disabled 1
Expand Down

0 comments on commit 0050570

Please sign in to comment.