|
@@ -39,16 +39,13 @@ static u64 notrace gic_read_count(void)
|
|
|
|
|
|
static int gic_next_event(unsigned long delta, struct clock_event_device *evt)
|
|
static int gic_next_event(unsigned long delta, struct clock_event_device *evt)
|
|
{
|
|
{
|
|
- unsigned long flags;
|
|
|
|
u64 cnt;
|
|
u64 cnt;
|
|
int res;
|
|
int res;
|
|
|
|
|
|
cnt = gic_read_count();
|
|
cnt = gic_read_count();
|
|
cnt += (u64)delta;
|
|
cnt += (u64)delta;
|
|
- local_irq_save(flags);
|
|
|
|
write_gic_vl_other(mips_cm_vp_id(cpumask_first(evt->cpumask)));
|
|
write_gic_vl_other(mips_cm_vp_id(cpumask_first(evt->cpumask)));
|
|
write_gic_vo_compare(cnt);
|
|
write_gic_vo_compare(cnt);
|
|
- local_irq_restore(flags);
|
|
|
|
res = ((int)(gic_read_count() - cnt) >= 0) ? -ETIME : 0;
|
|
res = ((int)(gic_read_count() - cnt) >= 0) ? -ETIME : 0;
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|