aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/hwtimer.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2013-08-08 03:29:51 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-08-13 07:13:21 -0400
commit1d82980c99ef2a91459ea39627d8114befb2c895 (patch)
tree8f1b9050a83c729102f2df545e5542d57e21e974 /drivers/acpi/acpica/hwtimer.c
parent2641f540800b47a1b9e9d8ce9d682fc15df088e2 (diff)
ACPICA: Make ACPI Power Management Timer (PM Timer) optional.
PM Timer is now optional. This support is already in Windows8 and "SHOULD" come out in ACPI 5.0A (if all goes well). The change doesn't affect Linux directly, because it does not rely on the presence of the PM timer. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/hwtimer.c')
-rw-r--r--drivers/acpi/acpica/hwtimer.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/acpi/acpica/hwtimer.c b/drivers/acpi/acpica/hwtimer.c
index 0c1a8bbd05d6..2d7d22ebc782 100644
--- a/drivers/acpi/acpica/hwtimer.c
+++ b/drivers/acpi/acpica/hwtimer.c
@@ -100,8 +100,13 @@ acpi_status acpi_get_timer(u32 * ticks)
100 return_ACPI_STATUS(AE_BAD_PARAMETER); 100 return_ACPI_STATUS(AE_BAD_PARAMETER);
101 } 101 }
102 102
103 status = acpi_hw_read(ticks, &acpi_gbl_FADT.xpm_timer_block); 103 /* ACPI 5.0A: PM Timer is optional */
104
105 if (!acpi_gbl_FADT.xpm_timer_block.address) {
106 return_ACPI_STATUS(AE_SUPPORT);
107 }
104 108
109 status = acpi_hw_read(ticks, &acpi_gbl_FADT.xpm_timer_block);
105 return_ACPI_STATUS(status); 110 return_ACPI_STATUS(status);
106} 111}
107 112
@@ -148,6 +153,12 @@ acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed)
148 return_ACPI_STATUS(AE_BAD_PARAMETER); 153 return_ACPI_STATUS(AE_BAD_PARAMETER);
149 } 154 }
150 155
156 /* ACPI 5.0A: PM Timer is optional */
157
158 if (!acpi_gbl_FADT.xpm_timer_block.address) {
159 return_ACPI_STATUS(AE_SUPPORT);
160 }
161
151 /* 162 /*
152 * Compute Tick Delta: 163 * Compute Tick Delta:
153 * Handle (max one) timer rollovers on 24-bit versus 32-bit timers. 164 * Handle (max one) timer rollovers on 24-bit versus 32-bit timers.