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, &timestamp); 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 ethtool_ts_info *info) in qede_ptp_get_ts_info() argument
326 struct qede_ptp *ptp = edev->ptp; in qede_ptp_get_ts_info()
368 void qede_ptp_disable(struct qede_dev *edev) in qede_ptp_disable() argument
372 ptp = edev->ptp; in qede_ptp_disable()
388 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_disable()
393 ptp->ops->disable(edev->cdev); in qede_ptp_disable()
397 edev->ptp = NULL; in qede_ptp_disable()
400 static int qede_ptp_init(struct qede_dev *edev) in qede_ptp_init() argument
405 ptp = edev->ptp; in qede_ptp_init()
412 rc = ptp->ops->enable(edev->cdev); in qede_ptp_init()
414 DP_INFO(edev, "PTP HW enable failed\n"); in qede_ptp_init()
433 int qede_ptp_enable(struct qede_dev *edev) in qede_ptp_enable() argument
440 DP_INFO(edev, "Failed to allocate struct for PTP\n"); in qede_ptp_enable()
444 ptp->edev = edev; in qede_ptp_enable()
445 ptp->ops = edev->ops->ptp; in qede_ptp_enable()
447 DP_INFO(edev, "PTP enable failed\n"); in qede_ptp_enable()
452 edev->ptp = ptp; in qede_ptp_enable()
454 rc = qede_ptp_init(edev); in qede_ptp_enable()
458 qede_ptp_cfg_filters(edev); in qede_ptp_enable()
462 snprintf(ptp->clock_info.name, 16, "%s", edev->ndev->name); in qede_ptp_enable()
474 ptp->clock = ptp_clock_register(&ptp->clock_info, &edev->pdev->dev); in qede_ptp_enable()
476 DP_ERR(edev, "PTP clock registration failed\n"); in qede_ptp_enable()
477 qede_ptp_disable(edev); in qede_ptp_enable()
487 edev->ptp = NULL; in qede_ptp_enable()
492 void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb) in qede_ptp_tx_ts() argument
496 ptp = edev->ptp; in qede_ptp_tx_ts()
501 &edev->flags)) { in qede_ptp_tx_ts()
502 DP_VERBOSE(edev, QED_MSG_DEBUG, "Timestamping in progress\n"); in qede_ptp_tx_ts()
503 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
507 if (unlikely(!test_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags))) { in qede_ptp_tx_ts()
508 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_tx_ts()
510 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_tx_ts()
511 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
513 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_tx_ts()
515 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_tx_ts()
516 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
526 void qede_ptp_rx_ts(struct qede_dev *edev, struct sk_buff *skb) in qede_ptp_rx_ts() argument
532 ptp = edev->ptp; in qede_ptp_rx_ts()
537 rc = ptp->ops->read_rx_ts(edev->cdev, &timestamp); in qede_ptp_rx_ts()
540 DP_INFO(edev, "Invalid Rx timestamp\n"); in qede_ptp_rx_ts()
547 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_rx_ts()