OSDN Git Service

ptp_qoriq: drop the code of alarm
authorYangbo Lu <yangbo.lu@nxp.com>
Tue, 11 Feb 2020 04:52:49 +0000 (12:52 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Feb 2020 02:30:41 +0000 (18:30 -0800)
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: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/ptp/ptp_qoriq.c
include/linux/fsl/ptp_qoriq.h

index b27c46e..c09c16b 100644 (file)
@@ -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;
index b0b7435..7588456 100644 (file)
@@ -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;