Lines Matching defs:channel

222  * @channel: The PTP channel (for Medford and Medford2)
289 struct efx_channel *channel;
363 /* PTP 'extra' channel is still a traffic channel, but we only create TX queues
366 static bool efx_ptp_want_txqs(struct efx_channel *channel)
368 return efx_ptp_use_mac_tx_timestamps(channel->efx);
522 return efx->ptp_data ? efx->ptp_data->channel : NULL;
525 void efx_ptp_update_channel(struct efx_nic *efx, struct efx_channel *channel)
528 efx->ptp_data->channel = channel;
533 struct efx_channel *channel = efx_ptp_channel(efx);
536 if (channel)
537 major = channel->sync_timestamp_major;
774 efx->ptp_data->channel ?
775 efx->ptp_data->channel->channel : 0);
1075 tx_queue = efx_channel_get_tx_queue(ptp_data->channel, type);
1110 WARN_ONCE(1, "PTP channel has no timestamped tx queue\n");
1238 struct efx_channel *channel = efx->ptp_data->channel;
1239 struct efx_rx_queue *queue = efx_channel_get_rx_queue(channel);
1327 if (!ptp->channel || !list_empty(&ptp->rxfilters_mcast))
1557 int efx_ptp_probe(struct efx_nic *efx, struct efx_channel *channel)
1563 efx->ptp_data->channel = channel;
1573 ptp->channel = channel;
1589 /* Request sync events on this channel. */
1590 channel->sync_events_state = SYNC_EVENTS_QUIESCENT;
1649 /* Initialise PTP channel.
1654 static int efx_ptp_probe_channel(struct efx_channel *channel)
1656 struct efx_nic *efx = channel->efx;
1659 channel->irq_moderation_us = 0;
1660 channel->rx_queue.core_index = 0;
1662 rc = efx_ptp_probe(efx, channel);
1663 /* Failure to probe PTP is not fatal; this channel will just not be
1701 static void efx_ptp_remove_channel(struct efx_channel *channel)
1703 efx_ptp_remove(channel->efx);
1706 static void efx_ptp_get_channel_name(struct efx_channel *channel,
1709 snprintf(buf, len, "%s-ptp", channel->efx->name);
1734 static bool efx_ptp_rx(struct efx_channel *channel, struct sk_buff *skb)
1736 struct efx_nic *efx = channel->efx;
2002 void efx_time_sync_event(struct efx_channel *channel, efx_qword_t *ev)
2004 struct efx_nic *efx = channel->efx;
2013 channel->sync_timestamp_major = MCDI_EVENT_FIELD(*ev, PTP_TIME_MAJOR);
2014 channel->sync_timestamp_minor =
2021 (void) cmpxchg(&channel->sync_events_state, SYNC_EVENTS_REQUESTED,
2038 void __efx_rx_skb_attach_timestamp(struct efx_channel *channel,
2041 struct efx_nic *efx = channel->efx;
2047 if (channel->sync_events_state != SYNC_EVENTS_VALID)
2055 diff = pkt_timestamp_minor - channel->sync_timestamp_minor;
2056 if (pkt_timestamp_minor < channel->sync_timestamp_minor)
2060 carry = (channel->sync_timestamp_minor >= ptp->nic_time.minor_max - diff) ?
2067 pkt_timestamp_major = channel->sync_timestamp_major + carry;
2073 pkt_timestamp_major = channel->sync_timestamp_major - 1 + carry;
2082 pkt_timestamp_minor, channel->sync_timestamp_major,
2083 channel->sync_timestamp_minor);