Loading drivers/net/ethernet/sfc/efx.c +3 −1 Original line number Diff line number Diff line Loading @@ -1857,7 +1857,9 @@ static int efx_ioctl(struct net_device *net_dev, struct ifreq *ifr, int cmd) struct mii_ioctl_data *data = if_mii(ifr); if (cmd == SIOCSHWTSTAMP) return efx_ptp_ioctl(efx, ifr, cmd); return efx_ptp_set_ts_config(efx, ifr); if (cmd == SIOCGHWTSTAMP) return efx_ptp_get_ts_config(efx, ifr); /* Convert phy_id from older PRTAD/DEVAD format */ if ((cmd == SIOCGMIIREG || cmd == SIOCSMIIREG) && Loading drivers/net/ethernet/sfc/nic.h +2 −1 Original line number Diff line number Diff line Loading @@ -555,7 +555,8 @@ int efx_sriov_set_vf_spoofchk(struct net_device *net_dev, int vf, struct ethtool_ts_info; void efx_ptp_probe(struct efx_nic *efx); int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd); int efx_ptp_set_ts_config(struct efx_nic *efx, struct ifreq *ifr); int efx_ptp_get_ts_config(struct efx_nic *efx, struct ifreq *ifr); void efx_ptp_get_ts_info(struct efx_nic *efx, struct ethtool_ts_info *ts_info); bool efx_ptp_is_ptp_tx(struct efx_nic *efx, struct sk_buff *skb); int efx_ptp_tx(struct efx_nic *efx, struct sk_buff *skb); Loading drivers/net/ethernet/sfc/ptp.c +10 −1 Original line number Diff line number Diff line Loading @@ -1231,7 +1231,7 @@ void efx_ptp_get_ts_info(struct efx_nic *efx, struct ethtool_ts_info *ts_info) 1 << HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ); } int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd) int efx_ptp_set_ts_config(struct efx_nic *efx, struct ifreq *ifr) { struct hwtstamp_config config; int rc; Loading @@ -1251,6 +1251,15 @@ int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd) ? -EFAULT : 0; } int efx_ptp_get_ts_config(struct efx_nic *efx, struct ifreq *ifr) { if (!efx->ptp_data) return -EOPNOTSUPP; return copy_to_user(ifr->ifr_data, &efx->ptp_data->config, sizeof(efx->ptp_data->config)) ? -EFAULT : 0; } static void ptp_event_failure(struct efx_nic *efx, int expected_frag_len) { struct efx_ptp_data *ptp = efx->ptp_data; Loading Loading
drivers/net/ethernet/sfc/efx.c +3 −1 Original line number Diff line number Diff line Loading @@ -1857,7 +1857,9 @@ static int efx_ioctl(struct net_device *net_dev, struct ifreq *ifr, int cmd) struct mii_ioctl_data *data = if_mii(ifr); if (cmd == SIOCSHWTSTAMP) return efx_ptp_ioctl(efx, ifr, cmd); return efx_ptp_set_ts_config(efx, ifr); if (cmd == SIOCGHWTSTAMP) return efx_ptp_get_ts_config(efx, ifr); /* Convert phy_id from older PRTAD/DEVAD format */ if ((cmd == SIOCGMIIREG || cmd == SIOCSMIIREG) && Loading
drivers/net/ethernet/sfc/nic.h +2 −1 Original line number Diff line number Diff line Loading @@ -555,7 +555,8 @@ int efx_sriov_set_vf_spoofchk(struct net_device *net_dev, int vf, struct ethtool_ts_info; void efx_ptp_probe(struct efx_nic *efx); int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd); int efx_ptp_set_ts_config(struct efx_nic *efx, struct ifreq *ifr); int efx_ptp_get_ts_config(struct efx_nic *efx, struct ifreq *ifr); void efx_ptp_get_ts_info(struct efx_nic *efx, struct ethtool_ts_info *ts_info); bool efx_ptp_is_ptp_tx(struct efx_nic *efx, struct sk_buff *skb); int efx_ptp_tx(struct efx_nic *efx, struct sk_buff *skb); Loading
drivers/net/ethernet/sfc/ptp.c +10 −1 Original line number Diff line number Diff line Loading @@ -1231,7 +1231,7 @@ void efx_ptp_get_ts_info(struct efx_nic *efx, struct ethtool_ts_info *ts_info) 1 << HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ); } int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd) int efx_ptp_set_ts_config(struct efx_nic *efx, struct ifreq *ifr) { struct hwtstamp_config config; int rc; Loading @@ -1251,6 +1251,15 @@ int efx_ptp_ioctl(struct efx_nic *efx, struct ifreq *ifr, int cmd) ? -EFAULT : 0; } int efx_ptp_get_ts_config(struct efx_nic *efx, struct ifreq *ifr) { if (!efx->ptp_data) return -EOPNOTSUPP; return copy_to_user(ifr->ifr_data, &efx->ptp_data->config, sizeof(efx->ptp_data->config)) ? -EFAULT : 0; } static void ptp_event_failure(struct efx_nic *efx, int expected_frag_len) { struct efx_ptp_data *ptp = efx->ptp_data; Loading