| 483 | } |
| 484 | |
| 485 | static int |
| 486 | intel_ntb_spad_write(const struct rte_rawdev *dev, int spad, |
| 487 | bool peer, uint32_t spad_v) |
| 488 | { |
| 489 | struct ntb_hw *hw = dev->dev_private; |
| 490 | uint32_t reg_off; |
| 491 | void *reg_addr; |
| 492 | |
| 493 | if (spad < 0 || spad >= hw->spad_cnt) { |
| 494 | NTB_LOG(ERR, "Invalid spad reg index."); |
| 495 | return -EINVAL; |
| 496 | } |
| 497 | |
| 498 | /* When peer is true, write peer spad reg */ |
| 499 | if (is_gen3_ntb(hw)) |
| 500 | reg_off = peer ? XEON_GEN3_B2B_SPAD_OFFSET : |
| 501 | XEON_IM_SPAD_OFFSET; |
| 502 | else if (is_gen4_ntb(hw)) |
| 503 | reg_off = peer ? XEON_GEN4_B2B_SPAD_OFFSET : |
| 504 | XEON_IM_SPAD_OFFSET; |
| 505 | else { |
| 506 | NTB_LOG(ERR, "Cannot write spad for unsupported device."); |
| 507 | return -ENOTSUP; |
| 508 | } |
| 509 | reg_addr = hw->hw_addr + reg_off + (spad << 2); |
| 510 | |
| 511 | rte_write32(spad_v, reg_addr); |
| 512 | |
| 513 | return 0; |
| 514 | } |
| 515 | |
| 516 | static uint64_t |
| 517 | intel_ntb_db_read(const struct rte_rawdev *dev) |
nothing calls this directly
no test coverage detected