Lines Matching +full:1000 +full:- +full:10000
1 // SPDX-License-Identifier: GPL-2.0
89 struct qeth_card *card = dev->ml_priv; in qeth_get_sset_count()
94 card->qdio.no_out_queues * TXQ_STATS_LEN; in qeth_get_sset_count()
96 return -EINVAL; in qeth_get_sset_count()
103 struct qeth_card *card = dev->ml_priv; in qeth_get_ethtool_stats()
106 qeth_add_stat_data(&data, &card->stats, card_stats, CARD_STATS_LEN); in qeth_get_ethtool_stats()
107 for (i = 0; i < card->qdio.no_out_queues; i++) in qeth_get_ethtool_stats()
108 qeth_add_stat_data(&data, &card->qdio.out_qs[i]->stats, in qeth_get_ethtool_stats()
116 WRITE_ONCE(queue->coalesce_usecs, coal->tx_coalesce_usecs); in __qeth_set_coalesce()
117 WRITE_ONCE(queue->max_coalesced_frames, coal->tx_max_coalesced_frames); in __qeth_set_coalesce()
119 if (coal->tx_coalesce_usecs && in __qeth_set_coalesce()
122 qeth_tx_arm_timer(queue, coal->tx_coalesce_usecs); in __qeth_set_coalesce()
130 struct qeth_card *card = dev->ml_priv; in qeth_set_coalesce()
135 return -EOPNOTSUPP; in qeth_set_coalesce()
137 if (!coal->tx_coalesce_usecs && !coal->tx_max_coalesced_frames) in qeth_set_coalesce()
138 return -EINVAL; in qeth_set_coalesce()
151 struct qeth_card *card = dev->ml_priv; in qeth_get_ringparam()
153 param->rx_max_pending = QDIO_MAX_BUFFERS_PER_Q; in qeth_get_ringparam()
154 param->rx_mini_max_pending = 0; in qeth_get_ringparam()
155 param->rx_jumbo_max_pending = 0; in qeth_get_ringparam()
156 param->tx_max_pending = QDIO_MAX_BUFFERS_PER_Q; in qeth_get_ringparam()
158 param->rx_pending = card->qdio.in_buf_pool.buf_count; in qeth_get_ringparam()
159 param->rx_mini_pending = 0; in qeth_get_ringparam()
160 param->rx_jumbo_pending = 0; in qeth_get_ringparam()
161 param->tx_pending = QDIO_MAX_BUFFERS_PER_Q; in qeth_get_ringparam()
166 struct qeth_card *card = dev->ml_priv; in qeth_get_strings()
174 for (i = 0; i < card->qdio.no_out_queues; i++) { in qeth_get_strings()
189 struct qeth_card *card = dev->ml_priv; in qeth_get_drvinfo()
191 strscpy(info->driver, IS_LAYER2(card) ? "qeth_l2" : "qeth_l3", in qeth_get_drvinfo()
192 sizeof(info->driver)); in qeth_get_drvinfo()
193 strscpy(info->fw_version, card->info.mcl_level, in qeth_get_drvinfo()
194 sizeof(info->fw_version)); in qeth_get_drvinfo()
195 scnprintf(info->bus_info, sizeof(info->bus_info), "%s/%s/%s", in qeth_get_drvinfo()
202 struct qeth_card *card = dev->ml_priv; in qeth_get_channels()
204 channels->max_rx = dev->num_rx_queues; in qeth_get_channels()
205 channels->max_tx = card->qdio.no_out_queues; in qeth_get_channels()
206 channels->max_other = 0; in qeth_get_channels()
207 channels->max_combined = 0; in qeth_get_channels()
208 channels->rx_count = dev->real_num_rx_queues; in qeth_get_channels()
209 channels->tx_count = dev->real_num_tx_queues; in qeth_get_channels()
210 channels->other_count = 0; in qeth_get_channels()
211 channels->combined_count = 0; in qeth_get_channels()
218 struct qeth_card *card = dev->ml_priv; in qeth_set_channels()
221 if (channels->rx_count == 0 || channels->tx_count == 0) in qeth_set_channels()
222 return -EINVAL; in qeth_set_channels()
223 if (channels->tx_count > card->qdio.no_out_queues) in qeth_set_channels()
224 return -EINVAL; in qeth_set_channels()
226 /* Prio-queueing needs all TX queues: */ in qeth_set_channels()
228 return -EPERM; in qeth_set_channels()
231 if (channels->tx_count < QETH_IQD_MIN_TXQ) in qeth_set_channels()
232 return -EINVAL; in qeth_set_channels()
238 channels->tx_count < dev->real_num_tx_queues) in qeth_set_channels()
239 return -EPERM; in qeth_set_channels()
242 rc = qeth_set_real_num_tx_queues(card, channels->tx_count); in qeth_set_channels()
244 priv->tx_wanted_queues = channels->tx_count; in qeth_set_channels()
252 struct qeth_card *card = dev->ml_priv; in qeth_get_ts_info()
255 return -EOPNOTSUPP; in qeth_get_ts_info()
265 switch (tuna->id) { in qeth_get_tunable()
267 *(u32 *)data = priv->rx_copybreak; in qeth_get_tunable()
270 return -EOPNOTSUPP; in qeth_get_tunable()
280 switch (tuna->id) { in qeth_set_tunable()
282 WRITE_ONCE(priv->rx_copybreak, *(u32 *)data); in qeth_set_tunable()
285 return -EOPNOTSUPP; in qeth_set_tunable()
292 struct qeth_card *card = dev->ml_priv; in qeth_get_per_queue_coalesce()
296 return -EOPNOTSUPP; in qeth_get_per_queue_coalesce()
298 if (__queue >= card->qdio.no_out_queues) in qeth_get_per_queue_coalesce()
299 return -EINVAL; in qeth_get_per_queue_coalesce()
301 queue = card->qdio.out_qs[__queue]; in qeth_get_per_queue_coalesce()
303 coal->tx_coalesce_usecs = queue->coalesce_usecs; in qeth_get_per_queue_coalesce()
304 coal->tx_max_coalesced_frames = queue->max_coalesced_frames; in qeth_get_per_queue_coalesce()
311 struct qeth_card *card = dev->ml_priv; in qeth_set_per_queue_coalesce()
314 return -EOPNOTSUPP; in qeth_set_per_queue_coalesce()
316 if (queue >= card->qdio.no_out_queues) in qeth_set_per_queue_coalesce()
317 return -EINVAL; in qeth_set_per_queue_coalesce()
319 if (!coal->tx_coalesce_usecs && !coal->tx_max_coalesced_frames) in qeth_set_per_queue_coalesce()
320 return -EINVAL; in qeth_set_per_queue_coalesce()
322 __qeth_set_coalesce(dev, card->qdio.out_qs[queue], coal); in qeth_set_per_queue_coalesce()
327 /* Autoneg and full-duplex are supported and advertised unconditionally. */
340 switch (cmd->base.port) { in qeth_set_ethtool_link_modes()
345 switch (cmd->base.speed) { in qeth_set_ethtool_link_modes()
348 10000baseT_Full); in qeth_set_ethtool_link_modes()
350 10000baseT_Full); in qeth_set_ethtool_link_modes()
354 1000baseT_Full); in qeth_set_ethtool_link_modes()
356 1000baseT_Full); in qeth_set_ethtool_link_modes()
358 1000baseT_Half); in qeth_set_ethtool_link_modes()
360 1000baseT_Half); in qeth_set_ethtool_link_modes()
391 switch (cmd->base.speed) { in qeth_set_ethtool_link_modes()
401 10000baseLR_Full); in qeth_set_ethtool_link_modes()
403 10000baseLR_Full); in qeth_set_ethtool_link_modes()
406 10000baseSR_Full); in qeth_set_ethtool_link_modes()
408 10000baseSR_Full); in qeth_set_ethtool_link_modes()
413 1000baseX_Full); in qeth_set_ethtool_link_modes()
415 1000baseX_Full); in qeth_set_ethtool_link_modes()
430 struct qeth_card *card = netdev->ml_priv; in qeth_get_link_ksettings()
433 cmd->base.speed = card->info.link_info.speed; in qeth_get_link_ksettings()
434 cmd->base.duplex = card->info.link_info.duplex; in qeth_get_link_ksettings()
435 cmd->base.port = card->info.link_info.port; in qeth_get_link_ksettings()
436 cmd->base.autoneg = AUTONEG_ENABLE; in qeth_get_link_ksettings()
437 cmd->base.phy_address = 0; in qeth_get_link_ksettings()
438 cmd->base.mdio_support = 0; in qeth_get_link_ksettings()
439 cmd->base.eth_tp_mdix = ETH_TP_MDI_INVALID; in qeth_get_link_ksettings()
440 cmd->base.eth_tp_mdix_ctrl = ETH_TP_MDI_INVALID; in qeth_get_link_ksettings()
442 qeth_set_ethtool_link_modes(cmd, card->info.link_info.link_mode); in qeth_get_link_ksettings()