dw_ced 84 drivers/clocksource/dw_apb_timer.c void dw_apb_clockevent_pause(struct dw_apb_clock_event_device *dw_ced) dw_ced 86 drivers/clocksource/dw_apb_timer.c disable_irq(dw_ced->timer.irq); dw_ced 87 drivers/clocksource/dw_apb_timer.c apbt_disable_int(&dw_ced->timer); dw_ced 98 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = ced_to_dw_apb_ced(evt); dw_ced 105 drivers/clocksource/dw_apb_timer.c if (dw_ced->eoi) dw_ced 106 drivers/clocksource/dw_apb_timer.c dw_ced->eoi(&dw_ced->timer); dw_ced 123 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = ced_to_dw_apb_ced(evt); dw_ced 129 drivers/clocksource/dw_apb_timer.c ctrl = apbt_readl(&dw_ced->timer, APBTMR_N_CONTROL); dw_ced 131 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 137 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = ced_to_dw_apb_ced(evt); dw_ced 143 drivers/clocksource/dw_apb_timer.c ctrl = apbt_readl(&dw_ced->timer, APBTMR_N_CONTROL); dw_ced 152 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 154 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 160 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ~0, APBTMR_N_LOAD_COUNT); dw_ced 163 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 169 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = ced_to_dw_apb_ced(evt); dw_ced 170 drivers/clocksource/dw_apb_timer.c unsigned long period = DIV_ROUND_UP(dw_ced->timer.freq, HZ); dw_ced 176 drivers/clocksource/dw_apb_timer.c ctrl = apbt_readl(&dw_ced->timer, APBTMR_N_CONTROL); dw_ced 178 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 184 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 187 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, period, APBTMR_N_LOAD_COUNT); dw_ced 189 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 195 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = ced_to_dw_apb_ced(evt); dw_ced 200 drivers/clocksource/dw_apb_timer.c apbt_enable_int(&dw_ced->timer); dw_ced 208 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = ced_to_dw_apb_ced(evt); dw_ced 211 drivers/clocksource/dw_apb_timer.c ctrl = apbt_readl_relaxed(&dw_ced->timer, APBTMR_N_CONTROL); dw_ced 213 drivers/clocksource/dw_apb_timer.c apbt_writel_relaxed(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 215 drivers/clocksource/dw_apb_timer.c apbt_writel_relaxed(&dw_ced->timer, delta, APBTMR_N_LOAD_COUNT); dw_ced 217 drivers/clocksource/dw_apb_timer.c apbt_writel_relaxed(&dw_ced->timer, ctrl, APBTMR_N_CONTROL); dw_ced 243 drivers/clocksource/dw_apb_timer.c struct dw_apb_clock_event_device *dw_ced = dw_ced 244 drivers/clocksource/dw_apb_timer.c kzalloc(sizeof(*dw_ced), GFP_KERNEL); dw_ced 247 drivers/clocksource/dw_apb_timer.c if (!dw_ced) dw_ced 250 drivers/clocksource/dw_apb_timer.c dw_ced->timer.base = base; dw_ced 251 drivers/clocksource/dw_apb_timer.c dw_ced->timer.irq = irq; dw_ced 252 drivers/clocksource/dw_apb_timer.c dw_ced->timer.freq = freq; dw_ced 254 drivers/clocksource/dw_apb_timer.c clockevents_calc_mult_shift(&dw_ced->ced, freq, APBT_MIN_PERIOD); dw_ced 255 drivers/clocksource/dw_apb_timer.c dw_ced->ced.max_delta_ns = clockevent_delta2ns(0x7fffffff, dw_ced 256 drivers/clocksource/dw_apb_timer.c &dw_ced->ced); dw_ced 257 drivers/clocksource/dw_apb_timer.c dw_ced->ced.max_delta_ticks = 0x7fffffff; dw_ced 258 drivers/clocksource/dw_apb_timer.c dw_ced->ced.min_delta_ns = clockevent_delta2ns(5000, &dw_ced->ced); dw_ced 259 drivers/clocksource/dw_apb_timer.c dw_ced->ced.min_delta_ticks = 5000; dw_ced 260 drivers/clocksource/dw_apb_timer.c dw_ced->ced.cpumask = cpumask_of(cpu); dw_ced 261 drivers/clocksource/dw_apb_timer.c dw_ced->ced.features = CLOCK_EVT_FEAT_PERIODIC | dw_ced 263 drivers/clocksource/dw_apb_timer.c dw_ced->ced.set_state_shutdown = apbt_shutdown; dw_ced 264 drivers/clocksource/dw_apb_timer.c dw_ced->ced.set_state_periodic = apbt_set_periodic; dw_ced 265 drivers/clocksource/dw_apb_timer.c dw_ced->ced.set_state_oneshot = apbt_set_oneshot; dw_ced 266 drivers/clocksource/dw_apb_timer.c dw_ced->ced.set_state_oneshot_stopped = apbt_shutdown; dw_ced 267 drivers/clocksource/dw_apb_timer.c dw_ced->ced.tick_resume = apbt_resume; dw_ced 268 drivers/clocksource/dw_apb_timer.c dw_ced->ced.set_next_event = apbt_next_event; dw_ced 269 drivers/clocksource/dw_apb_timer.c dw_ced->ced.irq = dw_ced->timer.irq; dw_ced 270 drivers/clocksource/dw_apb_timer.c dw_ced->ced.rating = rating; dw_ced 271 drivers/clocksource/dw_apb_timer.c dw_ced->ced.name = name; dw_ced 273 drivers/clocksource/dw_apb_timer.c dw_ced->irqaction.name = dw_ced->ced.name; dw_ced 274 drivers/clocksource/dw_apb_timer.c dw_ced->irqaction.handler = dw_apb_clockevent_irq; dw_ced 275 drivers/clocksource/dw_apb_timer.c dw_ced->irqaction.dev_id = &dw_ced->ced; dw_ced 276 drivers/clocksource/dw_apb_timer.c dw_ced->irqaction.irq = irq; dw_ced 277 drivers/clocksource/dw_apb_timer.c dw_ced->irqaction.flags = IRQF_TIMER | IRQF_IRQPOLL | dw_ced 280 drivers/clocksource/dw_apb_timer.c dw_ced->eoi = apbt_eoi; dw_ced 281 drivers/clocksource/dw_apb_timer.c err = setup_irq(irq, &dw_ced->irqaction); dw_ced 284 drivers/clocksource/dw_apb_timer.c kfree(dw_ced); dw_ced 285 drivers/clocksource/dw_apb_timer.c dw_ced = NULL; dw_ced 288 drivers/clocksource/dw_apb_timer.c return dw_ced; dw_ced 296 drivers/clocksource/dw_apb_timer.c void dw_apb_clockevent_resume(struct dw_apb_clock_event_device *dw_ced) dw_ced 298 drivers/clocksource/dw_apb_timer.c enable_irq(dw_ced->timer.irq); dw_ced 306 drivers/clocksource/dw_apb_timer.c void dw_apb_clockevent_stop(struct dw_apb_clock_event_device *dw_ced) dw_ced 308 drivers/clocksource/dw_apb_timer.c free_irq(dw_ced->timer.irq, &dw_ced->ced); dw_ced 316 drivers/clocksource/dw_apb_timer.c void dw_apb_clockevent_register(struct dw_apb_clock_event_device *dw_ced) dw_ced 318 drivers/clocksource/dw_apb_timer.c apbt_writel(&dw_ced->timer, 0, APBTMR_N_CONTROL); dw_ced 319 drivers/clocksource/dw_apb_timer.c clockevents_register_device(&dw_ced->ced); dw_ced 320 drivers/clocksource/dw_apb_timer.c apbt_enable_int(&dw_ced->timer); dw_ced 37 include/linux/dw_apb_timer.h void dw_apb_clockevent_register(struct dw_apb_clock_event_device *dw_ced); dw_ced 38 include/linux/dw_apb_timer.h void dw_apb_clockevent_pause(struct dw_apb_clock_event_device *dw_ced); dw_ced 39 include/linux/dw_apb_timer.h void dw_apb_clockevent_resume(struct dw_apb_clock_event_device *dw_ced); dw_ced 40 include/linux/dw_apb_timer.h void dw_apb_clockevent_stop(struct dw_apb_clock_event_device *dw_ced);