Lines Matching refs:nsp

132 nfp_eth_port_translate(struct nfp_nsp *nsp, const union eth_table_entry *src,
163 if (nfp_nsp_get_abi_ver_minor(nsp) < 17)
169 if (nfp_nsp_get_abi_ver_minor(nsp) < 22)
182 if (nfp_nsp_get_abi_ver_minor(nsp) < 33)
188 if (nfp_nsp_get_abi_ver_minor(nsp) < 37) {
244 nfp_eth_read_media(struct nfp_cpp *cpp, struct nfp_nsp *nsp, struct nfp_eth_table_port *entry)
252 if (!nfp_nsp_has_read_media(nsp))
255 ret = nfp_nsp_read_media(nsp, &ethm, sizeof(ethm));
279 struct nfp_nsp *nsp;
281 nsp = nfp_nsp_open(cpp);
282 if (IS_ERR(nsp))
285 ret = __nfp_eth_read_ports(cpp, nsp);
286 nfp_nsp_close(nsp);
292 __nfp_eth_read_ports(struct nfp_cpp *cpp, struct nfp_nsp *nsp)
302 ret = nfp_nsp_read_eth_table(nsp, entries, NSP_ETH_TABLE_SIZE);
329 nfp_eth_port_translate(nsp, &entries[i], i,
335 nfp_eth_read_media(cpp, nsp, &table->ports[i]);
350 struct nfp_nsp *nsp;
357 nsp = nfp_nsp_open(cpp);
358 if (IS_ERR(nsp)) {
360 return nsp;
363 ret = nfp_nsp_read_eth_table(nsp, entries, NSP_ETH_TABLE_SIZE);
375 nfp_nsp_config_set_state(nsp, entries, idx);
376 return nsp;
379 nfp_nsp_close(nsp);
384 void nfp_eth_config_cleanup_end(struct nfp_nsp *nsp)
386 union eth_table_entry *entries = nfp_nsp_config_entries(nsp);
388 nfp_nsp_config_set_modified(nsp, false);
389 nfp_nsp_config_clear_state(nsp);
390 nfp_nsp_close(nsp);
396 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
399 * helpers and recorded in @nsp state. If device was already configured
408 int nfp_eth_config_commit_end(struct nfp_nsp *nsp)
410 union eth_table_entry *entries = nfp_nsp_config_entries(nsp);
413 if (nfp_nsp_config_modified(nsp)) {
414 ret = nfp_nsp_write_eth_table(nsp, entries, NSP_ETH_TABLE_SIZE);
418 nfp_eth_config_cleanup_end(nsp);
440 struct nfp_nsp *nsp;
443 nsp = nfp_eth_config_start(cpp, idx);
444 if (IS_ERR(nsp))
445 return PTR_ERR(nsp);
447 entries = nfp_nsp_config_entries(nsp);
457 nfp_nsp_config_set_modified(nsp, true);
460 return nfp_eth_config_commit_end(nsp);
479 struct nfp_nsp *nsp;
482 nsp = nfp_eth_config_start(cpp, idx);
483 if (IS_ERR(nsp))
484 return PTR_ERR(nsp);
489 if (nfp_nsp_get_abi_ver_minor(nsp) < 20) {
490 nfp_eth_config_cleanup_end(nsp);
494 entries = nfp_nsp_config_entries(nsp);
504 nfp_nsp_config_set_modified(nsp, true);
507 return nfp_eth_config_commit_end(nsp);
511 nfp_eth_set_bit_config(struct nfp_nsp *nsp, unsigned int raw_idx,
515 union eth_table_entry *entries = nfp_nsp_config_entries(nsp);
516 unsigned int idx = nfp_nsp_config_idx(nsp);
522 if (nfp_nsp_get_abi_ver_minor(nsp) < 17) {
523 nfp_err(nfp_nsp_cpp(nsp),
539 nfp_nsp_config_set_modified(nsp, true);
547 struct nfp_nsp *nsp;
550 nsp = nfp_eth_config_start(cpp, idx);
551 if (IS_ERR(nsp))
552 return PTR_ERR(nsp);
555 if (nfp_nsp_get_abi_ver_minor(nsp) < 32) {
556 nfp_err(nfp_nsp_cpp(nsp),
558 nfp_eth_config_cleanup_end(nsp);
562 entries = nfp_nsp_config_entries(nsp);
569 nfp_nsp_config_set_modified(nsp, true);
571 return nfp_eth_config_commit_end(nsp);
574 #define NFP_ETH_SET_BIT_CONFIG(nsp, raw_idx, mask, val, ctrl_bit) \
577 nfp_eth_set_bit_config(nsp, raw_idx, mask, __bf_shf(mask), \
583 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
591 int __nfp_eth_set_aneg(struct nfp_nsp *nsp, enum nfp_eth_aneg mode)
593 return NFP_ETH_SET_BIT_CONFIG(nsp, NSP_ETH_RAW_STATE,
600 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
608 static int __nfp_eth_set_fec(struct nfp_nsp *nsp, enum nfp_eth_fec mode)
610 return NFP_ETH_SET_BIT_CONFIG(nsp, NSP_ETH_RAW_STATE,
629 struct nfp_nsp *nsp;
632 nsp = nfp_eth_config_start(cpp, idx);
633 if (IS_ERR(nsp))
634 return PTR_ERR(nsp);
636 err = __nfp_eth_set_fec(nsp, mode);
638 nfp_eth_config_cleanup_end(nsp);
642 return nfp_eth_config_commit_end(nsp);
647 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
654 static int __nfp_eth_set_txpause(struct nfp_nsp *nsp, unsigned int tx_pause)
656 return NFP_ETH_SET_BIT_CONFIG(nsp, NSP_ETH_RAW_STATE, NSP_ETH_STATE_TX_PAUSE,
662 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
669 static int __nfp_eth_set_rxpause(struct nfp_nsp *nsp, unsigned int rx_pause)
671 return NFP_ETH_SET_BIT_CONFIG(nsp, NSP_ETH_RAW_STATE, NSP_ETH_STATE_RX_PAUSE,
691 struct nfp_nsp *nsp;
694 nsp = nfp_eth_config_start(cpp, idx);
695 if (IS_ERR(nsp))
696 return PTR_ERR(nsp);
698 if (nfp_nsp_get_abi_ver_minor(nsp) < 37) {
699 nfp_err(nfp_nsp_cpp(nsp),
701 nfp_eth_config_cleanup_end(nsp);
705 err = __nfp_eth_set_txpause(nsp, tx_pause);
707 nfp_eth_config_cleanup_end(nsp);
711 err = __nfp_eth_set_rxpause(nsp, rx_pause);
713 nfp_eth_config_cleanup_end(nsp);
717 return nfp_eth_config_commit_end(nsp);
722 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
732 int __nfp_eth_set_speed(struct nfp_nsp *nsp, unsigned int speed)
738 nfp_warn(nfp_nsp_cpp(nsp),
744 return NFP_ETH_SET_BIT_CONFIG(nsp, NSP_ETH_RAW_STATE,
751 * @nsp: NFP NSP handle returned from nfp_eth_config_start()
759 int __nfp_eth_set_split(struct nfp_nsp *nsp, unsigned int lanes)
761 return NFP_ETH_SET_BIT_CONFIG(nsp, NSP_ETH_RAW_PORT, NSP_ETH_PORT_LANES,