summaryrefslogtreecommitdiff
path: root/kernel/drivers/pit.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/pit.c')
-rw-r--r--kernel/drivers/pit.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c
index 30fd3ed..41c0d2a 100644
--- a/kernel/drivers/pit.c
+++ b/kernel/drivers/pit.c
@@ -44,16 +44,14 @@ void set_pit_count(u16 _hertz) {
}
void int_clock(reg_t *regs) {
- EOI(0x20);
- pit_counter++;
- if (pit_counter * 1000 >= hertz) {
- pit_counter = 0;
- clock_num_ms_ticks += 1000 / hertz;
- }
+ clock_num_ms_ticks++;
switch_counter++;
- if (switch_counter * 500 >= hertz) {
+ if (switch_counter >= hertz) {
+ EOI(0x20);
switch_counter = 0;
switch_task();
+ } else {
+ EOI(0x20);
}
}