Bladeren bron

Kernel: Various APIC timer fixes

Tom 4 jaren geleden
bovenliggende
commit
8c764319ad
2 gewijzigde bestanden met toevoegingen van 1 en 2 verwijderingen
  1. 0 1
      Kernel/Interrupts/APIC.cpp
  2. 1 1
      Kernel/Time/APICTimer.cpp

+ 0 - 1
Kernel/Interrupts/APIC.cpp

@@ -588,7 +588,6 @@ void APIC::setup_local_timer(u32 ticks, TimerMode timer_mode, bool enable)
     default:
         ASSERT_NOT_REACHED();
     }
-    config |= 3; // divide by 16
     write_register(APIC_REG_TIMER_CONFIGURATION, config);
 
     if (timer_mode == TimerMode::Periodic)

+ 1 - 1
Kernel/Time/APICTimer.cpp

@@ -115,7 +115,7 @@ bool APICTimer::calibrate(HardwareTimerBase& calibration_source)
     auto delta_apic_count = end_apic_count - start_apic_count;
     m_timer_period = (delta_apic_count * apic.get_timer_divisor()) / ticks_in_100ms;
 
-    auto apic_freq = (delta_apic_count * 16) / apic.get_timer_divisor();
+    auto apic_freq = (delta_apic_count * apic.get_timer_divisor()) / apic.get_timer_divisor();
     if (apic_freq < 1000000) {
         klog() << "APICTimer: Frequency too slow!";
         return false;