atimer 144 sound/pci/ctxfi/cttimer.c static void ct_xfitimer_irq_rearm(struct ct_timer *atimer, int ticks) atimer 146 sound/pci/ctxfi/cttimer.c struct hw *hw = atimer->atc->hw; atimer 150 sound/pci/ctxfi/cttimer.c if (!atimer->running) atimer 152 sound/pci/ctxfi/cttimer.c atimer->running = 1; atimer 155 sound/pci/ctxfi/cttimer.c static void ct_xfitimer_irq_stop(struct ct_timer *atimer) atimer 157 sound/pci/ctxfi/cttimer.c if (atimer->running) { atimer 158 sound/pci/ctxfi/cttimer.c struct hw *hw = atimer->atc->hw; atimer 161 sound/pci/ctxfi/cttimer.c atimer->running = 0; atimer 165 sound/pci/ctxfi/cttimer.c static inline unsigned int ct_xfitimer_get_wc(struct ct_timer *atimer) atimer 167 sound/pci/ctxfi/cttimer.c struct hw *hw = atimer->atc->hw; atimer 179 sound/pci/ctxfi/cttimer.c static int ct_xfitimer_reprogram(struct ct_timer *atimer, int can_update) atimer 186 sound/pci/ctxfi/cttimer.c if (list_empty(&atimer->running_head)) { atimer 187 sound/pci/ctxfi/cttimer.c ct_xfitimer_irq_stop(atimer); atimer 188 sound/pci/ctxfi/cttimer.c atimer->reprogram = 0; /* clear flag */ atimer 192 sound/pci/ctxfi/cttimer.c wc = ct_xfitimer_get_wc(atimer); atimer 193 sound/pci/ctxfi/cttimer.c diff = wc - atimer->wc; atimer 194 sound/pci/ctxfi/cttimer.c atimer->wc = wc; atimer 195 sound/pci/ctxfi/cttimer.c list_for_each_entry(ti, &atimer->running_head, running_list) { atimer 223 sound/pci/ctxfi/cttimer.c ct_xfitimer_irq_rearm(atimer, min_intr); atimer 224 sound/pci/ctxfi/cttimer.c atimer->reprogram = 0; /* clear flag */ atimer 229 sound/pci/ctxfi/cttimer.c static void ct_xfitimer_check_period(struct ct_timer *atimer) atimer 234 sound/pci/ctxfi/cttimer.c spin_lock_irqsave(&atimer->list_lock, flags); atimer 235 sound/pci/ctxfi/cttimer.c list_for_each_entry(ti, &atimer->instance_head, instance_list) { atimer 241 sound/pci/ctxfi/cttimer.c spin_unlock_irqrestore(&atimer->list_lock, flags); atimer 245 sound/pci/ctxfi/cttimer.c static void ct_xfitimer_callback(struct ct_timer *atimer) atimer 250 sound/pci/ctxfi/cttimer.c spin_lock_irqsave(&atimer->lock, flags); atimer 251 sound/pci/ctxfi/cttimer.c atimer->irq_handling = 1; atimer 253 sound/pci/ctxfi/cttimer.c update = ct_xfitimer_reprogram(atimer, 1); atimer 254 sound/pci/ctxfi/cttimer.c spin_unlock(&atimer->lock); atimer 256 sound/pci/ctxfi/cttimer.c ct_xfitimer_check_period(atimer); atimer 257 sound/pci/ctxfi/cttimer.c spin_lock(&atimer->lock); atimer 258 sound/pci/ctxfi/cttimer.c } while (atimer->reprogram); atimer 259 sound/pci/ctxfi/cttimer.c atimer->irq_handling = 0; atimer 260 sound/pci/ctxfi/cttimer.c spin_unlock_irqrestore(&atimer->lock, flags); atimer 272 sound/pci/ctxfi/cttimer.c static void ct_xfitimer_update(struct ct_timer *atimer) atimer 276 sound/pci/ctxfi/cttimer.c spin_lock_irqsave(&atimer->lock, flags); atimer 277 sound/pci/ctxfi/cttimer.c if (atimer->irq_handling) { atimer 279 sound/pci/ctxfi/cttimer.c atimer->reprogram = 1; atimer 280 sound/pci/ctxfi/cttimer.c spin_unlock_irqrestore(&atimer->lock, flags); atimer 284 sound/pci/ctxfi/cttimer.c ct_xfitimer_irq_stop(atimer); atimer 285 sound/pci/ctxfi/cttimer.c ct_xfitimer_reprogram(atimer, 0); atimer 286 sound/pci/ctxfi/cttimer.c spin_unlock_irqrestore(&atimer->lock, flags); atimer 291 sound/pci/ctxfi/cttimer.c struct ct_timer *atimer = ti->timer_base; atimer 294 sound/pci/ctxfi/cttimer.c spin_lock_irqsave(&atimer->lock, flags); atimer 296 sound/pci/ctxfi/cttimer.c atimer->wc = ct_xfitimer_get_wc(atimer); atimer 299 sound/pci/ctxfi/cttimer.c list_add(&ti->running_list, &atimer->running_head); atimer 300 sound/pci/ctxfi/cttimer.c spin_unlock_irqrestore(&atimer->lock, flags); atimer 301 sound/pci/ctxfi/cttimer.c ct_xfitimer_update(atimer); atimer 306 sound/pci/ctxfi/cttimer.c struct ct_timer *atimer = ti->timer_base; atimer 309 sound/pci/ctxfi/cttimer.c spin_lock_irqsave(&atimer->lock, flags); atimer 312 sound/pci/ctxfi/cttimer.c spin_unlock_irqrestore(&atimer->lock, flags); atimer 313 sound/pci/ctxfi/cttimer.c ct_xfitimer_update(atimer); atimer 316 sound/pci/ctxfi/cttimer.c static void ct_xfitimer_free_global(struct ct_timer *atimer) atimer 318 sound/pci/ctxfi/cttimer.c ct_xfitimer_irq_stop(atimer); atimer 334 sound/pci/ctxfi/cttimer.c ct_timer_instance_new(struct ct_timer *atimer, struct ct_atc_pcm *apcm) atimer 344 sound/pci/ctxfi/cttimer.c ti->timer_base = atimer; atimer 347 sound/pci/ctxfi/cttimer.c if (atimer->ops->init) atimer 348 sound/pci/ctxfi/cttimer.c atimer->ops->init(ti); atimer 350 sound/pci/ctxfi/cttimer.c spin_lock_irq(&atimer->list_lock); atimer 351 sound/pci/ctxfi/cttimer.c list_add(&ti->instance_list, &atimer->instance_head); atimer 352 sound/pci/ctxfi/cttimer.c spin_unlock_irq(&atimer->list_lock); atimer 367 sound/pci/ctxfi/cttimer.c struct ct_timer *atimer = ti->timer_base; atimer 368 sound/pci/ctxfi/cttimer.c atimer->ops->start(ti); atimer 373 sound/pci/ctxfi/cttimer.c struct ct_timer *atimer = ti->timer_base; atimer 374 sound/pci/ctxfi/cttimer.c atimer->ops->stop(ti); atimer 379 sound/pci/ctxfi/cttimer.c struct ct_timer *atimer = ti->timer_base; atimer 381 sound/pci/ctxfi/cttimer.c atimer->ops->stop(ti); /* to be sure */ atimer 382 sound/pci/ctxfi/cttimer.c if (atimer->ops->free_instance) atimer 383 sound/pci/ctxfi/cttimer.c atimer->ops->free_instance(ti); atimer 385 sound/pci/ctxfi/cttimer.c spin_lock_irq(&atimer->list_lock); atimer 387 sound/pci/ctxfi/cttimer.c spin_unlock_irq(&atimer->list_lock); atimer 407 sound/pci/ctxfi/cttimer.c struct ct_timer *atimer; atimer 410 sound/pci/ctxfi/cttimer.c atimer = kzalloc(sizeof(*atimer), GFP_KERNEL); atimer 411 sound/pci/ctxfi/cttimer.c if (!atimer) atimer 413 sound/pci/ctxfi/cttimer.c spin_lock_init(&atimer->lock); atimer 414 sound/pci/ctxfi/cttimer.c spin_lock_init(&atimer->list_lock); atimer 415 sound/pci/ctxfi/cttimer.c INIT_LIST_HEAD(&atimer->instance_head); atimer 416 sound/pci/ctxfi/cttimer.c INIT_LIST_HEAD(&atimer->running_head); atimer 417 sound/pci/ctxfi/cttimer.c atimer->atc = atc; atimer 421 sound/pci/ctxfi/cttimer.c atimer->ops = &ct_xfitimer_ops; atimer 422 sound/pci/ctxfi/cttimer.c hw->irq_callback_data = atimer; atimer 426 sound/pci/ctxfi/cttimer.c atimer->ops = &ct_systimer_ops; atimer 428 sound/pci/ctxfi/cttimer.c return atimer; atimer 431 sound/pci/ctxfi/cttimer.c void ct_timer_free(struct ct_timer *atimer) atimer 433 sound/pci/ctxfi/cttimer.c struct hw *hw = atimer->atc->hw; atimer 435 sound/pci/ctxfi/cttimer.c if (atimer->ops->free_global) atimer 436 sound/pci/ctxfi/cttimer.c atimer->ops->free_global(atimer); atimer 437 sound/pci/ctxfi/cttimer.c kfree(atimer); atimer 21 sound/pci/ctxfi/cttimer.h void ct_timer_free(struct ct_timer *atimer); atimer 24 sound/pci/ctxfi/cttimer.h ct_timer_instance_new(struct ct_timer *atimer, struct ct_atc_pcm *apcm);