Lines Matching refs:edev
18 struct qede_dev *edev; member
44 struct qede_dev *edev = ptp->edev; in qede_ptp_adjfine() local
47 __qede_lock(edev); in qede_ptp_adjfine()
48 if (edev->state == QEDE_STATE_OPEN) { in qede_ptp_adjfine()
50 rc = ptp->ops->adjfreq(edev->cdev, ppb); in qede_ptp_adjfine()
53 DP_ERR(edev, "PTP adjfine called while interface is down\n"); in qede_ptp_adjfine()
56 __qede_unlock(edev); in qede_ptp_adjfine()
63 struct qede_dev *edev; in qede_ptp_adjtime() local
67 edev = ptp->edev; in qede_ptp_adjtime()
69 DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP adjtime called, delta = %llx\n", in qede_ptp_adjtime()
81 struct qede_dev *edev; in qede_ptp_gettime() local
86 edev = ptp->edev; in qede_ptp_gettime()
92 DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP gettime called, ns = %llu\n", ns); in qede_ptp_gettime()
102 struct qede_dev *edev; in qede_ptp_settime() local
107 edev = ptp->edev; in qede_ptp_settime()
111 DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP settime called, ns = %llu\n", ns); in qede_ptp_settime()
126 struct qede_dev *edev; in qede_ptp_ancillary_feature_enable() local
130 edev = ptp->edev; in qede_ptp_ancillary_feature_enable()
132 DP_ERR(edev, "PHC ancillary features are not supported\n"); in qede_ptp_ancillary_feature_enable()
140 struct qede_dev *edev; in qede_ptp_task() local
147 edev = ptp->edev; in qede_ptp_task()
153 rc = ptp->ops->read_tx_ts(edev->cdev, ×tamp); in qede_ptp_task()
157 DP_INFO(edev, "Tx timestamp is not recorded\n"); in qede_ptp_task()
161 &edev->flags); in qede_ptp_task()
162 edev->ptp_skip_txts++; in qede_ptp_task()
176 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_task()
178 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_task()
186 struct qede_dev *edev; in qede_ptp_read_cc() local
192 edev = ptp->edev; in qede_ptp_read_cc()
193 rc = ptp->ops->read_cc(edev->cdev, &phc_cycles); in qede_ptp_read_cc()
197 DP_VERBOSE(edev, QED_MSG_DEBUG, "PHC read cycles = %llu\n", phc_cycles); in qede_ptp_read_cc()
202 static int qede_ptp_cfg_filters(struct qede_dev *edev) in qede_ptp_cfg_filters() argument
206 struct qede_ptp *ptp = edev->ptp; in qede_ptp_cfg_filters()
212 DP_INFO(edev, "TS IOCTL not called\n"); in qede_ptp_cfg_filters()
218 set_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags); in qede_ptp_cfg_filters()
223 clear_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags); in qede_ptp_cfg_filters()
229 DP_ERR(edev, "One-step timestamping is not supported\n"); in qede_ptp_cfg_filters()
286 ptp->ops->cfg_filters(edev->cdev, rx_filter, tx_type); in qede_ptp_cfg_filters()
293 int qede_ptp_hw_ts(struct qede_dev *edev, struct ifreq *ifr) in qede_ptp_hw_ts() argument
299 ptp = edev->ptp; in qede_ptp_hw_ts()
306 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_hw_ts()
314 rc = qede_ptp_cfg_filters(edev); in qede_ptp_hw_ts()
324 int qede_ptp_get_ts_info(struct qede_dev *edev, struct kernel_ethtool_ts_info *info) in qede_ptp_get_ts_info() argument
326 struct qede_ptp *ptp = edev->ptp; in qede_ptp_get_ts_info()
361 void qede_ptp_disable(struct qede_dev *edev) in qede_ptp_disable() argument
365 ptp = edev->ptp; in qede_ptp_disable()
381 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_disable()
386 ptp->ops->disable(edev->cdev); in qede_ptp_disable()
390 edev->ptp = NULL; in qede_ptp_disable()
393 static int qede_ptp_init(struct qede_dev *edev) in qede_ptp_init() argument
398 ptp = edev->ptp; in qede_ptp_init()
405 rc = ptp->ops->enable(edev->cdev); in qede_ptp_init()
407 DP_INFO(edev, "PTP HW enable failed\n"); in qede_ptp_init()
426 int qede_ptp_enable(struct qede_dev *edev) in qede_ptp_enable() argument
433 DP_INFO(edev, "Failed to allocate struct for PTP\n"); in qede_ptp_enable()
437 ptp->edev = edev; in qede_ptp_enable()
438 ptp->ops = edev->ops->ptp; in qede_ptp_enable()
440 DP_INFO(edev, "PTP enable failed\n"); in qede_ptp_enable()
445 edev->ptp = ptp; in qede_ptp_enable()
447 rc = qede_ptp_init(edev); in qede_ptp_enable()
451 qede_ptp_cfg_filters(edev); in qede_ptp_enable()
455 snprintf(ptp->clock_info.name, 16, "%s", edev->ndev->name); in qede_ptp_enable()
467 ptp->clock = ptp_clock_register(&ptp->clock_info, &edev->pdev->dev); in qede_ptp_enable()
469 DP_ERR(edev, "PTP clock registration failed\n"); in qede_ptp_enable()
470 qede_ptp_disable(edev); in qede_ptp_enable()
480 edev->ptp = NULL; in qede_ptp_enable()
485 void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb) in qede_ptp_tx_ts() argument
489 ptp = edev->ptp; in qede_ptp_tx_ts()
494 &edev->flags)) { in qede_ptp_tx_ts()
495 DP_VERBOSE(edev, QED_MSG_DEBUG, "Timestamping in progress\n"); in qede_ptp_tx_ts()
496 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
500 if (unlikely(!test_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags))) { in qede_ptp_tx_ts()
501 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_tx_ts()
503 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_tx_ts()
504 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
506 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_tx_ts()
508 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_tx_ts()
509 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
519 void qede_ptp_rx_ts(struct qede_dev *edev, struct sk_buff *skb) in qede_ptp_rx_ts() argument
525 ptp = edev->ptp; in qede_ptp_rx_ts()
530 rc = ptp->ops->read_rx_ts(edev->cdev, ×tamp); in qede_ptp_rx_ts()
533 DP_INFO(edev, "Invalid Rx timestamp\n"); in qede_ptp_rx_ts()
540 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_rx_ts()