Changeset a35b458 in mainline for kernel/arch/mips32/src/interrupt.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/src/interrupt.c
r3061bc1 ra35b458 132 132 /* Count overflow detected */ 133 133 count_hi++; 134 134 135 135 lastcount = cp0_count_read(); 136 136 137 137 unsigned long drift = cp0_count_read() - nextcount; 138 138 while (drift > cp0_compare_value) { … … 140 140 CPU->missed_clock_ticks++; 141 141 } 142 142 143 143 nextcount = cp0_count_read() + cp0_compare_value - drift; 144 144 cp0_compare_write(nextcount); 145 145 146 146 /* 147 147 * We are holding a lock which prevents preemption. … … 151 151 clock(); 152 152 irq_spinlock_lock(&irq->lock, false); 153 153 154 154 if (virtual_timer_fnc != NULL) 155 155 virtual_timer_fnc(); … … 172 172 { 173 173 irq_init(IRQ_COUNT, IRQ_COUNT); 174 174 175 175 irq_initialize(&timer_irq); 176 176 timer_irq.inr = TIMER_IRQ; … … 178 178 timer_irq.handler = timer_irq_handler; 179 179 irq_register(&timer_irq); 180 180 181 181 timer_start(); 182 182 cp0_unmask_int(TIMER_IRQ); 183 183 184 184 #ifdef MACHINE_msim 185 185 irq_initialize(&dorder_irq); … … 188 188 dorder_irq.handler = dorder_irq_handler; 189 189 irq_register(&dorder_irq); 190 190 191 191 cp0_unmask_int(DORDER_IRQ); 192 192 #endif
Note:
See TracChangeset
for help on using the changeset viewer.