diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index 1e3f1f140ffb0e233b82873603c17f0fa13f36b0..a867c0dec9fec98fa6b116a188f96e72a01b881a 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c @@ -279,6 +279,15 @@ static void hpet_enable_legacy_int(void) static void hpet_legacy_clockevent_register(void) { + /* + * On the KH-50000 platform, enable dynamic HPET interrupts + * to prevent unnecessary wakeups of core 0 caused by broadcast timer events. + */ + if ((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR || + boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) && + (boot_cpu_data.x86 == 0x7 && boot_cpu_data.x86_model == 0x7b)) + hpet_clockevent.features |= CLOCK_EVT_FEAT_DYNIRQ; + /* Start HPET legacy interrupts */ hpet_enable_legacy_int();