/linux/drivers/net/ethernet/cavium/liquidio/ |
A D | cn66xx_device.c | 89 r64 = lio_pci_readq(oct, CN6XXX_DPI_SLI_PRTX_CFG(oct->pcie_port)); in lio_cn6xxx_setup_pcie_mps() 91 lio_pci_writeq(oct, r64, CN6XXX_DPI_SLI_PRTX_CFG(oct->pcie_port)); in lio_cn6xxx_setup_pcie_mps() 112 r64 = octeon_read_csr64(oct, CN6XXX_SLI_S2M_PORTX_CTL(oct->pcie_port)); in lio_cn6xxx_setup_pcie_mrrs() 114 octeon_write_csr64(oct, CN6XXX_SLI_S2M_PORTX_CTL(oct->pcie_port), r64); in lio_cn6xxx_setup_pcie_mrrs() 117 r64 = lio_pci_readq(oct, CN6XXX_DPI_SLI_PRTX_CFG(oct->pcie_port)); in lio_cn6xxx_setup_pcie_mrrs() 119 lio_pci_writeq(oct, r64, CN6XXX_DPI_SLI_PRTX_CFG(oct->pcie_port)); in lio_cn6xxx_setup_pcie_mrrs() 420 bar1 = lio_pci_readq(oct, CN6XXX_BAR1_REG(idx, oct->pcie_port)); in lio_cn6xxx_bar1_idx_setup() 423 bar1 = lio_pci_readq(oct, CN6XXX_BAR1_REG(idx, oct->pcie_port)); in lio_cn6xxx_bar1_idx_setup() 433 bar1 = lio_pci_readq(oct, CN6XXX_BAR1_REG(idx, oct->pcie_port)); in lio_cn6xxx_bar1_idx_setup() 440 lio_pci_writeq(oct, mask, CN6XXX_BAR1_REG(idx, oct->pcie_port)); in lio_cn6xxx_bar1_idx_write() [all …]
|
A D | cn23xx_pf_device.c | 84 lio_pci_readq(oct, CN23XX_DPI_SLI_PRTX_CFG(oct->pcie_port))); in cn23xx_dump_pf_initialized_regs() 91 oct, CN23XX_SLI_S2M_PORTX_CTL(oct->pcie_port)))); in cn23xx_dump_pf_initialized_regs() 213 oct->octeon_id); in cn23xx_pf_soft_reset() 231 oct->octeon_id); in cn23xx_pf_soft_reset() 823 oct, in cn23xx_enable_io_queues() 1050 oct, CN23XX_PEM_BAR1_INDEX_REG(oct->pcie_port, idx)); in cn23xx_bar1_idx_setup() 1055 oct, CN23XX_PEM_BAR1_INDEX_REG(oct->pcie_port, idx)); in cn23xx_bar1_idx_setup() 1067 oct, CN23XX_PEM_BAR1_INDEX_REG(oct->pcie_port, idx))); in cn23xx_bar1_idx_setup() 1079 oct, CN23XX_PEM_BAR1_INDEX_REG(oct->pcie_port, idx)); in cn23xx_bar1_idx_read() 1300 oct->sriov_info.trs, oct->sriov_info.max_vfs, in cn23xx_sriov_config() [all …]
|
A D | cn68xx_device.c | 57 lio_pci_readq(oct, CN6XXX_DPI_CTL)); in lio_cn68xx_set_dpi_regs() 62 lio_cn6xxx_soft_reset(oct); in lio_cn68xx_soft_reset() 63 lio_cn68xx_set_dpi_regs(oct); in lio_cn68xx_soft_reset() 97 lio_cn68xx_setup_pkt_ctl_regs(oct); in lio_cn68xx_setup_device_regs() 130 if (octeon_map_pci_barx(oct, 0, 0)) in lio_setup_cn68xx_octeon_device() 136 octeon_unmap_pci_barx(oct, 0); in lio_setup_cn68xx_octeon_device() 160 lio_cn6xxx_setup_reg_address(oct, oct->chip, &oct->reg_list); in lio_setup_cn68xx_octeon_device() 163 if (lio_is_210nv(oct)) in lio_setup_cn68xx_octeon_device() 173 octeon_unmap_pci_barx(oct, 0); in lio_setup_cn68xx_octeon_device() 174 octeon_unmap_pci_barx(oct, 1); in lio_setup_cn68xx_octeon_device() [all …]
|
A D | octeon_device.c | 659 vfree(oct); in octeon_free_device_mem() 714 return oct; in octeon_allocate_device_mem() 731 if (oct) { in octeon_allocate_device() 738 if (!oct) in octeon_allocate_device() 745 snprintf(oct->device_name, sizeof(oct->device_name), in octeon_allocate_device() 748 return oct; in octeon_allocate_device() 803 oct->loc.bus, oct->loc.dev, oct->loc.func, refcount); in octeon_register_device() 820 oct->loc.bus, oct->loc.dev, oct->loc.func, refcount); in octeon_deregister_device() 930 oct->droq[0] = vzalloc(sizeof(*oct->droq[0])); in octeon_setup_output_queues() 1269 if (oct && (q_no < MAX_OCTEON_INSTR_QUEUES(oct)) && in octeon_get_tx_qsize() [all …]
|
A D | cn23xx_vf_device.c | 59 d64 = octeon_read_csr64(oct, in cn23xx_vf_reset_io_queues() 78 dev_err(&oct->pci_dev->dev, in cn23xx_vf_reset_io_queues() 91 dev_err(&oct->pci_dev->dev, in cn23xx_vf_reset_io_queues() 108 if (cn23xx_vf_reset_io_queues(oct, oct->sriov_info.rings_per_vf)) in cn23xx_vf_setup_global_input_regs() 237 if (oct->msix_on) { in cn23xx_setup_vf_iq_regs() 274 vfree(oct->mbox[0]); in cn23xx_free_vf_mbox() 290 mbox->oct_dev = oct; in cn23xx_setup_vf_mbox() 311 oct->mbox[0] = mbox; in cn23xx_setup_vf_mbox() 451 oct->instr_queue[q_no]->txpciq.s.pkind = oct->pfvf_hsword.pkind; in cn23xx_octeon_pfvf_handshake() 467 oct->pfvf_hsword.pkind); in cn23xx_octeon_pfvf_handshake() [all …]
|
A D | octeon_console.c | 206 oct, oct->bootmem_desc_addr, in __cvmx_bootmem_check_version() 210 oct, oct->bootmem_desc_addr, in __cvmx_bootmem_check_version() 237 oct, named_addr, in __cvmx_bootmem_find_named_block_flags() 268 oct, oct->bootmem_desc_addr, in cvmx_bootmem_phy_named_block_find() 274 oct, oct->bootmem_desc_addr, in cvmx_bootmem_phy_named_block_find() 281 oct, oct->bootmem_desc_addr, in cvmx_bootmem_phy_named_block_find() 291 oct, named_addr, in cvmx_bootmem_phy_named_block_find() 558 oct->fn_list.bar1_idx_setup(oct, addr, oct->console_nb_info.bar1_index, in octeon_init_consoles() 566 oct->num_consoles = octeon_read_device_mem32(oct, in octeon_init_consoles() 572 oct->num_consoles); in octeon_init_consoles() [all …]
|
A D | request_manager.c | 50 #define IQ_INSTR_MODE_32B(oct, iq_no) (!IQ_INSTR_MODE_64B(oct, iq_no)) argument 67 if (OCTEON_CN6XXX(oct)) in octeon_init_instr_queue() 76 oct->chip_id); in octeon_init_instr_queue() 84 iq->oct_dev = oct; in octeon_init_instr_queue() 141 oct->fn_list.setup_iq_regs(oct, iq_no); in octeon_init_instr_queue() 192 oct->num_iqs--; in octeon_delete_instr_queue() 235 oct->num_iqs++; in octeon_setup_iq() 236 if (oct->fn_list.enable_io_queues(oct)) { in octeon_setup_iq() 502 if (!oct) in __check_db_timeout() 600 if (OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct)) { in octeon_prepare_soft_command() [all …]
|
A D | lio_core.c | 123 lio_dma_alloc(oct, in lio_setup_glists() 727 if (OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct) || in liquidio_napi_drv_callback() 985 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in liquidio_legacy_intr_handler() 987 ret = oct->fn_list.process_interrupt_regs(oct); in liquidio_legacy_intr_handler() 994 oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR); in liquidio_legacy_intr_handler() 1043 oct->msix_entries = kcalloc(oct->num_msix_irqs, in octeon_setup_interrupt() 1112 oct->octeon_id, oct->pf_num, i); in octeon_setup_interrupt() 1117 oct->octeon_id, oct->vf_num, i); in octeon_setup_interrupt() 1130 oct); in octeon_setup_interrupt() 1174 oct->octeon_id, oct->pf_num, 0); in octeon_setup_interrupt() [all …]
|
A D | lio_vf_main.c | 181 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in stop_pci_io() 229 stop_pci_io(oct); in liquidio_pcie_error_detected() 475 oct->fn_list.disable_io_queues(oct); in octeon_destroy_resources() 508 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in octeon_destroy_resources() 540 oct->fn_list.free_mbox(oct); in octeon_destroy_resources() 2327 if (oct->fn_list.setup_device_regs(oct)) { in octeon_device_init() 2361 if (oct->fn_list.setup_mbox(oct)) { in octeon_device_init() 2377 if (octeon_setup_interrupt(oct, oct->sriov_info.rings_per_vf)) in octeon_device_init() 2390 oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR); in octeon_device_init() 2400 oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR); in octeon_device_init() [all …]
|
A D | lio_vf_rep.c | 113 struct octeon_device *oct; in lio_vf_rep_open() local 116 oct = vf_rep->oct; in lio_vf_rep_open() 146 struct octeon_device *oct; in lio_vf_rep_stop() local 149 oct = vf_rep->oct; in lio_vf_rep_stop() 206 oct = vf_rep->oct; in lio_vf_rep_change_mtu() 231 struct octeon_device *oct = vf_rep->oct; in lio_vf_rep_phys_port_name() local 305 if (!oct) in lio_vf_rep_pkt_recv() 374 struct octeon_device *oct = vf_rep->oct; in lio_vf_rep_pkt_xmit() local 471 oct = vf_rep->oct; in lio_vf_rep_fetch_stats() 522 vf_rep->oct = oct; in lio_vf_rep_create() [all …]
|
A D | lio_main.c | 179 if (OCTEON_CN23XX_PF(oct) && oct->msix_on) { in octeon_droq_bh() 317 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in stop_pci_io() 322 free_irq(oct->pci_dev->irq, oct); in stop_pci_io() 739 if (!oct) in disable_all_vf_links() 995 oct->fn_list.disable_io_queues(oct); in octeon_destroy_resources() 1028 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in octeon_destroy_resources() 1051 free_irq(oct->pci_dev->irq, oct); in octeon_destroy_resources() 1068 oct->fn_list.free_mbox(oct); in octeon_destroy_resources() 1130 oct->fn_list.soft_reset(oct); in octeon_destroy_resources() 3127 oct = priv->oct; in liquidio_eswitch_mode_get() [all …]
|
A D | octeon_mem_ops.c | 35 mask = oct->fn_list.bar1_idx_read(oct, idx); in octeon_toggle_bar1_swapmode() 37 oct->fn_list.bar1_idx_write(oct, idx, mask); in octeon_toggle_bar1_swapmode() 40 #define octeon_toggle_bar1_swapmode(oct, idx) argument 52 octeon_toggle_bar1_swapmode(oct, MEMOPS_IDX); in octeon_pci_fastwrite() 61 octeon_toggle_bar1_swapmode(oct, MEMOPS_IDX); in octeon_pci_fastwrite() 76 octeon_toggle_bar1_swapmode(oct, MEMOPS_IDX); in octeon_pci_fastread() 108 mapped_addr = oct->mmio[1].hw_addr in __octeon_pci_rw_core_mem() 123 index_reg_val = oct->fn_list.bar1_idx_read(oct, MEMOPS_IDX); in __octeon_pci_rw_core_mem() 125 oct->fn_list.bar1_idx_setup(oct, addr, MEMOPS_IDX, 1); in __octeon_pci_rw_core_mem() 126 mapped_addr = oct->mmio[1].hw_addr in __octeon_pci_rw_core_mem() [all …]
|
A D | lio_ethtool.c | 424 oct->speed_boot == oct->speed_setting) in lio_set_link_ksettings() 1105 oct->fn_list.disable_io_queues(oct); in lio_reset_queues() 1146 oct->fn_list.free_mbox(oct); in lio_reset_queues() 1176 if (oct->fn_list.setup_device_regs(oct)) { in lio_reset_queues() 1193 if (oct->fn_list.setup_mbox(oct)) { in lio_reset_queues() 1208 if (oct->fn_list.enable_io_queues(oct)) { in lio_reset_queues() 2555 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg() 2562 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg() 2569 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg() 2582 oct->pcie_port, oct->pf_num, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg() [all …]
|
A D | octeon_droq.c | 213 vfree(oct->droq[q_no]); in octeon_delete_droq() 214 oct->droq[q_no] = NULL; in octeon_delete_droq() 215 oct->num_oqs--; in octeon_delete_droq() 236 droq->oct_dev = oct; in octeon_init_droq() 304 oct->fn_list.setup_oq_regs(oct, q_no); in octeon_init_droq() 765 (oct, in octeon_droq_process_packets() 815 (oct, in octeon_droq_process_poll_pkts() 851 lio_enable_irq(oct->droq[q_no], oct->instr_queue[q_no]); in octeon_enable_irq() 855 lio_enable_irq(oct->droq[q_no], oct->instr_queue[q_no]); in octeon_enable_irq() 958 oct->num_oqs++; in octeon_create_droq() [all …]
|
A D | cn66xx_device.h | 68 int lio_cn6xxx_soft_reset(struct octeon_device *oct); 69 void lio_cn6xxx_enable_error_reporting(struct octeon_device *oct); 70 void lio_cn6xxx_setup_pcie_mps(struct octeon_device *oct, 72 void lio_cn6xxx_setup_pcie_mrrs(struct octeon_device *oct, 78 int lio_cn6xxx_enable_io_queues(struct octeon_device *oct); 79 void lio_cn6xxx_disable_io_queues(struct octeon_device *oct); 84 u32 lio_cn6xxx_bar1_idx_read(struct octeon_device *oct, u32 idx); 89 void cn6xxx_get_pcie_qlmport(struct octeon_device *oct); 92 u32 lio_cn6xxx_coprocessor_clock(struct octeon_device *oct); 94 int lio_setup_cn66xx_octeon_device(struct octeon_device *oct); [all …]
|
A D | octeon_main.h | 98 if (oct->mmio[baridx].done) in octeon_unmap_pci_barx() 99 iounmap(oct->mmio[baridx].hw_addr); in octeon_unmap_pci_barx() 101 if (oct->mmio[baridx].start) in octeon_unmap_pci_barx() 122 oct->mmio[baridx].start = pci_resource_start(oct->pci_dev, baridx * 2); in octeon_map_pci_barx() 123 oct->mmio[baridx].len = pci_resource_len(oct->pci_dev, baridx * 2); in octeon_map_pci_barx() 125 mapped_len = oct->mmio[baridx].len; in octeon_map_pci_barx() 132 oct->mmio[baridx].hw_addr = in octeon_map_pci_barx() 134 oct->mmio[baridx].mapped_len = mapped_len; in octeon_map_pci_barx() 138 oct->mmio[baridx].len); in octeon_map_pci_barx() 140 if (!oct->mmio[baridx].hw_addr) { in octeon_map_pci_barx() [all …]
|
A D | octeon_nic.c | 52 if (OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct)) { in octeon_alloc_soft_command_resp() 68 rdp->pcie_port = oct->pcie_port; in octeon_alloc_soft_command_resp() 73 if (OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct)) in octeon_alloc_soft_command_resp() 143 spin_lock_bh(&oct->cmd_resp_wqlock); in octnet_send_nic_ctrl_pkt() 149 spin_unlock_bh(&oct->cmd_resp_wqlock); in octnet_send_nic_ctrl_pkt() 150 dev_err(&oct->pci_dev->dev, in octnet_send_nic_ctrl_pkt() 156 sc = octnic_alloc_ctrl_pkt_sc(oct, nctrl); in octnet_send_nic_ctrl_pkt() 160 spin_unlock_bh(&oct->cmd_resp_wqlock); in octnet_send_nic_ctrl_pkt() 166 octeon_free_soft_command(oct, sc); in octnet_send_nic_ctrl_pkt() 169 spin_unlock_bh(&oct->cmd_resp_wqlock); in octnet_send_nic_ctrl_pkt() [all …]
|
A D | octeon_device.h | 423 struct octeon_device *oct; member 621 #define OCTEON_CN6XXX(oct) ({ \ argument 622 typeof(oct) _oct = (oct); \ 625 #define OCTEON_CN23XX_PF(oct) ((oct)->chip_id == OCTEON_CN23XX_PF_VID) argument 626 #define OCTEON_CN23XX_VF(oct) ((oct)->chip_id == OCTEON_CN23XX_VF_VID) argument 627 #define CHIP_CONF(oct, TYPE) \ argument 628 (((struct octeon_ ## TYPE *)((oct)->chip))->conf) 638 void octeon_free_device_mem(struct octeon_device *oct); 655 int octeon_register_device(struct octeon_device *oct, 758 int octeon_mem_access_ok(struct octeon_device *oct); [all …]
|
A D | response_manager.c | 36 INIT_LIST_HEAD(&oct->response_list[i].head); in octeon_setup_response_list() 37 spin_lock_init(&oct->response_list[i].lock); in octeon_setup_response_list() 40 spin_lock_init(&oct->cmd_resp_wqlock); in octeon_setup_response_list() 43 if (!oct->dma_comp_wq.wq) { in octeon_setup_response_list() 48 cwq = &oct->dma_comp_wq; in octeon_setup_response_list() 50 cwq->wk.ctxptr = oct; in octeon_setup_response_list() 51 oct->cmd_resp_state = OCT_DRV_ONLINE; in octeon_setup_response_list() 59 destroy_workqueue(oct->dma_comp_wq.wq); in octeon_delete_response_list() 227 struct cavium_wq *cwq = &oct->dma_comp_wq; in oct_poll_req_completion() 229 lio_process_ordered_list(oct, 0); in oct_poll_req_completion() [all …]
|
A D | octeon_mailbox.c | 214 for (i = 0; i < oct->num_iqs; i++) { in get_vf_stats() 215 if (!oct->instr_queue[i]) in get_vf_stats() 221 for (i = 0; i < oct->num_oqs; i++) { in get_vf_stats() 222 if (!oct->droq[i]) in get_vf_stats() 239 struct octeon_device *oct = mbox->oct_dev; in octeon_mbox_process_cmd() local 256 octeon_mbox_write(oct, mbox_cmd); in octeon_mbox_process_cmd() 260 dev_info(&oct->pci_dev->dev, in octeon_mbox_process_cmd() 267 if (OCTEON_CN23XX_VF(oct)) in octeon_mbox_process_cmd() 268 octeon_pf_changed_vf_macaddr(oct, in octeon_mbox_process_cmd() 279 octeon_mbox_write(oct, mbox_cmd); in octeon_mbox_process_cmd() [all …]
|
A D | octeon_iq.h | 327 int octeon_setup_sc_buffer_pool(struct octeon_device *oct); 328 int octeon_free_sc_done_list(struct octeon_device *oct); 329 int octeon_free_sc_zombie_list(struct octeon_device *oct); 330 int octeon_free_sc_buffer_pool(struct octeon_device *oct); 332 octeon_alloc_soft_command(struct octeon_device *oct, 335 void octeon_free_soft_command(struct octeon_device *oct, 364 int lio_wait_for_instr_fetch(struct octeon_device *oct); 374 lio_process_iq_request_list(struct octeon_device *oct, 381 void octeon_dump_soft_command(struct octeon_device *oct, 390 int octeon_send_soft_command(struct octeon_device *oct, [all …]
|
A D | octeon_nic.h | 115 >= (oct->instr_queue[q_no]->max_count - 2)); in octnet_iq_is_full() 119 octnet_prepare_pci_cmd_o2(struct octeon_device *oct, in octnet_prepare_pci_cmd_o2() argument 140 port = (int)oct->instr_queue[setup->s.iq_no]->txpciq.s.port; in octnet_prepare_pci_cmd_o2() 173 octnet_prepare_pci_cmd_o3(struct octeon_device *oct, in octnet_prepare_pci_cmd_o3() argument 208 port = (int)oct->instr_queue[setup->s.iq_no]->txpciq.s.port; in octnet_prepare_pci_cmd_o3() 246 if (OCTEON_CN6XXX(oct)) in octnet_prepare_pci_cmd() 247 octnet_prepare_pci_cmd_o2(oct, cmd, setup, tag); in octnet_prepare_pci_cmd() 249 octnet_prepare_pci_cmd_o3(oct, cmd, setup, tag); in octnet_prepare_pci_cmd() 263 octeon_alloc_soft_command_resp(struct octeon_device *oct, 274 int octnet_send_nic_data_pkt(struct octeon_device *oct, [all …]
|
A D | cn23xx_pf_device.h | 55 int setup_cn23xx_octeon_pf_device(struct octeon_device *oct); 57 int validate_cn23xx_pf_config_info(struct octeon_device *oct, 60 u32 cn23xx_pf_get_oq_ticks(struct octeon_device *oct, u32 time_intr_in_us); 62 void cn23xx_dump_pf_initialized_regs(struct octeon_device *oct); 64 int cn23xx_sriov_config(struct octeon_device *oct); 66 int cn23xx_fw_loaded(struct octeon_device *oct); 68 void cn23xx_tell_vf_its_macaddr_changed(struct octeon_device *oct, int vfidx, 71 int cn23xx_get_vf_stats(struct octeon_device *oct, int ifidx,
|
A D | octeon_network.h | 229 int lio_wait_for_clean_oq(struct octeon_device *oct); 260 *recv_buffer_alloc(struct octeon_device *oct, in recv_buffer_alloc() argument 286 pg_info->dma = dma_map_page(&oct->pci_dev->dev, page, 0, in recv_buffer_alloc() 331 recv_buffer_recycle(struct octeon_device *oct, void *buf) in recv_buffer_recycle() argument 343 dma_unmap_page(&oct->pci_dev->dev, in recv_buffer_recycle() 363 *recv_buffer_reuse(struct octeon_device *oct, void *buf) in recv_buffer_reuse() argument 370 dma_unmap_page(&oct->pci_dev->dev, in recv_buffer_reuse() 432 #define lio_dma_alloc(oct, size, dma_addr) \ argument 434 #define lio_dma_free(oct, size, virt_addr, dma_addr) \ argument 541 &oct->response_list[OCTEON_ORDERED_SC_LIST] in wait_for_pending_requests() [all …]
|
A D | cn23xx_vf_device.h | 39 void cn23xx_vf_ask_pf_to_do_flr(struct octeon_device *oct); 41 int cn23xx_octeon_pfvf_handshake(struct octeon_device *oct); 43 int cn23xx_setup_octeon_vf_device(struct octeon_device *oct); 45 u32 cn23xx_vf_get_oq_ticks(struct octeon_device *oct, u32 time_intr_in_us); 47 void cn23xx_dump_vf_initialized_regs(struct octeon_device *oct);
|