Lines Matching refs:cc
293 static u64 ionic_cc_read(struct cyclecounter *cc) in ionic_cc_read() argument
295 struct ionic_phc *phc = container_of(cc, struct ionic_phc, cc); in ionic_cc_read()
311 ctx->cmd.lif_setphc.mult = cpu_to_le32(phc->cc.mult); in ionic_setphc_cmd()
312 ctx->cmd.lif_setphc.shift = cpu_to_le32(phc->cc.shift); in ionic_setphc_cmd()
342 phc->cc.mult = adj; in ionic_phc_adjfine()
396 timecounter_init(&phc->tc, &phc->cc, ns); in ionic_phc_settime64()
542 phc->cc.read = ionic_cc_read; in ionic_lif_alloc_phc()
543 phc->cc.mask = le64_to_cpu(ionic->ident.dev.hwstamp_mask); in ionic_lif_alloc_phc()
544 phc->cc.mult = le32_to_cpu(ionic->ident.dev.hwstamp_mult); in ionic_lif_alloc_phc()
545 phc->cc.shift = le32_to_cpu(ionic->ident.dev.hwstamp_shift); in ionic_lif_alloc_phc()
547 if (!phc->cc.mult) { in ionic_lif_alloc_phc()
550 phc->cc.mult); in ionic_lif_alloc_phc()
557 phc->cc.mask, phc->cc.mult, phc->cc.shift); in ionic_lif_alloc_phc()
563 if (phc->cc.shift + 2 + ilog2(IONIC_PHC_UPDATE_NS) >= 64) { in ionic_lif_alloc_phc()
567 diff = U64_MAX / phc->cc.mult / 2; in ionic_lif_alloc_phc()
570 diff = (u64)IONIC_PHC_UPDATE_NS << (phc->cc.shift + 2); in ionic_lif_alloc_phc()
571 diff = DIV_ROUND_UP(diff, phc->cc.mult); in ionic_lif_alloc_phc()
583 diff &= phc->cc.mask; in ionic_lif_alloc_phc()
603 shift = mult / phc->cc.mult; in ionic_lif_alloc_phc()
608 phc->cc.mult <<= shift; in ionic_lif_alloc_phc()
609 phc->cc.shift += shift; in ionic_lif_alloc_phc()
613 phc->cc.mask, phc->cc.mult, phc->cc.shift); in ionic_lif_alloc_phc()
616 phc->init_cc_mult = phc->cc.mult; in ionic_lif_alloc_phc()
618 timecounter_init(&phc->tc, &phc->cc, ktime_get_real_ns()); in ionic_lif_alloc_phc()
622 cyclecounter_cyc2ns(&phc->cc, diff / 4, 0, &frac)); in ionic_lif_alloc_phc()