Lines Matching +full:asym +full:- +full:pause

1 /* Copyright 2008-2016 Freescale Semiconductor, Inc.
83 if (!net_dev->phydev) in dpaa_get_link_ksettings()
86 phy_ethtool_ksettings_get(net_dev->phydev, cmd); in dpaa_get_link_ksettings()
96 if (!net_dev->phydev) in dpaa_set_link_ksettings()
97 return -ENODEV; in dpaa_set_link_ksettings()
99 err = phy_ethtool_ksettings_set(net_dev->phydev, cmd); in dpaa_set_link_ksettings()
109 strlcpy(drvinfo->driver, KBUILD_MODNAME, in dpaa_get_drvinfo()
110 sizeof(drvinfo->driver)); in dpaa_get_drvinfo()
111 strlcpy(drvinfo->bus_info, dev_name(net_dev->dev.parent->parent), in dpaa_get_drvinfo()
112 sizeof(drvinfo->bus_info)); in dpaa_get_drvinfo()
117 return ((struct dpaa_priv *)netdev_priv(net_dev))->msg_enable; in dpaa_get_msglevel()
123 ((struct dpaa_priv *)netdev_priv(net_dev))->msg_enable = msg_enable; in dpaa_set_msglevel()
130 if (!net_dev->phydev) in dpaa_nway_reset()
131 return -ENODEV; in dpaa_nway_reset()
134 if (net_dev->phydev->autoneg) { in dpaa_nway_reset()
135 err = phy_start_aneg(net_dev->phydev); in dpaa_nway_reset()
151 mac_dev = priv->mac_dev; in dpaa_get_pauseparam()
153 if (!net_dev->phydev) in dpaa_get_pauseparam()
156 epause->autoneg = mac_dev->autoneg_pause; in dpaa_get_pauseparam()
157 epause->rx_pause = mac_dev->rx_pause_active; in dpaa_get_pauseparam()
158 epause->tx_pause = mac_dev->tx_pause_active; in dpaa_get_pauseparam()
171 mac_dev = priv->mac_dev; in dpaa_set_pauseparam()
173 phydev = net_dev->phydev; in dpaa_set_pauseparam()
176 return -ENODEV; in dpaa_set_pauseparam()
180 return -EINVAL; in dpaa_set_pauseparam()
182 /* The MAC should know how to handle PAUSE frame autonegotiation before in dpaa_set_pauseparam()
183 * adjust_link is triggered by a forced renegotiation of sym/asym PAUSE in dpaa_set_pauseparam()
186 mac_dev->autoneg_pause = !!epause->autoneg; in dpaa_set_pauseparam()
187 mac_dev->rx_pause_req = !!epause->rx_pause; in dpaa_set_pauseparam()
188 mac_dev->tx_pause_req = !!epause->tx_pause; in dpaa_set_pauseparam()
190 /* Determine the sym/asym advertised PAUSE capabilities from the desired in dpaa_set_pauseparam()
191 * rx/tx pause settings. in dpaa_set_pauseparam()
194 phy_set_asym_pause(phydev, epause->rx_pause, epause->tx_pause); in dpaa_set_pauseparam()
216 return -EOPNOTSUPP; in dpaa_get_sset_count()
227 data[crr * num_values + crr_cpu] = percpu_priv->in_interrupt; in copy_stats()
228 data[crr++ * num_values + num_cpus] += percpu_priv->in_interrupt; in copy_stats()
230 data[crr * num_values + crr_cpu] = percpu_priv->stats.rx_packets; in copy_stats()
231 data[crr++ * num_values + num_cpus] += percpu_priv->stats.rx_packets; in copy_stats()
233 data[crr * num_values + crr_cpu] = percpu_priv->stats.tx_packets; in copy_stats()
234 data[crr++ * num_values + num_cpus] += percpu_priv->stats.tx_packets; in copy_stats()
236 data[crr * num_values + crr_cpu] = percpu_priv->tx_confirm; in copy_stats()
237 data[crr++ * num_values + num_cpus] += percpu_priv->tx_confirm; in copy_stats()
239 data[crr * num_values + crr_cpu] = percpu_priv->tx_frag_skbuffs; in copy_stats()
240 data[crr++ * num_values + num_cpus] += percpu_priv->tx_frag_skbuffs; in copy_stats()
242 data[crr * num_values + crr_cpu] = percpu_priv->stats.tx_errors; in copy_stats()
243 data[crr++ * num_values + num_cpus] += percpu_priv->stats.tx_errors; in copy_stats()
245 data[crr * num_values + crr_cpu] = percpu_priv->stats.rx_errors; in copy_stats()
246 data[crr++ * num_values + num_cpus] += percpu_priv->stats.rx_errors; in copy_stats()
248 data[crr * num_values + crr_cpu] = percpu_priv->stats.rx_dropped; in copy_stats()
249 data[crr++ * num_values + num_cpus] += percpu_priv->stats.rx_dropped; in copy_stats()
251 data[crr * num_values + crr_cpu] = percpu_priv->stats.tx_dropped; in copy_stats()
252 data[crr++ * num_values + num_cpus] += percpu_priv->stats.tx_dropped; in copy_stats()
281 percpu_priv = per_cpu_ptr(priv->percpu_priv, i); in dpaa_get_ethtool_stats()
282 dpaa_bp = priv->dpaa_bp; in dpaa_get_ethtool_stats()
283 if (!dpaa_bp->percpu_count) in dpaa_get_ethtool_stats()
285 bp_count = *(per_cpu_ptr(dpaa_bp->percpu_count, i)); in dpaa_get_ethtool_stats()
286 rx_errors.dme += percpu_priv->rx_errors.dme; in dpaa_get_ethtool_stats()
287 rx_errors.fpe += percpu_priv->rx_errors.fpe; in dpaa_get_ethtool_stats()
288 rx_errors.fse += percpu_priv->rx_errors.fse; in dpaa_get_ethtool_stats()
289 rx_errors.phe += percpu_priv->rx_errors.phe; in dpaa_get_ethtool_stats()
291 ern_cnt.cg_tdrop += percpu_priv->ern_cnt.cg_tdrop; in dpaa_get_ethtool_stats()
292 ern_cnt.wred += percpu_priv->ern_cnt.wred; in dpaa_get_ethtool_stats()
293 ern_cnt.err_cond += percpu_priv->ern_cnt.err_cond; in dpaa_get_ethtool_stats()
294 ern_cnt.early_window += percpu_priv->ern_cnt.early_window; in dpaa_get_ethtool_stats()
295 ern_cnt.late_window += percpu_priv->ern_cnt.late_window; in dpaa_get_ethtool_stats()
296 ern_cnt.fq_tdrop += percpu_priv->ern_cnt.fq_tdrop; in dpaa_get_ethtool_stats()
297 ern_cnt.fq_retired += percpu_priv->ern_cnt.fq_retired; in dpaa_get_ethtool_stats()
298 ern_cnt.orp_zero += percpu_priv->ern_cnt.orp_zero; in dpaa_get_ethtool_stats()
312 cg_time = jiffies_to_msecs(priv->cgr_data.congested_jiffies); in dpaa_get_ethtool_stats()
313 if (qman_query_cgr_congested(&priv->cgr_data.cgr, &cg_status) == 0) { in dpaa_get_ethtool_stats()
314 cg_num = priv->cgr_data.cgr_congested_count; in dpaa_get_ethtool_stats()
317 priv->cgr_data.congested_jiffies = 0; in dpaa_get_ethtool_stats()
318 priv->cgr_data.cgr_congested_count = 0; in dpaa_get_ethtool_stats()
369 cmd->data = 0; in dpaa_get_hash_opts()
371 switch (cmd->flow_type) { in dpaa_get_hash_opts()
376 if (priv->keygen_in_use) in dpaa_get_hash_opts()
377 cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; in dpaa_get_hash_opts()
389 if (priv->keygen_in_use) in dpaa_get_hash_opts()
390 cmd->data |= RXH_IP_SRC | RXH_IP_DST; in dpaa_get_hash_opts()
393 cmd->data = 0; in dpaa_get_hash_opts()
403 int ret = -EOPNOTSUPP; in dpaa_get_rxnfc()
405 switch (cmd->cmd) { in dpaa_get_rxnfc()
423 mac_dev = priv->mac_dev; in dpaa_set_hash()
424 rxport = mac_dev->port[0]; in dpaa_set_hash()
427 priv->keygen_in_use = enable; in dpaa_set_hash()
433 int ret = -EINVAL; in dpaa_set_hash_opts()
436 if (nfc->data & in dpaa_set_hash_opts()
438 return -EINVAL; in dpaa_set_hash_opts()
440 switch (nfc->flow_type) { in dpaa_set_hash_opts()
455 dpaa_set_hash(dev, !!nfc->data); in dpaa_set_hash_opts()
467 int ret = -EOPNOTSUPP; in dpaa_set_rxnfc()
469 switch (cmd->cmd) { in dpaa_set_rxnfc()
483 struct device *dev = net_dev->dev.parent; in dpaa_get_ts_info()
484 struct device_node *mac_node = dev->of_node; in dpaa_get_ts_info()
489 info->phc_index = -1; in dpaa_get_ts_info()
493 ptp_node = of_parse_phandle(fman_node, "ptimer-handle", 0); in dpaa_get_ts_info()
502 info->phc_index = ptp->phc_index; in dpaa_get_ts_info()
504 info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE | in dpaa_get_ts_info()
507 info->tx_types = (1 << HWTSTAMP_TX_OFF) | in dpaa_get_ts_info()
509 info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) | in dpaa_get_ts_info()
526 c->rx_coalesce_usecs = period; in dpaa_get_coalesce()
527 c->rx_max_coalesced_frames = thresh; in dpaa_get_coalesce()
542 period = c->rx_coalesce_usecs; in dpaa_set_coalesce()
543 thresh = c->rx_max_coalesced_frames; in dpaa_set_coalesce()