Lines Matching refs:vblank_timer
527 struct intel_vgpu_vblank_timer *vblank_timer;
530 vblank_timer = container_of(data, struct intel_vgpu_vblank_timer, timer);
531 vgpu = container_of(vblank_timer, struct intel_vgpu, vblank_timer);
536 hrtimer_add_expires_ns(&vblank_timer->timer, vblank_timer->period);
545 struct intel_vgpu_vblank_timer *vblank_timer = &vgpu->vblank_timer;
573 hrtimer_init(&vblank_timer->timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
574 vblank_timer->timer.function = vblank_timer_fn;
575 vblank_timer->vrefresh_k = port->vrefresh_k;
576 vblank_timer->period = DIV64_U64_ROUND_CLOSEST(NSEC_PER_SEC * MSEC_PER_SEC, vblank_timer->vrefresh_k);
584 * vgpu_update_vblank_emulation - Update per-vGPU vblank_timer
586 * @turnon: Turn ON/OFF vblank_timer
588 * This function is used to turn on/off or update the per-vGPU vblank_timer
589 * when TRANSCONF is enabled or disabled. vblank_timer period is also updated
595 struct intel_vgpu_vblank_timer *vblank_timer = &vgpu->vblank_timer;
605 if (vblank_timer->vrefresh_k != port->vrefresh_k ||
606 !hrtimer_active(&vblank_timer->timer)) {
608 if (hrtimer_active(&vblank_timer->timer))
609 hrtimer_cancel(&vblank_timer->timer);
612 vblank_timer->vrefresh_k = port->vrefresh_k;
613 vblank_timer->period = DIV64_U64_ROUND_CLOSEST(NSEC_PER_SEC * MSEC_PER_SEC, vblank_timer->vrefresh_k);
614 hrtimer_start(&vblank_timer->timer,
615 ktime_add_ns(ktime_get(), vblank_timer->period),
620 hrtimer_cancel(&vblank_timer->timer);