37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
|
# HG changeset patch
|
||
|
# User Jan Beulich <jbeulich@suse.com>
|
||
|
# Date 1348816934 -7200
|
||
|
# Node ID 6a581212909478bba0c7b4dfc6c370270dee825c
|
||
|
# Parent 6bf8b882df8f66ab5500e4d9cc0c3338ae5a6cb9
|
||
|
x86/HPET: don't disable interrupt delivery right after setting it up
|
||
|
|
||
|
We shouldn't clear HPET_TN_FSB right after we (indirectly, via
|
||
|
request_irq()) enabled it for the channels we intend to use for
|
||
|
broadcasts.
|
||
|
|
||
|
This fixes a regression introduced by c/s 25103:0b0e42dc4f0a.
|
||
|
|
||
|
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||
|
Acked-by: Keir Fraser <keir@xen.org>
|
||
|
|
||
|
--- a/xen/arch/x86/hpet.c
|
||
|
+++ b/xen/arch/x86/hpet.c
|
||
|
@@ -533,7 +533,7 @@ void __init hpet_broadcast_init(void)
|
||
|
{
|
||
|
/* set HPET Tn as oneshot */
|
||
|
cfg = hpet_read32(HPET_Tn_CFG(hpet_events[i].idx));
|
||
|
- cfg &= ~(HPET_TN_LEVEL | HPET_TN_PERIODIC | HPET_TN_FSB);
|
||
|
+ cfg &= ~(HPET_TN_LEVEL | HPET_TN_PERIODIC);
|
||
|
cfg |= HPET_TN_ENABLE | HPET_TN_32BIT;
|
||
|
hpet_write32(cfg, HPET_Tn_CFG(hpet_events[i].idx));
|
||
|
|
||
|
@@ -590,7 +590,7 @@ void hpet_broadcast_resume(void)
|
||
|
|
||
|
/* set HPET Tn as oneshot */
|
||
|
cfg = hpet_read32(HPET_Tn_CFG(hpet_events[i].idx));
|
||
|
- cfg &= ~(HPET_TN_LEVEL | HPET_TN_PERIODIC | HPET_TN_FSB);
|
||
|
+ cfg &= ~(HPET_TN_LEVEL | HPET_TN_PERIODIC);
|
||
|
cfg |= HPET_TN_ENABLE | HPET_TN_32BIT;
|
||
|
hpet_write32(cfg, HPET_Tn_CFG(hpet_events[i].idx));
|
||
|
|