ts_info
dst = &lat_buf->ts_info;
v4l2_m2m_buf_copy_metadata(&lat_buf->ts_info, dst);
v4l2_m2m_buf_copy_metadata(&lat_buf->ts_info, vb2_v4l2);
v4l2_m2m_buf_copy_metadata(&lat_buf->ts_info, vb2_v4l2);
&lat_buf->ts_info);
&lat_buf->ts_info);
&lat_buf->ts_info);
v4l2_m2m_buf_copy_metadata(&lat_buf->ts_info, vb2_v4l2);
v4l2_m2m_buf_copy_metadata(&lat_buf->ts_info, dst);
dst = &lat_buf->ts_info;
struct vb2_v4l2_buffer ts_info;
struct kernel_ethtool_ts_info ts_info;
ret = ethtool_get_ts_info_by_layer(slave->dev, &ts_info);
if (!ret && (ts_info.so_timestamping & SOF_TIMESTAMPING_TX_SOFTWARE)) {
struct kernel_ethtool_ts_info *ts_info)
ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
ts_info->phc_index = ptp_clock_index(pdata->ptp_clock);
ts_info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
ts_info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
static int get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info *ts_info)
ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
ts_info->tx_types = (1 << HWTSTAMP_TX_OFF) |
ts_info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
ts_info->phc_index = ptp_clock_index(adapter->ptp_clock);
struct ice_ts_func_info *ts_info = &hw->func_caps.ts_func_info;
tspll_freq = (enum ice_tspll_freq)ts_info->time_ref;
clk_src = (enum ice_clk_src)ts_info->clk_src;
struct kernel_ethtool_ts_info *ts_info)
ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
ts_info->phc_index = ptp_clock_index(adapter->ptp.ptp_clock);
ts_info->tx_types = BIT(HWTSTAMP_TX_OFF) |
ts_info->rx_filters = BIT(HWTSTAMP_FILTER_NONE) |
struct kernel_ethtool_ts_info *ts_info)
efx_ptp_get_ts_info(efx, ts_info);
void efx_ptp_get_ts_info(struct efx_nic *efx, struct kernel_ethtool_ts_info *ts_info)
ts_info->so_timestamping |= (SOF_TIMESTAMPING_TX_HARDWARE |
ts_info->so_timestamping &=
ts_info->phc_index =
ts_info->tx_types = 1 << HWTSTAMP_TX_OFF | 1 << HWTSTAMP_TX_ON;
ts_info->rx_filters = ptp->efx->type->hwtstamp_filters;
struct kernel_ethtool_ts_info *ts_info);
struct kernel_ethtool_ts_info *ts_info)
efx_siena_ptp_get_ts_info(efx, ts_info);
struct kernel_ethtool_ts_info *ts_info)
ts_info->so_timestamping |= (SOF_TIMESTAMPING_TX_HARDWARE |
ts_info->phc_index =
ts_info->tx_types = 1 << HWTSTAMP_TX_OFF | 1 << HWTSTAMP_TX_ON;
ts_info->rx_filters = ptp->efx->type->hwtstamp_filters;
struct kernel_ethtool_ts_info *ts_info);
struct kernel_ethtool_ts_info *ts_info)
ts_info->phc_index = ptp_clock_index(priv->ptp_clock);
ts_info->so_timestamping =
ts_info->tx_types =
ts_info->rx_filters =
priv->mii_ts.ts_info = bcm_ptp_ts_info;
dp83640->mii_ts.ts_info = dp83640_ts_info;
ptp_priv->mii_ts.ts_info = lan8814_ts_info;
ptp_priv->mii_ts.ts_info = lan8841_ts_info;
clock->mii_ts.ts_info = mchp_rds_ptp_ts_info;
vsc8531->mii_ts.ts_info = vsc85xx_ts_info;
struct kernel_ethtool_ts_info *ts_info)
ts_info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE |
ts_info->phc_index = ptp_clock_index(priv->ptp_clock);
ts_info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
ts_info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
priv->mii_ts.ts_info = nxp_c45_ts_info;
u32 slot_map, struct qmc_chan_ts_info *ts_info)
if (ts_info->rx_ts_mask_avail != ts_info->tx_ts_mask_avail) {
ts_info->rx_ts_mask_avail, ts_info->tx_ts_mask_avail);
bitmap_from_u64(ts_mask_avail, ts_info->rx_ts_mask_avail);
bitmap_to_arr64(&ts_info->tx_ts_mask, ts_mask, 64);
ts_info->rx_ts_mask = ts_info->tx_ts_mask;
const struct qmc_chan_ts_info *ts_info, u32 *slot_map)
if (ts_info->rx_ts_mask_avail != ts_info->tx_ts_mask_avail) {
ts_info->rx_ts_mask_avail, ts_info->tx_ts_mask_avail);
if (ts_info->rx_ts_mask != ts_info->tx_ts_mask) {
ts_info->rx_ts_mask, ts_info->tx_ts_mask);
bitmap_from_u64(ts_mask_avail, ts_info->rx_ts_mask_avail);
bitmap_from_u64(ts_mask, ts_info->rx_ts_mask);
struct qmc_chan_ts_info ts_info;
ret = qmc_chan_get_ts_info(qmc_hdlc->qmc_chan, &ts_info);
ret = qmc_hdlc_xlate_slot_map(qmc_hdlc, te1->slot_map, &ts_info);
ret = qmc_chan_set_ts_info(qmc_hdlc->qmc_chan, &ts_info);
struct qmc_chan_ts_info ts_info;
ret = qmc_chan_get_ts_info(qmc_hdlc->qmc_chan, &ts_info);
ret = qmc_hdlc_xlate_ts_info(qmc_hdlc, &ts_info, &qmc_hdlc->slot_map);
struct ts_info *st_ts;
struct ts_info ts[ATH_DYN_BUF];
struct wcn36xx_hal_ts_info ts_info;
port->mii_ts.ts_info = ines_ts_info;
int qmc_chan_get_ts_info(struct qmc_chan *chan, struct qmc_chan_ts_info *ts_info)
ts_info->rx_ts_mask_avail = chan->rx_ts_mask_avail;
ts_info->tx_ts_mask_avail = chan->tx_ts_mask_avail;
ts_info->rx_ts_mask = chan->rx_ts_mask;
ts_info->tx_ts_mask = chan->tx_ts_mask;
int qmc_chan_set_ts_info(struct qmc_chan *chan, const struct qmc_chan_ts_info *ts_info)
if ((ts_info->rx_ts_mask & chan->rx_ts_mask_avail) != ts_info->rx_ts_mask)
if ((ts_info->tx_ts_mask & chan->tx_ts_mask_avail) != ts_info->tx_ts_mask)
if (ts_info->rx_ts_mask != ts_info->tx_ts_mask)
if ((chan->tx_ts_mask != ts_info->tx_ts_mask && !chan->is_tx_stopped) ||
(chan->rx_ts_mask != ts_info->rx_ts_mask && !chan->is_rx_stopped)) {
chan->tx_ts_mask = ts_info->tx_ts_mask;
chan->rx_ts_mask = ts_info->rx_ts_mask;
int (*ts_info)(struct mii_timestamper *mii_ts,
struct kernel_ethtool_ts_info *ts_info);
return phydev && phydev->mii_ts && phydev->mii_ts->ts_info;
return phydev->mii_ts->ts_info(phydev->mii_ts, tsinfo);
struct kernel_ethtool_ts_info *ts_info);
int qmc_chan_get_ts_info(struct qmc_chan *chan, struct qmc_chan_ts_info *ts_info);
int qmc_chan_set_ts_info(struct qmc_chan *chan, const struct qmc_chan_ts_info *ts_info);
struct kernel_ethtool_ts_info ts_info = {};
ret = hci_ethtool_ts_info(index, sk->sk_protocol, &ts_info);
info.so_timestamping = ts_info.so_timestamping;
info.phc_index = ts_info.phc_index;
info.tx_types = ts_info.tx_types;
info.rx_filters = ts_info.rx_filters;
struct kernel_ethtool_ts_info ts_info;
ret = ethtool_net_get_ts_info_by_phc(dev, &ts_info, hwprov_desc);
phy = ethtool_phy_get_ts_info_by_phc(dev, &ts_info, hwprov_desc);
struct kernel_ethtool_ts_info ts_info = {};
ts_info.phc_index = -1;
ret = __ethtool_get_ts_info(dev, &ts_info);
if (ts_info.phc_index == -1)
data->hwprov_desc.index = ts_info.phc_index;
data->hwprov_desc.qualifier = ts_info.phc_qualifier;
ret = ethtool_get_ts_info_by_phc(dev, &data->ts_info,
ret = __ethtool_get_ts_info(dev, &data->ts_info);
const struct kernel_ethtool_ts_info *ts_info = &data->ts_info;
if (ts_info->so_timestamping) {
ret = ethnl_bitset32_size(&ts_info->so_timestamping, NULL,
if (ts_info->tx_types) {
ret = ethnl_bitset32_size(&ts_info->tx_types, NULL,
if (ts_info->rx_filters) {
ret = ethnl_bitset32_size(&ts_info->rx_filters, NULL,
if (ts_info->phc_index >= 0) {
if (ts_info->phc_source) {
if (ts_info->phc_phyindex)
struct kernel_ethtool_ts_info ts_info;
const struct kernel_ethtool_ts_info *ts_info = &data->ts_info;
if (ts_info->so_timestamping) {
&ts_info->so_timestamping, NULL,
if (ts_info->tx_types) {
&ts_info->tx_types, NULL,
if (ts_info->rx_filters) {
&ts_info->rx_filters, NULL,
if (ts_info->phc_index >= 0) {
ts_info->phc_index);
ts_info->phc_index) ||
ts_info->phc_qualifier)) {
if (ts_info->phc_source) {
ts_info->phc_source))
if (ts_info->phc_phyindex &&
ts_info->phc_phyindex))
reply_data->ts_info.cmd = ETHTOOL_GET_TS_INFO;
reply_data->ts_info.phc_index = -1;
reply_data->ts_info.so_timestamping |= SOF_TIMESTAMPING_RX_SOFTWARE |
ret = phy_ts_info(phydev, &reply_data->ts_info);
if (reply_data->ts_info.phc_index >= 0) {
reply_data->ts_info.phc_source = HWTSTAMP_SOURCE_PHYLIB;
reply_data->ts_info.phc_phyindex = phydev->phyindex;
reply_data->ts_info.phc_qualifier = ctx->pos_phcqualifier;
ret = ops->get_ts_info(dev, &reply_data->ts_info);
if (reply_data->ts_info.phc_index >= 0)
reply_data->ts_info.phc_source = HWTSTAMP_SOURCE_NETDEV;
struct qmc_chan_ts_info ts_info;
ret = qmc_chan_get_ts_info(qmc_dai->qmc_chans[i], &ts_info);
last_rx_ts = fls64(ts_info.rx_ts_mask);
last_tx_ts = fls64(ts_info.tx_ts_mask);