From 71190c6f316a2b1486fce4bf60d1265393a1125e Mon Sep 17 00:00:00 2001 From: Brian Henriquez Date: Tue, 19 May 2020 00:04:02 -0500 Subject: [PATCH 041/296] brcmfmac: add support for sof time-stammping for tx packets This adds support for time-stamping outgoing tx packets to support PTP with better accuracy. Packets are time-stamped very close to when they are put on the bus. Signed-off-by: Brian Henriquez --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 ++ drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 2 ++ drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 3 +++ 3 files changed, 7 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c index c4ab042a9c44..a25e3cded82f 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -586,6 +587,7 @@ static void brcmf_ethtool_get_drvinfo(struct net_device *ndev, static const struct ethtool_ops brcmf_ethtool_ops = { .get_drvinfo = brcmf_ethtool_get_drvinfo, + .get_ts_info = ethtool_op_get_ts_info, }; static int brcmf_netdev_stop(struct net_device *ndev) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c index 583b10dea394..2974dd5ba2ee 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -722,6 +723,7 @@ static void brcmf_msgbuf_txflow(struct brcmf_msgbuf *msgbuf, u16 flowid) brcmf_flowring_qlen(flow, flowid)); break; } + skb_tx_timestamp(skb); skb_orphan(skb); if (brcmf_msgbuf_alloc_pktid(msgbuf->drvr->bus_if->dev, msgbuf->tx_pktids, skb, ETH_HLEN, diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 412afb75d2ea..99825eba1bac 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -3019,6 +3020,8 @@ static int brcmf_sdio_bus_txdata(struct device *dev, struct sk_buff *pkt) brcmf_dbg(TRACE, "deferring pktq len %d\n", pktq_len(&bus->txq)); bus->sdcnt.fcqueued++; + skb_tx_timestamp(pkt); + /* Priority based enq */ spin_lock_bh(&bus->txq_lock); /* reset bus_flags in packet cb */ -- 2.25.1