diff options
author | Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> | 2018-11-12 17:00:22 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-14 03:29:59 +0300 |
commit | a9423120343cb52efea6f471ff780eba7aab9b9f (patch) | |
tree | e445f6c5f9dffcb954913bbc6c2961aca9f4c8c0 /drivers/net/ethernet/ti/cpts.c | |
parent | f19dcd5f118d1795307e28e6e99f482469303edc (diff) | |
download | linux-a9423120343cb52efea6f471ff780eba7aab9b9f.tar.xz |
net: ethernet: ti: cpts: move enable/disable flags outside of cpts module
Each slave has it's own receive timestamp filter. But cpts rx/tx
timestamp enable flags are used to allow ts retrieve only for one
user. This limitation causes data path redundancy and setting overlap
if cpsw module is in dual-mac mode for instance.
If rx ts is enabled only for one port - the second interface must expect
every incoming packet to be PTP packet w/o absolutely any reason, and if
it's PTP - do unneeded stuff, as rx filter for second port is not set
and cpts fifo is not supposed to contain appropriate ts event.
That's not correct.
So, to fix control overlap and avoid redundant CPU cycles, the patch
splits rx/tx ts enable flags between network devices. After the patch,
PTP timestamping still should be used for only one port (or PTP id
counter has to be different for both ports as cpts IP is common).
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ti/cpts.c')
-rw-r--r-- | drivers/net/ethernet/ti/cpts.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c index 63232b35024e..054f78295d1d 100644 --- a/drivers/net/ethernet/ti/cpts.c +++ b/drivers/net/ethernet/ti/cpts.c @@ -430,8 +430,6 @@ void cpts_rx_timestamp(struct cpts *cpts, struct sk_buff *skb) u64 ns; struct skb_shared_hwtstamps *ssh; - if (!cpts->rx_enable) - return; ns = cpts_find_ts(cpts, skb, CPTS_EV_RX); if (!ns) return; |