Lines Matching full:control
58 qemu_set_irq(tb->irq, tb->status && (tb->control & 4)); in timerblock_update_irq()
62 static inline uint32_t timerblock_scale(uint32_t control) in timerblock_scale() argument
64 return (((control >> 8) & 0xff) + 1) * 10; in timerblock_scale()
69 uint32_t control, uint64_t *count) in timerblock_set_count() argument
74 if ((control & 3) == 3 && (control & 0xff00) == 0 && *count == 0) { in timerblock_set_count()
82 uint32_t control, uint32_t load) in timerblock_run() argument
84 if ((control & 1) && ((control & 0xff00) || load != 0)) { in timerblock_run()
85 ptimer_run(timer, !(control & 2)); in timerblock_run()
95 if ((tb->control & 2) && (tb->control & 0xff00) == 0 && in timerblock_tick()
112 case 8: /* Control. */ in timerblock_read()
113 return tb->control; in timerblock_read()
125 uint32_t control = tb->control; in timerblock_write() local
132 if ((control & 1) && (control & 0xff00) == 0 && value == 0) { in timerblock_write()
136 timerblock_run(tb->timer, control, value); in timerblock_write()
144 if ((control & 1) && (control & 0xff00) == 0 && value == 0 && in timerblock_write()
145 (!(control & 2) || ptimer_get_limit(tb->timer) == 0)) { in timerblock_write()
148 timerblock_set_count(tb->timer, control, &value); in timerblock_write()
149 timerblock_run(tb->timer, control, value); in timerblock_write()
152 case 8: /* Control. */ in timerblock_write()
154 if ((control & 3) != (value & 3)) { in timerblock_write()
157 if ((control & 0xff00) != (value & 0xff00)) { in timerblock_write()
168 tb->control = value; in timerblock_write()
219 tb->control = 0; in timerblock_reset()
285 VMSTATE_UINT32(control, TimerBlock),