Lines Matching refs:edev

18 	struct qede_dev			*edev;  member
41 struct qede_dev *edev = ptp->edev; in qede_ptp_adjfreq() local
44 __qede_lock(edev); in qede_ptp_adjfreq()
45 if (edev->state == QEDE_STATE_OPEN) { in qede_ptp_adjfreq()
47 rc = ptp->ops->adjfreq(edev->cdev, ppb); in qede_ptp_adjfreq()
50 DP_ERR(edev, "PTP adjfreq called while interface is down\n"); in qede_ptp_adjfreq()
53 __qede_unlock(edev); in qede_ptp_adjfreq()
60 struct qede_dev *edev; in qede_ptp_adjtime() local
64 edev = ptp->edev; in qede_ptp_adjtime()
66 DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP adjtime called, delta = %llx\n", in qede_ptp_adjtime()
78 struct qede_dev *edev; in qede_ptp_gettime() local
83 edev = ptp->edev; in qede_ptp_gettime()
89 DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP gettime called, ns = %llu\n", ns); in qede_ptp_gettime()
99 struct qede_dev *edev; in qede_ptp_settime() local
104 edev = ptp->edev; in qede_ptp_settime()
108 DP_VERBOSE(edev, QED_MSG_DEBUG, "PTP settime called, ns = %llu\n", ns); in qede_ptp_settime()
123 struct qede_dev *edev; in qede_ptp_ancillary_feature_enable() local
127 edev = ptp->edev; in qede_ptp_ancillary_feature_enable()
129 DP_ERR(edev, "PHC ancillary features are not supported\n"); in qede_ptp_ancillary_feature_enable()
137 struct qede_dev *edev; in qede_ptp_task() local
144 edev = ptp->edev; in qede_ptp_task()
150 rc = ptp->ops->read_tx_ts(edev->cdev, &timestamp); in qede_ptp_task()
154 DP_INFO(edev, "Tx timestamp is not recorded\n"); in qede_ptp_task()
158 &edev->flags); in qede_ptp_task()
159 edev->ptp_skip_txts++; in qede_ptp_task()
173 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_task()
175 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_task()
183 struct qede_dev *edev; in qede_ptp_read_cc() local
189 edev = ptp->edev; in qede_ptp_read_cc()
190 rc = ptp->ops->read_cc(edev->cdev, &phc_cycles); in qede_ptp_read_cc()
194 DP_VERBOSE(edev, QED_MSG_DEBUG, "PHC read cycles = %llu\n", phc_cycles); in qede_ptp_read_cc()
199 static int qede_ptp_cfg_filters(struct qede_dev *edev) in qede_ptp_cfg_filters() argument
203 struct qede_ptp *ptp = edev->ptp; in qede_ptp_cfg_filters()
209 DP_INFO(edev, "TS IOCTL not called\n"); in qede_ptp_cfg_filters()
215 set_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags); in qede_ptp_cfg_filters()
220 clear_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags); in qede_ptp_cfg_filters()
226 DP_ERR(edev, "One-step timestamping is not supported\n"); in qede_ptp_cfg_filters()
283 ptp->ops->cfg_filters(edev->cdev, rx_filter, tx_type); in qede_ptp_cfg_filters()
290 int qede_ptp_hw_ts(struct qede_dev *edev, struct ifreq *ifr) in qede_ptp_hw_ts() argument
296 ptp = edev->ptp; in qede_ptp_hw_ts()
303 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_hw_ts()
308 DP_ERR(edev, "config.flags is reserved for future use\n"); in qede_ptp_hw_ts()
316 rc = qede_ptp_cfg_filters(edev); in qede_ptp_hw_ts()
326 int qede_ptp_get_ts_info(struct qede_dev *edev, struct ethtool_ts_info *info) in qede_ptp_get_ts_info() argument
328 struct qede_ptp *ptp = edev->ptp; in qede_ptp_get_ts_info()
370 void qede_ptp_disable(struct qede_dev *edev) in qede_ptp_disable() argument
374 ptp = edev->ptp; in qede_ptp_disable()
390 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_disable()
395 ptp->ops->disable(edev->cdev); in qede_ptp_disable()
399 edev->ptp = NULL; in qede_ptp_disable()
402 static int qede_ptp_init(struct qede_dev *edev) in qede_ptp_init() argument
407 ptp = edev->ptp; in qede_ptp_init()
414 rc = ptp->ops->enable(edev->cdev); in qede_ptp_init()
416 DP_INFO(edev, "PTP HW enable failed\n"); in qede_ptp_init()
435 int qede_ptp_enable(struct qede_dev *edev) in qede_ptp_enable() argument
442 DP_INFO(edev, "Failed to allocate struct for PTP\n"); in qede_ptp_enable()
446 ptp->edev = edev; in qede_ptp_enable()
447 ptp->ops = edev->ops->ptp; in qede_ptp_enable()
449 DP_INFO(edev, "PTP enable failed\n"); in qede_ptp_enable()
454 edev->ptp = ptp; in qede_ptp_enable()
456 rc = qede_ptp_init(edev); in qede_ptp_enable()
460 qede_ptp_cfg_filters(edev); in qede_ptp_enable()
464 snprintf(ptp->clock_info.name, 16, "%s", edev->ndev->name); in qede_ptp_enable()
476 ptp->clock = ptp_clock_register(&ptp->clock_info, &edev->pdev->dev); in qede_ptp_enable()
478 DP_ERR(edev, "PTP clock registration failed\n"); in qede_ptp_enable()
479 qede_ptp_disable(edev); in qede_ptp_enable()
489 edev->ptp = NULL; in qede_ptp_enable()
494 void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb) in qede_ptp_tx_ts() argument
498 ptp = edev->ptp; in qede_ptp_tx_ts()
503 &edev->flags)) { in qede_ptp_tx_ts()
504 DP_ERR(edev, "Timestamping in progress\n"); in qede_ptp_tx_ts()
505 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
509 if (unlikely(!test_bit(QEDE_FLAGS_TX_TIMESTAMPING_EN, &edev->flags))) { in qede_ptp_tx_ts()
510 DP_ERR(edev, in qede_ptp_tx_ts()
512 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_tx_ts()
513 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
515 DP_ERR(edev, in qede_ptp_tx_ts()
517 clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags); in qede_ptp_tx_ts()
518 edev->ptp_skip_txts++; in qede_ptp_tx_ts()
528 void qede_ptp_rx_ts(struct qede_dev *edev, struct sk_buff *skb) in qede_ptp_rx_ts() argument
534 ptp = edev->ptp; in qede_ptp_rx_ts()
539 rc = ptp->ops->read_rx_ts(edev->cdev, &timestamp); in qede_ptp_rx_ts()
542 DP_INFO(edev, "Invalid Rx timestamp\n"); in qede_ptp_rx_ts()
549 DP_VERBOSE(edev, QED_MSG_DEBUG, in qede_ptp_rx_ts()