| 497 | } |
| 498 | |
| 499 | static void |
| 500 | txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs) |
| 501 | { |
| 502 | struct rte_kvargs *kvlist; |
| 503 | u16 auto_neg = 1; |
| 504 | u16 poll = 0; |
| 505 | u16 present = 0; |
| 506 | u16 sgmii = 0; |
| 507 | u16 ffe_set = 0; |
| 508 | u16 ffe_main = 27; |
| 509 | u16 ffe_pre = 8; |
| 510 | u16 ffe_post = 44; |
| 511 | |
| 512 | if (devargs == NULL) |
| 513 | goto null; |
| 514 | |
| 515 | kvlist = rte_kvargs_parse(devargs->args, txgbe_valid_arguments); |
| 516 | if (kvlist == NULL) |
| 517 | goto null; |
| 518 | |
| 519 | rte_kvargs_process(kvlist, TXGBE_DEVARG_BP_AUTO, |
| 520 | &txgbe_handle_devarg, &auto_neg); |
| 521 | rte_kvargs_process(kvlist, TXGBE_DEVARG_KR_POLL, |
| 522 | &txgbe_handle_devarg, &poll); |
| 523 | rte_kvargs_process(kvlist, TXGBE_DEVARG_KR_PRESENT, |
| 524 | &txgbe_handle_devarg, &present); |
| 525 | rte_kvargs_process(kvlist, TXGBE_DEVARG_KX_SGMII, |
| 526 | &txgbe_handle_devarg, &sgmii); |
| 527 | rte_kvargs_process(kvlist, TXGBE_DEVARG_FFE_SET, |
| 528 | &txgbe_handle_devarg, &ffe_set); |
| 529 | rte_kvargs_process(kvlist, TXGBE_DEVARG_FFE_MAIN, |
| 530 | &txgbe_handle_devarg, &ffe_main); |
| 531 | rte_kvargs_process(kvlist, TXGBE_DEVARG_FFE_PRE, |
| 532 | &txgbe_handle_devarg, &ffe_pre); |
| 533 | rte_kvargs_process(kvlist, TXGBE_DEVARG_FFE_POST, |
| 534 | &txgbe_handle_devarg, &ffe_post); |
| 535 | rte_kvargs_free(kvlist); |
| 536 | |
| 537 | null: |
| 538 | hw->devarg.auto_neg = auto_neg; |
| 539 | hw->devarg.poll = poll; |
| 540 | hw->devarg.present = present; |
| 541 | hw->devarg.sgmii = sgmii; |
| 542 | hw->phy.ffe_set = ffe_set; |
| 543 | hw->phy.ffe_main = ffe_main; |
| 544 | hw->phy.ffe_pre = ffe_pre; |
| 545 | hw->phy.ffe_post = ffe_post; |
| 546 | } |
| 547 | |
| 548 | static int |
| 549 | eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused) |
no test coverage detected