Skip to content

Commit e9523a5

Browse files
grygoriySdavem330
authored andcommitted
net: ethernet: ti: cpsw: enable HWTSTAMP_FILTER_PTP_V1_L4_EVENT filter
CPSW driver supports PTP v1 messages, but for unknown reasons this filter is not advertised. As result, ./tools/testing/selftests/networking/timestamping/timestamping utility can't be used for testing of CPSW RX timestamping with option SOF_TIMESTAMPING_RX_HARDWARE, because it uses HWTSTAMP_FILTER_PTP_V1_L4_SYNC filter. Hence, fix it by advertising HWTSTAMP_FILTER_PTP_V1_L4_XXX filters in CPSW driver. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 9fd7aca commit e9523a5

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

drivers/net/ethernet/ti/cpsw.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1731,11 +1731,14 @@ static int cpsw_hwtstamp_set(struct net_device *dev, struct ifreq *ifr)
17311731
cpts_rx_enable(cpts, 0);
17321732
break;
17331733
case HWTSTAMP_FILTER_ALL:
1734+
case HWTSTAMP_FILTER_NTP_ALL:
1735+
return -ERANGE;
17341736
case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
17351737
case HWTSTAMP_FILTER_PTP_V1_L4_SYNC:
17361738
case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ:
1737-
case HWTSTAMP_FILTER_NTP_ALL:
1738-
return -ERANGE;
1739+
cpts_rx_enable(cpts, HWTSTAMP_FILTER_PTP_V1_L4_EVENT);
1740+
cfg.rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
1741+
break;
17391742
case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
17401743
case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
17411744
case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
@@ -1745,7 +1748,7 @@ static int cpsw_hwtstamp_set(struct net_device *dev, struct ifreq *ifr)
17451748
case HWTSTAMP_FILTER_PTP_V2_EVENT:
17461749
case HWTSTAMP_FILTER_PTP_V2_SYNC:
17471750
case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ:
1748-
cpts_rx_enable(cpts, 1);
1751+
cpts_rx_enable(cpts, HWTSTAMP_FILTER_PTP_V2_EVENT);
17491752
cfg.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
17501753
break;
17511754
default:
@@ -1784,7 +1787,7 @@ static int cpsw_hwtstamp_get(struct net_device *dev, struct ifreq *ifr)
17841787
cfg.tx_type = cpts_is_tx_enabled(cpts) ?
17851788
HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
17861789
cfg.rx_filter = (cpts_is_rx_enabled(cpts) ?
1787-
HWTSTAMP_FILTER_PTP_V2_EVENT : HWTSTAMP_FILTER_NONE);
1790+
cpts->rx_enable : HWTSTAMP_FILTER_NONE);
17881791

17891792
return copy_to_user(ifr->ifr_data, &cfg, sizeof(cfg)) ? -EFAULT : 0;
17901793
}
@@ -2141,6 +2144,7 @@ static int cpsw_get_ts_info(struct net_device *ndev,
21412144
(1 << HWTSTAMP_TX_ON);
21422145
info->rx_filters =
21432146
(1 << HWTSTAMP_FILTER_NONE) |
2147+
(1 << HWTSTAMP_FILTER_PTP_V1_L4_EVENT) |
21442148
(1 << HWTSTAMP_FILTER_PTP_V2_EVENT);
21452149
return 0;
21462150
}

0 commit comments

Comments
 (0)