Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/drivers/it.c

    r24abb85d ra35b458  
    6868                it_irq.handler = it_interrupt;
    6969                irq_register(&it_irq);
    70                
     70
    7171                uint64_t base_freq;
    7272                base_freq  = ((bootinfo->freq_scale) & FREQ_NUMERATOR_MASK) >>
     
    7575                base_freq /= ((bootinfo->freq_scale) & FREQ_DENOMINATOR_MASK) >>
    7676                    FREQ_DENOMINATOR_SHIFT;
    77                
     77
    7878                it_delta = base_freq / HZ;
    7979        }
    80        
     80
    8181        /* Initialize Interval Timer external interrupt vector */
    8282        cr_itv_t itv;
    83        
     83
    8484        itv.value = itv_read();
    8585        itv.vector = INTERRUPT_TIMER;
    8686        itv.m = 0;
    8787        itv_write(itv.value);
    88        
     88
    8989        /* Set Interval Timer Counter to zero */
    9090        itc_write(0);
    91        
     91
    9292        /* Generate first Interval Timer interrupt in IT_DELTA ticks */
    9393        itm_write(IT_DELTA);
    94        
     94
    9595        /* Propagate changes */
    9696        srlz_d();
     
    113113{
    114114        eoi_write(EOI);
    115        
     115
    116116        int64_t itm = itm_read();
    117        
     117
    118118        while (true) {
    119119                int64_t itc = itc_read();
    120120                itc += IT_SERVICE_CLOCKS;
    121                
     121
    122122                itm += IT_DELTA;
    123123                if (itm - itc < 0)
     
    126126                        break;
    127127        }
    128        
     128
    129129        itm_write(itm);
    130130        srlz_d();  /* Propagate changes */
    131        
     131
    132132        /*
    133133         * We are holding a lock which prevents preemption.
Note: See TracChangeset for help on using the changeset viewer.