Commit d71151a3 authored by Yangbo Lu's avatar Yangbo Lu Committed by David S. Miller
Browse files

ptp_qoriq: drop the code of alarm



The alarm function hadn't been supported by PTP clock driver.
The recommended solution PHC + phc2sys + nanosleep provides
best performance. So drop the code of alarm in ptp_qoriq driver.

Signed-off-by: default avatarYangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2019fc96
Loading
Loading
Loading
Loading
+1 −28
Original line number Diff line number Diff line
@@ -131,8 +131,7 @@ irqreturn_t ptp_qoriq_isr(int irq, void *priv)
	struct ptp_qoriq *ptp_qoriq = priv;
	struct ptp_qoriq_registers *regs = &ptp_qoriq->regs;
	struct ptp_clock_event event;
	u64 ns;
	u32 ack = 0, lo, hi, mask, val, irqs;
	u32 ack = 0, mask, val, irqs;

	spin_lock(&ptp_qoriq->lock);

@@ -153,32 +152,6 @@ irqreturn_t ptp_qoriq_isr(int irq, void *priv)
		extts_clean_up(ptp_qoriq, 1, true);
	}

	if (irqs & ALM2) {
		ack |= ALM2;
		if (ptp_qoriq->alarm_value) {
			event.type = PTP_CLOCK_ALARM;
			event.index = 0;
			event.timestamp = ptp_qoriq->alarm_value;
			ptp_clock_event(ptp_qoriq->clock, &event);
		}
		if (ptp_qoriq->alarm_interval) {
			ns = ptp_qoriq->alarm_value + ptp_qoriq->alarm_interval;
			hi = ns >> 32;
			lo = ns & 0xffffffff;
			ptp_qoriq->write(&regs->alarm_regs->tmr_alarm2_l, lo);
			ptp_qoriq->write(&regs->alarm_regs->tmr_alarm2_h, hi);
			ptp_qoriq->alarm_value = ns;
		} else {
			spin_lock(&ptp_qoriq->lock);
			mask = ptp_qoriq->read(&regs->ctrl_regs->tmr_temask);
			mask &= ~ALM2EN;
			ptp_qoriq->write(&regs->ctrl_regs->tmr_temask, mask);
			spin_unlock(&ptp_qoriq->lock);
			ptp_qoriq->alarm_value = 0;
			ptp_qoriq->alarm_interval = 0;
		}
	}

	if (irqs & PP1) {
		ack |= PP1;
		event.type = PTP_CLOCK_PPS;
+0 −2
Original line number Diff line number Diff line
@@ -149,8 +149,6 @@ struct ptp_qoriq {
	bool extts_fifo_support;
	int irq;
	int phc_index;
	u64 alarm_interval; /* for periodic alarm */
	u64 alarm_value;
	u32 tclk_period;  /* nanoseconds */
	u32 tmr_prsc;
	u32 tmr_add;