diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0267-net-mscc-ocelot-convert-to-use-ocelot_port_add_txtst.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0267-net-mscc-ocelot-convert-to-use-ocelot_port_add_txtst.patch | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0267-net-mscc-ocelot-convert-to-use-ocelot_port_add_txtst.patch b/target/linux/layerscape/patches-5.4/701-net-0267-net-mscc-ocelot-convert-to-use-ocelot_port_add_txtst.patch deleted file mode 100644 index 988c90e79d..0000000000 --- a/target/linux/layerscape/patches-5.4/701-net-0267-net-mscc-ocelot-convert-to-use-ocelot_port_add_txtst.patch +++ /dev/null @@ -1,93 +0,0 @@ -From c0c92f8d9a093faf64397b1874f074e071a5b4e2 Mon Sep 17 00:00:00 2001 -From: Yangbo Lu <yangbo.lu@nxp.com> -Date: Wed, 20 Nov 2019 16:23:16 +0800 -Subject: [PATCH] net: mscc: ocelot: convert to use - ocelot_port_add_txtstamp_skb() - -Convert to use ocelot_port_add_txtstamp_skb() for adding skbs which -require TX timestamp into list. Export it so that DSA Felix driver -could reuse it too. - -Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> -Reviewed-by: Andrew Lunn <andrew@lunn.ch> -Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - drivers/net/ethernet/mscc/ocelot.c | 43 ++++++++++++++++++++++++-------------- - include/soc/mscc/ocelot.h | 2 ++ - 2 files changed, 29 insertions(+), 16 deletions(-) - ---- a/drivers/net/ethernet/mscc/ocelot.c -+++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -575,6 +575,32 @@ static int ocelot_gen_ifh(u32 *ifh, stru - return 0; - } - -+int ocelot_port_add_txtstamp_skb(struct ocelot_port *ocelot_port, -+ struct sk_buff *skb) -+{ -+ struct skb_shared_info *shinfo = skb_shinfo(skb); -+ struct ocelot *ocelot = ocelot_port->ocelot; -+ -+ if (ocelot->ptp && shinfo->tx_flags & SKBTX_HW_TSTAMP && -+ ocelot_port->ptp_cmd == IFH_REW_OP_TWO_STEP_PTP) { -+ struct ocelot_skb *oskb = -+ kzalloc(sizeof(struct ocelot_skb), GFP_ATOMIC); -+ -+ if (unlikely(!oskb)) -+ return -ENOMEM; -+ -+ shinfo->tx_flags |= SKBTX_IN_PROGRESS; -+ -+ oskb->skb = skb; -+ oskb->id = ocelot_port->ts_id % 4; -+ -+ list_add_tail(&oskb->head, &ocelot_port->skbs); -+ return 0; -+ } -+ return -ENODATA; -+} -+EXPORT_SYMBOL(ocelot_port_add_txtstamp_skb); -+ - static int ocelot_port_xmit(struct sk_buff *skb, struct net_device *dev) - { - struct ocelot_port_private *priv = netdev_priv(dev); -@@ -637,26 +663,11 @@ static int ocelot_port_xmit(struct sk_bu - dev->stats.tx_packets++; - dev->stats.tx_bytes += skb->len; - -- if (ocelot->ptp && shinfo->tx_flags & SKBTX_HW_TSTAMP && -- ocelot_port->ptp_cmd == IFH_REW_OP_TWO_STEP_PTP) { -- struct ocelot_skb *oskb = -- kzalloc(sizeof(struct ocelot_skb), GFP_ATOMIC); -- -- if (unlikely(!oskb)) -- goto out; -- -- skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; -- -- oskb->skb = skb; -- oskb->id = ocelot_port->ts_id % 4; -+ if (!ocelot_port_add_txtstamp_skb(ocelot_port, skb)) { - ocelot_port->ts_id++; -- -- list_add_tail(&oskb->head, &ocelot_port->skbs); -- - return NETDEV_TX_OK; - } - --out: - dev_kfree_skb_any(skb); - return NETDEV_TX_OK; - } ---- a/include/soc/mscc/ocelot.h -+++ b/include/soc/mscc/ocelot.h -@@ -543,6 +543,8 @@ int ocelot_vlan_del(struct ocelot *ocelo - int ocelot_hwstamp_get(struct ocelot *ocelot, int port, struct ifreq *ifr); - int ocelot_hwstamp_set(struct ocelot *ocelot, int port, struct ifreq *ifr); - int ocelot_ptp_gettime64(struct ptp_clock_info *ptp, struct timespec64 *ts); -+int ocelot_port_add_txtstamp_skb(struct ocelot_port *ocelot_port, -+ struct sk_buff *skb); - void ocelot_get_txtstamp(struct ocelot *ocelot); - - #endif |