Esempio n. 1
0
static int ptp_ixp_adjtime(struct ptp_clock_info *ptp, s64 delta)
{
    s64 now;
    unsigned long flags;
    struct ixp_clock *ixp_clock = container_of(ptp, struct ixp_clock, caps);
    struct ixp46x_ts_regs *regs = ixp_clock->regs;

    spin_lock_irqsave(&register_lock, flags);

    now = ixp_systime_read(regs);
    now += delta;
    ixp_systime_write(regs, now);

    spin_unlock_irqrestore(&register_lock, flags);

    return 0;
}
Esempio n. 2
0
static int ptp_ixp_settime(struct ptp_clock_info *ptp,
			   const struct timespec64 *ts)
{
	u64 ns;
	unsigned long flags;
	struct ixp_clock *ixp_clock = container_of(ptp, struct ixp_clock, caps);
	struct ixp46x_ts_regs *regs = ixp_clock->regs;

	ns = timespec64_to_ns(ts);

	spin_lock_irqsave(&register_lock, flags);

	ixp_systime_write(regs, ns);

	spin_unlock_irqrestore(&register_lock, flags);

	return 0;
}