diff options
Diffstat (limited to 'drivers/acpi/osl.c')
-rw-r--r-- | drivers/acpi/osl.c | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 21c1e7156bfe..739a4a6b3b9b 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -43,6 +43,7 @@ | |||
43 | 43 | ||
44 | #include <asm/io.h> | 44 | #include <asm/io.h> |
45 | #include <asm/uaccess.h> | 45 | #include <asm/uaccess.h> |
46 | #include <asm-generic/io-64-nonatomic-lo-hi.h> | ||
46 | 47 | ||
47 | #include "internal.h" | 48 | #include "internal.h" |
48 | 49 | ||
@@ -944,21 +945,6 @@ acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width) | |||
944 | 945 | ||
945 | EXPORT_SYMBOL(acpi_os_write_port); | 946 | EXPORT_SYMBOL(acpi_os_write_port); |
946 | 947 | ||
947 | #ifdef readq | ||
948 | static inline u64 read64(const volatile void __iomem *addr) | ||
949 | { | ||
950 | return readq(addr); | ||
951 | } | ||
952 | #else | ||
953 | static inline u64 read64(const volatile void __iomem *addr) | ||
954 | { | ||
955 | u64 l, h; | ||
956 | l = readl(addr); | ||
957 | h = readl(addr+4); | ||
958 | return l | (h << 32); | ||
959 | } | ||
960 | #endif | ||
961 | |||
962 | acpi_status | 948 | acpi_status |
963 | acpi_os_read_memory(acpi_physical_address phys_addr, u64 *value, u32 width) | 949 | acpi_os_read_memory(acpi_physical_address phys_addr, u64 *value, u32 width) |
964 | { | 950 | { |
@@ -991,7 +977,7 @@ acpi_os_read_memory(acpi_physical_address phys_addr, u64 *value, u32 width) | |||
991 | *(u32 *) value = readl(virt_addr); | 977 | *(u32 *) value = readl(virt_addr); |
992 | break; | 978 | break; |
993 | case 64: | 979 | case 64: |
994 | *(u64 *) value = read64(virt_addr); | 980 | *(u64 *) value = readq(virt_addr); |
995 | break; | 981 | break; |
996 | default: | 982 | default: |
997 | BUG(); | 983 | BUG(); |
@@ -1005,19 +991,6 @@ acpi_os_read_memory(acpi_physical_address phys_addr, u64 *value, u32 width) | |||
1005 | return AE_OK; | 991 | return AE_OK; |
1006 | } | 992 | } |
1007 | 993 | ||
1008 | #ifdef writeq | ||
1009 | static inline void write64(u64 val, volatile void __iomem *addr) | ||
1010 | { | ||
1011 | writeq(val, addr); | ||
1012 | } | ||
1013 | #else | ||
1014 | static inline void write64(u64 val, volatile void __iomem *addr) | ||
1015 | { | ||
1016 | writel(val, addr); | ||
1017 | writel(val>>32, addr+4); | ||
1018 | } | ||
1019 | #endif | ||
1020 | |||
1021 | acpi_status | 994 | acpi_status |
1022 | acpi_os_write_memory(acpi_physical_address phys_addr, u64 value, u32 width) | 995 | acpi_os_write_memory(acpi_physical_address phys_addr, u64 value, u32 width) |
1023 | { | 996 | { |
@@ -1046,7 +1019,7 @@ acpi_os_write_memory(acpi_physical_address phys_addr, u64 value, u32 width) | |||
1046 | writel(value, virt_addr); | 1019 | writel(value, virt_addr); |
1047 | break; | 1020 | break; |
1048 | case 64: | 1021 | case 64: |
1049 | write64(value, virt_addr); | 1022 | writeq(value, virt_addr); |
1050 | break; | 1023 | break; |
1051 | default: | 1024 | default: |
1052 | BUG(); | 1025 | BUG(); |