On Tue, Sep 08, 2020 at 11:00:41PM +0100, Russell King wrote: > @@ -2984,13 +2985,19 @@ static irqreturn_t mvpp2_isr(int irq, void *dev_id) > > static void mvpp2_isr_handle_ptp_queue(struct mvpp2_port *port, int nq) > { > + struct skb_shared_hwtstamps shhwtstamps; > + struct mvpp2_hwtstamp_queue *queue; > + struct sk_buff *skb; > void __iomem *ptp_q; > + unsigned int id; > u32 r0, r1, r2; > > ptp_q = port->priv->iface_base + MVPP22_PTP_BASE(port->gop_id); > if (nq) > ptp_q += MVPP22_PTP_TX_Q1_R0 - MVPP22_PTP_TX_Q0_R0; > > + queue = &port->tx_hwtstamp_queue[nq]; > + > while (1) { > r0 = readl_relaxed(ptp_q + MVPP22_PTP_TX_Q0_R0) & 0xffff; > if (!r0) > @@ -2998,6 +3005,19 @@ static void mvpp2_isr_handle_ptp_queue(struct > mvpp2_port *port, int nq) > > r1 = readl_relaxed(ptp_q + MVPP22_PTP_TX_Q0_R1) & 0xffff; > r2 = readl_relaxed(ptp_q + MVPP22_PTP_TX_Q0_R2) & 0xffff; > + > + id = (r0 >> 1) & 31; > + > + skb = queue->skb[id]; > + queue->skb[id] = NULL; > + if (skb) { > + u32 ts = r2 << 19 | r1 << 3 | r0 >> 13; > + > + netdev_info(port->dev, "tx stamp 0x%08x\n", ts);
This probably should be _debug instead. > + mvpp22_tai_tstamp(port->priv->tai, ts, &shhwtstamps); > + skb_tstamp_tx(skb, &shhwtstamps); > + dev_kfree_skb_any(skb); > + } > } > } Thanks, Richard