Lines Matching refs:tcal
440 void pt_tcal_init(struct pt_time_cal *tcal) in pt_tcal_init() argument
442 if (!tcal) in pt_tcal_init()
445 memset(tcal, 0, sizeof(*tcal)); in pt_tcal_init()
447 tcal->min_fcr = UINT64_MAX; in pt_tcal_init()
450 static int pt_tcal_have_fcr(const struct pt_time_cal *tcal) in pt_tcal_have_fcr() argument
452 if (!tcal) in pt_tcal_have_fcr()
455 return (tcal->min_fcr <= tcal->max_fcr); in pt_tcal_have_fcr()
458 int pt_tcal_fcr(uint64_t *fcr, const struct pt_time_cal *tcal) in pt_tcal_fcr() argument
460 if (!fcr || !tcal) in pt_tcal_fcr()
463 if (!pt_tcal_have_fcr(tcal)) in pt_tcal_fcr()
466 *fcr = tcal->fcr; in pt_tcal_fcr()
471 int pt_tcal_set_fcr(struct pt_time_cal *tcal, uint64_t fcr) in pt_tcal_set_fcr() argument
473 if (!tcal) in pt_tcal_set_fcr()
476 tcal->fcr = fcr; in pt_tcal_set_fcr()
478 if (fcr < tcal->min_fcr) in pt_tcal_set_fcr()
479 tcal->min_fcr = fcr; in pt_tcal_set_fcr()
481 if (fcr > tcal->max_fcr) in pt_tcal_set_fcr()
482 tcal->max_fcr = fcr; in pt_tcal_set_fcr()
487 int pt_tcal_update_psb(struct pt_time_cal *tcal, in pt_tcal_update_psb() argument
490 if (!tcal || !config) in pt_tcal_update_psb()
494 tcal->check_skl168 = 1; in pt_tcal_update_psb()
499 int pt_tcal_update_tsc(struct pt_time_cal *tcal, in pt_tcal_update_tsc() argument
505 if (!tcal || !packet) in pt_tcal_update_tsc()
512 tcal->tsc = packet->tsc; in pt_tcal_update_tsc()
513 tcal->cyc_tsc = 0ull; in pt_tcal_update_tsc()
518 int pt_tcal_header_tsc(struct pt_time_cal *tcal, in pt_tcal_header_tsc() argument
526 if (!tcal || !packet) in pt_tcal_header_tsc()
529 last_tsc = tcal->tsc; in pt_tcal_header_tsc()
530 cyc = tcal->cyc_tsc; in pt_tcal_header_tsc()
534 tcal->tsc = tsc; in pt_tcal_header_tsc()
535 tcal->cyc_tsc = 0ull; in pt_tcal_header_tsc()
541 if (tcal->have_mtc) in pt_tcal_header_tsc()
564 return pt_tcal_set_fcr(tcal, fcr); in pt_tcal_header_tsc()
567 int pt_tcal_update_cbr(struct pt_time_cal *tcal, in pt_tcal_update_cbr() argument
574 pt_tcal_init(tcal); in pt_tcal_update_cbr()
576 return pt_tcal_header_cbr(tcal, packet, config); in pt_tcal_update_cbr()
579 int pt_tcal_header_cbr(struct pt_time_cal *tcal, in pt_tcal_header_cbr() argument
585 if (!tcal || !packet || !config) in pt_tcal_header_cbr()
599 return pt_tcal_set_fcr(tcal, fcr); in pt_tcal_header_cbr()
602 int pt_tcal_update_tma(struct pt_time_cal *tcal, in pt_tcal_update_tma() argument
606 (void) tcal; in pt_tcal_update_tma()
614 int pt_tcal_update_mtc(struct pt_time_cal *tcal, in pt_tcal_update_mtc() argument
622 if (!tcal || !packet || !config) in pt_tcal_update_mtc()
625 last_ctc = tcal->ctc; in pt_tcal_update_mtc()
626 have_mtc = tcal->have_mtc; in pt_tcal_update_mtc()
627 cyc = tcal->cyc_mtc; in pt_tcal_update_mtc()
628 check_skl168 = tcal->check_skl168; in pt_tcal_update_mtc()
631 tcal->check_skl168 = 0; in pt_tcal_update_mtc()
637 tcal->cyc_mtc = 0ull; in pt_tcal_update_mtc()
638 tcal->ctc = ctc; in pt_tcal_update_mtc()
639 tcal->have_mtc = 1; in pt_tcal_update_mtc()
651 tcal->have_mtc = 1; in pt_tcal_update_mtc()
652 tcal->cyc_mtc = 0ull; in pt_tcal_update_mtc()
653 tcal->ctc = ctc; in pt_tcal_update_mtc()
656 tcal->lost_mtc += 1; in pt_tcal_update_mtc()
702 if ((config->mtc_freq < 10) && pt_tcal_have_fcr(tcal)) { in pt_tcal_update_mtc()
708 dfc = (tcal->fcr * (cyc + 0xf00)) >> pt_tcal_fcr_shr; in pt_tcal_update_mtc()
719 errcode = pt_tcal_set_fcr(tcal, fcr); in pt_tcal_update_mtc()
724 tcal->lost_mtc = 0; in pt_tcal_update_mtc()
729 int pt_tcal_update_cyc(struct pt_time_cal *tcal, in pt_tcal_update_cyc() argument
737 if (!tcal || !packet) in pt_tcal_update_cyc()
741 tcal->cyc_mtc += cyc; in pt_tcal_update_cyc()
742 tcal->cyc_tsc += cyc; in pt_tcal_update_cyc()
747 int pt_tcal_update_ovf(struct pt_time_cal *tcal, in pt_tcal_update_ovf() argument
750 if (!tcal || !config) in pt_tcal_update_ovf()
753 tcal->tsc = 0ull; in pt_tcal_update_ovf()
754 tcal->cyc_tsc = 0ull; in pt_tcal_update_ovf()
755 tcal->cyc_mtc = 0ull; in pt_tcal_update_ovf()
756 tcal->ctc = 0; in pt_tcal_update_ovf()
757 tcal->have_mtc = 0; in pt_tcal_update_ovf()