Lines Matching refs:oct

219 	struct octeon_device *oct = lio->oct_dev;  in lio_get_link_ksettings()  local
247 dev_dbg(&oct->pci_dev->dev, "ecmd->base.transceiver is XCVR_EXTERNAL\n"); in lio_get_link_ksettings()
250 dev_err(&oct->pci_dev->dev, "Unknown link interface mode: %d\n", in lio_get_link_ksettings()
260 if (oct->subsystem_id == OCTEON_CN2350_25GB_SUBSYS_ID || in lio_get_link_ksettings()
261 oct->subsystem_id == OCTEON_CN2360_25GB_SUBSYS_ID) { in lio_get_link_ksettings()
262 if (OCTEON_CN23XX_PF(oct)) { in lio_get_link_ksettings()
270 if (oct->no_speed_setting == 0) { in lio_get_link_ksettings()
282 if (oct->no_speed_setting == 0) { in lio_get_link_ksettings()
286 oct->speed_setting = 25; in lio_get_link_ksettings()
289 if (oct->speed_setting == 10) { in lio_get_link_ksettings()
300 if (oct->speed_setting == 25) { in lio_get_link_ksettings()
312 if (oct->no_speed_setting) in lio_get_link_ksettings()
320 if (oct->props[lio->ifidx].fec == 1) { in lio_get_link_ksettings()
400 struct octeon_device *oct; in lio_set_link_ksettings() local
402 oct = lio->oct_dev; in lio_set_link_ksettings()
406 if (!(oct->subsystem_id == OCTEON_CN2350_25GB_SUBSYS_ID || in lio_set_link_ksettings()
407 oct->subsystem_id == OCTEON_CN2360_25GB_SUBSYS_ID)) in lio_set_link_ksettings()
410 if (oct->no_speed_setting) { in lio_set_link_ksettings()
411 dev_err(&oct->pci_dev->dev, "%s: Changing speed is not supported\n", in lio_set_link_ksettings()
423 if ((oct->speed_boot == speed / 1000) && in lio_set_link_ksettings()
424 oct->speed_boot == oct->speed_setting) in lio_set_link_ksettings()
429 dev_dbg(&oct->pci_dev->dev, "Port speed is set to %dG\n", in lio_set_link_ksettings()
430 oct->speed_setting); in lio_set_link_ksettings()
439 struct octeon_device *oct; in lio_get_drvinfo() local
442 oct = lio->oct_dev; in lio_get_drvinfo()
446 strncpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version, in lio_get_drvinfo()
448 strncpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32); in lio_get_drvinfo()
454 struct octeon_device *oct; in lio_get_vf_drvinfo() local
458 oct = lio->oct_dev; in lio_get_vf_drvinfo()
462 strncpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version, in lio_get_vf_drvinfo()
464 strncpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32); in lio_get_vf_drvinfo()
471 struct octeon_device *oct = lio->oct_dev; in lio_send_queue_count_update() local
487 dev_err(&oct->pci_dev->dev, "Failed to send Queue reset command (ret: 0x%x)\n", in lio_send_queue_count_update()
500 struct octeon_device *oct = lio->oct_dev; in lio_ethtool_get_channels() local
504 if (OCTEON_CN6XXX(oct)) { in lio_ethtool_get_channels()
505 struct octeon_config *conf6x = CHIP_CONF(oct, cn6xxx); in lio_ethtool_get_channels()
511 } else if (OCTEON_CN23XX_PF(oct)) { in lio_ethtool_get_channels()
512 if (oct->sriov_info.sriov_enabled) { in lio_ethtool_get_channels()
516 CHIP_CONF(oct, cn23xx_pf); in lio_ethtool_get_channels()
520 combined_count = oct->num_iqs; in lio_ethtool_get_channels()
521 } else if (OCTEON_CN23XX_VF(oct)) { in lio_ethtool_get_channels()
525 reg_val = octeon_read_csr64(oct, ctrl); in lio_ethtool_get_channels()
528 combined_count = oct->num_iqs; in lio_ethtool_get_channels()
540 lio_irq_reallocate_irqs(struct octeon_device *oct, uint32_t num_ioqs) in lio_irq_reallocate_irqs() argument
546 if (!oct->msix_on) in lio_irq_reallocate_irqs()
552 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in lio_irq_reallocate_irqs()
554 if (oct->msix_on) { in lio_irq_reallocate_irqs()
555 if (OCTEON_CN23XX_PF(oct)) in lio_irq_reallocate_irqs()
556 num_msix_irqs = oct->num_msix_irqs - 1; in lio_irq_reallocate_irqs()
557 else if (OCTEON_CN23XX_VF(oct)) in lio_irq_reallocate_irqs()
558 num_msix_irqs = oct->num_msix_irqs; in lio_irq_reallocate_irqs()
560 msix_entries = (struct msix_entry *)oct->msix_entries; in lio_irq_reallocate_irqs()
562 if (oct->ioq_vector[i].vector) { in lio_irq_reallocate_irqs()
567 &oct->ioq_vector[i]); in lio_irq_reallocate_irqs()
568 oct->ioq_vector[i].vector = 0; in lio_irq_reallocate_irqs()
573 if (OCTEON_CN23XX_PF(oct)) in lio_irq_reallocate_irqs()
574 free_irq(msix_entries[i].vector, oct); in lio_irq_reallocate_irqs()
576 pci_disable_msix(oct->pci_dev); in lio_irq_reallocate_irqs()
577 kfree(oct->msix_entries); in lio_irq_reallocate_irqs()
578 oct->msix_entries = NULL; in lio_irq_reallocate_irqs()
581 kfree(oct->irq_name_storage); in lio_irq_reallocate_irqs()
582 oct->irq_name_storage = NULL; in lio_irq_reallocate_irqs()
584 if (octeon_allocate_ioq_vector(oct, num_ioqs)) { in lio_irq_reallocate_irqs()
585 dev_err(&oct->pci_dev->dev, "OCTEON: ioq vector allocation failed\n"); in lio_irq_reallocate_irqs()
589 if (octeon_setup_interrupt(oct, num_ioqs)) { in lio_irq_reallocate_irqs()
590 dev_info(&oct->pci_dev->dev, "Setup interrupt failed\n"); in lio_irq_reallocate_irqs()
595 oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR); in lio_irq_reallocate_irqs()
606 struct octeon_device *oct = lio->oct_dev; in lio_ethtool_set_channels() local
609 if (strcmp(oct->fw_info.liquidio_firmware_version, "1.6.1") < 0) { in lio_ethtool_set_channels()
610 dev_err(&oct->pci_dev->dev, "Minimum firmware version required is 1.6.1\n"); in lio_ethtool_set_channels()
620 if (OCTEON_CN23XX_PF(oct)) { in lio_ethtool_set_channels()
621 if (oct->sriov_info.sriov_enabled) { in lio_ethtool_set_channels()
625 CHIP_CONF(oct, in lio_ethtool_set_channels()
631 } else if (OCTEON_CN23XX_VF(oct)) { in lio_ethtool_set_channels()
635 reg_val = octeon_read_csr64(oct, ctrl); in lio_ethtool_set_channels()
645 if (combined_count == oct->num_iqs) in lio_ethtool_set_channels()
706 struct octeon_device *oct = lio->oct_dev; in octnet_gpio_access() local
722 dev_err(&oct->pci_dev->dev, in octnet_gpio_access()
733 struct octeon_device *oct = lio->oct_dev; in octnet_id_active() local
748 dev_err(&oct->pci_dev->dev, in octnet_id_active()
832 struct octeon_device *oct = lio->oct_dev; in lio_set_phys_id() local
838 cur_ver = OCT_FW_VER(oct->fw_info.ver.maj, in lio_set_phys_id()
839 oct->fw_info.ver.min, in lio_set_phys_id()
840 oct->fw_info.ver.rev); in lio_set_phys_id()
844 if (oct->chip_id == OCTEON_CN66XX) { in lio_set_phys_id()
849 } else if (oct->chip_id == OCTEON_CN68XX) { in lio_set_phys_id()
877 } else if (oct->chip_id == OCTEON_CN23XX_PF_VID) { in lio_set_phys_id()
890 if (oct->chip_id == OCTEON_CN23XX_PF_VID && in lio_set_phys_id()
894 else if (oct->chip_id == OCTEON_CN66XX) in lio_set_phys_id()
903 if (oct->chip_id == OCTEON_CN23XX_PF_VID && in lio_set_phys_id()
907 else if (oct->chip_id == OCTEON_CN66XX) in lio_set_phys_id()
916 if (oct->chip_id == OCTEON_CN66XX) { in lio_set_phys_id()
919 } else if (oct->chip_id == OCTEON_CN68XX) { in lio_set_phys_id()
932 } else if (oct->chip_id == OCTEON_CN23XX_PF_VID) { in lio_set_phys_id()
953 struct octeon_device *oct = lio->oct_dev; in lio_ethtool_get_ringparam() local
960 if (OCTEON_CN6XXX(oct)) { in lio_ethtool_get_ringparam()
961 struct octeon_config *conf6x = CHIP_CONF(oct, cn6xxx); in lio_ethtool_get_ringparam()
967 } else if (OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct)) { in lio_ethtool_get_ringparam()
970 rx_pending = oct->droq[0]->max_count; in lio_ethtool_get_ringparam()
971 tx_pending = oct->instr_queue[0]->max_count; in lio_ethtool_get_ringparam()
986 struct octeon_device *oct = lio->oct_dev; in lio_23xx_reconfigure_queue_count() local
999 octeon_alloc_soft_command(oct, data_size, in lio_23xx_reconfigure_queue_count()
1002 dev_err(&oct->pci_dev->dev, "%s: Failed to allocate soft command\n", in lio_23xx_reconfigure_queue_count()
1014 ifidx_or_pfnum = oct->pf_num; in lio_23xx_reconfigure_queue_count()
1017 if_cfg.s.num_iqueues = oct->sriov_info.num_pf_rings; in lio_23xx_reconfigure_queue_count()
1018 if_cfg.s.num_oqueues = oct->sriov_info.num_pf_rings; in lio_23xx_reconfigure_queue_count()
1019 if_cfg.s.base_queue = oct->sriov_info.pf_srn; in lio_23xx_reconfigure_queue_count()
1020 if_cfg.s.gmx_port_id = oct->pf_num; in lio_23xx_reconfigure_queue_count()
1023 octeon_prepare_soft_command(oct, sc, OPCODE_NIC, in lio_23xx_reconfigure_queue_count()
1030 retval = octeon_send_soft_command(oct, sc); in lio_23xx_reconfigure_queue_count()
1032 dev_err(&oct->pci_dev->dev, in lio_23xx_reconfigure_queue_count()
1035 octeon_free_soft_command(oct, sc); in lio_23xx_reconfigure_queue_count()
1039 retval = wait_for_sc_completion_timeout(oct, sc, 0); in lio_23xx_reconfigure_queue_count()
1045 dev_err(&oct->pci_dev->dev, in lio_23xx_reconfigure_queue_count()
1073 dev_info(&oct->pci_dev->dev, "Queue count updated to %d\n", in lio_23xx_reconfigure_queue_count()
1084 struct octeon_device *oct = lio->oct_dev; in lio_reset_queues() local
1091 if (wait_for_pending_requests(oct)) in lio_reset_queues()
1092 dev_err(&oct->pci_dev->dev, "There were pending requests\n"); in lio_reset_queues()
1094 if (lio_wait_for_instr_fetch(oct)) in lio_reset_queues()
1095 dev_err(&oct->pci_dev->dev, "IQ had pending instructions\n"); in lio_reset_queues()
1097 if (octeon_set_io_queues_off(oct)) { in lio_reset_queues()
1098 dev_err(&oct->pci_dev->dev, "Setting io queues off failed\n"); in lio_reset_queues()
1105 oct->fn_list.disable_io_queues(oct); in lio_reset_queues()
1110 if (num_qs != oct->num_iqs) { in lio_reset_queues()
1113 dev_err(&oct->pci_dev->dev, in lio_reset_queues()
1120 dev_err(&oct->pci_dev->dev, in lio_reset_queues()
1145 if ((OCTEON_CN23XX_PF(oct)) && !oct->sriov_info.sriov_enabled) in lio_reset_queues()
1146 oct->fn_list.free_mbox(oct); in lio_reset_queues()
1149 for (i = 0; i < MAX_OCTEON_OUTPUT_QUEUES(oct); i++) { in lio_reset_queues()
1150 if (!(oct->io_qmask.oq & BIT_ULL(i))) in lio_reset_queues()
1152 octeon_delete_droq(oct, i); in lio_reset_queues()
1155 for (i = 0; i < MAX_OCTEON_INSTR_QUEUES(oct); i++) { in lio_reset_queues()
1156 if (!(oct->io_qmask.iq & BIT_ULL(i))) in lio_reset_queues()
1158 octeon_delete_instr_queue(oct, i); in lio_reset_queues()
1163 if ((OCTEON_CN23XX_PF(oct)) && in lio_reset_queues()
1164 !oct->sriov_info.sriov_enabled) { in lio_reset_queues()
1165 oct->sriov_info.num_pf_rings = num_qs; in lio_reset_queues()
1166 if (cn23xx_sriov_config(oct)) { in lio_reset_queues()
1167 dev_err(&oct->pci_dev->dev, in lio_reset_queues()
1172 num_qs = oct->sriov_info.num_pf_rings; in lio_reset_queues()
1176 if (oct->fn_list.setup_device_regs(oct)) { in lio_reset_queues()
1177 dev_err(&oct->pci_dev->dev, "Failed to configure device registers\n"); in lio_reset_queues()
1185 if (octeon_setup_instr_queues(oct)) in lio_reset_queues()
1188 if (octeon_setup_output_queues(oct)) in lio_reset_queues()
1192 if (OCTEON_CN23XX_PF(oct) && !oct->sriov_info.sriov_enabled) { in lio_reset_queues()
1193 if (oct->fn_list.setup_mbox(oct)) { in lio_reset_queues()
1194 dev_err(&oct->pci_dev->dev, "Mailbox setup failed\n"); in lio_reset_queues()
1202 if (lio_irq_reallocate_irqs(oct, num_qs)) { in lio_reset_queues()
1203 dev_err(&oct->pci_dev->dev, "IRQs could not be allocated\n"); in lio_reset_queues()
1208 if (oct->fn_list.enable_io_queues(oct)) { in lio_reset_queues()
1209 dev_err(&oct->pci_dev->dev, "Failed to enable input/output queues\n"); in lio_reset_queues()
1213 for (i = 0; i < oct->num_oqs; i++) in lio_reset_queues()
1214 writel(oct->droq[i]->max_count, in lio_reset_queues()
1215 oct->droq[i]->pkts_credit_reg); in lio_reset_queues()
1221 if (OCTEON_CN23XX_PF(oct) && !oct->sriov_info.sriov_enabled) { in lio_reset_queues()
1228 if (liquidio_setup_io_queues(oct, 0, num_qs, num_qs)) { in lio_reset_queues()
1229 dev_err(&oct->pci_dev->dev, "I/O queues creation failed\n"); in lio_reset_queues()
1234 if (lio_setup_glists(oct, lio, num_qs)) { in lio_reset_queues()
1235 dev_err(&oct->pci_dev->dev, "Gather list allocation failed\n"); in lio_reset_queues()
1240 dev_err(&oct->pci_dev->dev, "lio_setup_rx_oom_poll_fn failed\n"); in lio_reset_queues()
1247 if (oct->sriov_info.sriov_enabled || OCTEON_CN23XX_VF(oct)) in lio_reset_queues()
1260 struct octeon_device *oct = lio->oct_dev; in lio_ethtool_set_ringparam() local
1263 if (!OCTEON_CN23XX_PF(oct) && !OCTEON_CN23XX_VF(oct)) in lio_ethtool_set_ringparam()
1274 rx_count_old = oct->droq[0]->max_count; in lio_ethtool_set_ringparam()
1275 tx_count_old = oct->instr_queue[0]->max_count; in lio_ethtool_set_ringparam()
1289 CFG_SET_NUM_TX_DESCS_NIC_IF(octeon_get_conf(oct), lio->ifidx, in lio_ethtool_set_ringparam()
1292 CFG_SET_NUM_RX_DESCS_NIC_IF(octeon_get_conf(oct), lio->ifidx, in lio_ethtool_set_ringparam()
1295 if (lio_reset_queues(netdev, oct->num_iqs)) in lio_ethtool_set_ringparam()
1307 CFG_SET_NUM_TX_DESCS_NIC_IF(octeon_get_conf(oct), lio->ifidx, in lio_ethtool_set_ringparam()
1310 CFG_SET_NUM_RX_DESCS_NIC_IF(octeon_get_conf(oct), lio->ifidx, in lio_ethtool_set_ringparam()
1352 struct octeon_device *oct = lio->oct_dev; in lio_get_pauseparam() local
1356 pause->tx_pause = oct->tx_pause; in lio_get_pauseparam()
1357 pause->rx_pause = oct->rx_pause; in lio_get_pauseparam()
1367 struct octeon_device *oct = lio->oct_dev; in lio_set_pauseparam() local
1373 if (oct->chip_id != OCTEON_CN23XX_PF_VID) in lio_set_pauseparam()
1412 dev_err(&oct->pci_dev->dev, in lio_set_pauseparam()
1417 oct->rx_pause = pause->rx_pause; in lio_set_pauseparam()
1418 oct->tx_pause = pause->tx_pause; in lio_set_pauseparam()
2116 struct octeon_device *oct = lio->oct_dev; in lio_get_intr_coalesce() local
2123 switch (oct->chip_id) { in lio_get_intr_coalesce()
2127 intr_coal->rx_coalesce_usecs = oct->rx_coalesce_usecs; in lio_get_intr_coalesce()
2129 oct->rx_max_coalesced_frames; in lio_get_intr_coalesce()
2133 oct->tx_max_coalesced_frames; in lio_get_intr_coalesce()
2139 (struct octeon_cn6xxx *)oct->chip; in lio_get_intr_coalesce()
2147 iq = oct->instr_queue[lio->linfo.txpciq[0].s.q_no]; in lio_get_intr_coalesce()
2173 if ((OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct)) && in lio_get_intr_coalesce()
2224 struct octeon_device *oct = lio->oct_dev; in oct_cfg_rx_intrcnt() local
2228 switch (oct->chip_id) { in oct_cfg_rx_intrcnt()
2232 (struct octeon_cn6xxx *)oct->chip; in oct_cfg_rx_intrcnt()
2239 octeon_write_csr(oct, CN6XXX_SLI_OQ_INT_LEVEL_PKTS, in oct_cfg_rx_intrcnt()
2252 for (q_no = 0; q_no < oct->num_oqs; q_no++) { in oct_cfg_rx_intrcnt()
2253 q_no += oct->sriov_info.pf_srn; in oct_cfg_rx_intrcnt()
2255 oct, CN23XX_SLI_OQ_PKT_INT_LEVELS(q_no), in oct_cfg_rx_intrcnt()
2257 oct, CN23XX_SLI_OQ_PKT_INT_LEVELS(q_no)) & in oct_cfg_rx_intrcnt()
2263 oct->rx_max_coalesced_frames = rx_max_coalesced_frames; in oct_cfg_rx_intrcnt()
2274 for (q_no = 0; q_no < oct->num_oqs; q_no++) { in oct_cfg_rx_intrcnt()
2276 oct, CN23XX_VF_SLI_OQ_PKT_INT_LEVELS(q_no), in oct_cfg_rx_intrcnt()
2278 oct, CN23XX_VF_SLI_OQ_PKT_INT_LEVELS(q_no)) & in oct_cfg_rx_intrcnt()
2284 oct->rx_max_coalesced_frames = rx_max_coalesced_frames; in oct_cfg_rx_intrcnt()
2297 struct octeon_device *oct = lio->oct_dev; in oct_cfg_rx_intrtime() local
2301 switch (oct->chip_id) { in oct_cfg_rx_intrtime()
2305 (struct octeon_cn6xxx *)oct->chip; in oct_cfg_rx_intrtime()
2311 time_threshold = lio_cn6xxx_get_oq_ticks(oct, in oct_cfg_rx_intrtime()
2313 octeon_write_csr(oct, in oct_cfg_rx_intrtime()
2329 cn23xx_pf_get_oq_ticks(oct, (u32)rx_coalesce_usecs); in oct_cfg_rx_intrtime()
2330 for (q_no = 0; q_no < oct->num_oqs; q_no++) { in oct_cfg_rx_intrtime()
2331 q_no += oct->sriov_info.pf_srn; in oct_cfg_rx_intrtime()
2332 octeon_write_csr64(oct, in oct_cfg_rx_intrtime()
2339 oct->rx_coalesce_usecs = rx_coalesce_usecs; in oct_cfg_rx_intrtime()
2352 cn23xx_vf_get_oq_ticks(oct, (u32)rx_coalesce_usecs); in oct_cfg_rx_intrtime()
2353 for (q_no = 0; q_no < oct->num_oqs; q_no++) { in oct_cfg_rx_intrtime()
2355 oct, CN23XX_VF_SLI_OQ_PKT_INT_LEVELS(q_no), in oct_cfg_rx_intrtime()
2361 oct->rx_coalesce_usecs = rx_coalesce_usecs; in oct_cfg_rx_intrtime()
2376 struct octeon_device *oct = lio->oct_dev; in oct_cfg_tx_intrcnt() local
2382 switch (oct->chip_id) { in oct_cfg_tx_intrcnt()
2396 for (q_no = 0; q_no < oct->num_iqs; q_no++) { in oct_cfg_tx_intrcnt()
2397 inst_cnt_reg = (oct->instr_queue[q_no])->inst_cnt_reg; in oct_cfg_tx_intrcnt()
2407 oct->tx_max_coalesced_frames = iq_intr_pkt; in oct_cfg_tx_intrcnt()
2423 struct octeon_device *oct = lio->oct_dev; in lio_set_intr_coalesce() local
2428 switch (oct->chip_id) { in lio_set_intr_coalesce()
2437 oct->instr_queue[q_no]->fill_threshold = in lio_set_intr_coalesce()
2441 dev_err(&oct->pci_dev->dev, in lio_set_intr_coalesce()
2457 intrmod.rx_frames = CFG_GET_OQ_INTR_PKT(octeon_get_conf(oct)); in lio_set_intr_coalesce()
2458 intrmod.rx_usecs = CFG_GET_OQ_INTR_TIME(octeon_get_conf(oct)); in lio_set_intr_coalesce()
2459 intrmod.tx_frames = CFG_GET_IQ_INTR_PKT(octeon_get_conf(oct)); in lio_set_intr_coalesce()
2472 oct->rx_coalesce_usecs = in lio_set_intr_coalesce()
2473 CFG_GET_OQ_INTR_TIME(octeon_get_conf(oct)); in lio_set_intr_coalesce()
2474 oct->rx_max_coalesced_frames = in lio_set_intr_coalesce()
2475 CFG_GET_OQ_INTR_PKT(octeon_get_conf(oct)); in lio_set_intr_coalesce()
2483 oct->tx_max_coalesced_frames = in lio_set_intr_coalesce()
2484 CFG_GET_IQ_INTR_PKT(octeon_get_conf(oct)); in lio_set_intr_coalesce()
2528 struct octeon_device *oct = lio->oct_dev; in lio_get_regs_len() local
2530 switch (oct->chip_id) { in lio_get_regs_len()
2540 static int cn23xx_read_csr_reg(char *s, struct octeon_device *oct) in cn23xx_read_csr_reg() argument
2543 u8 pf_num = oct->pf_num; in cn23xx_read_csr_reg()
2552 reg = CN23XX_SLI_PKT_MAC_RINFO64(oct->pcie_port, oct->pf_num); in cn23xx_read_csr_reg()
2555 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg()
2556 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2559 reg = CN23XX_SLI_MAC_PF_INT_ENB64(oct->pcie_port, oct->pf_num); in cn23xx_read_csr_reg()
2562 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg()
2563 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2566 reg = CN23XX_SLI_MAC_PF_INT_SUM64(oct->pcie_port, oct->pf_num); in cn23xx_read_csr_reg()
2569 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg()
2570 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2575 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2578 reg = 0x27300 + oct->pcie_port * CN23XX_MAC_INT_OFFSET + in cn23xx_read_csr_reg()
2579 (oct->pf_num) * CN23XX_PF_INT_OFFSET; in cn23xx_read_csr_reg()
2582 oct->pcie_port, oct->pf_num, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2585 reg = 0x27200 + oct->pcie_port * CN23XX_MAC_INT_OFFSET + in cn23xx_read_csr_reg()
2586 (oct->pf_num) * CN23XX_PF_INT_OFFSET; in cn23xx_read_csr_reg()
2589 reg, oct->pcie_port, oct->pf_num, in cn23xx_read_csr_reg()
2590 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2595 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2600 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2605 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2610 reg, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2615 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2621 (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2626 reg, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2634 reg, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2640 reg, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2647 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2655 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2663 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2671 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2680 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2688 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2696 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2703 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2711 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2719 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2728 i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2737 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2746 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2754 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_read_csr_reg()
2760 static int cn23xx_vf_read_csr_reg(char *s, struct octeon_device *oct) in cn23xx_vf_read_csr_reg() argument
2770 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2774 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2777 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2781 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2784 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2788 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2791 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2795 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2798 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2802 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2805 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2809 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2812 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2816 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2819 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2822 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2825 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2829 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2832 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2836 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2839 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2843 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2846 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2850 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2853 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2857 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2860 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2864 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2867 for (i = 0; i < (oct->sriov_info.rings_per_vf); i++) { in cn23xx_vf_read_csr_reg()
2871 reg, i, (u64)octeon_read_csr64(oct, reg)); in cn23xx_vf_read_csr_reg()
2877 static int cn6xxx_read_csr_reg(char *s, struct octeon_device *oct) in cn6xxx_read_csr_reg() argument
2887 CN6XXX_WIN_WR_ADDR_LO, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2890 CN6XXX_WIN_WR_ADDR_HI, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2893 CN6XXX_WIN_RD_ADDR_LO, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2896 CN6XXX_WIN_RD_ADDR_HI, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2899 CN6XXX_WIN_WR_DATA_LO, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2902 CN6XXX_WIN_WR_DATA_HI, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2905 octeon_read_csr(oct, CN6XXX_WIN_WR_MASK_REG)); in cn6xxx_read_csr_reg()
2909 CN6XXX_SLI_INT_ENB64_PORT0, octeon_read_csr(oct, in cn6xxx_read_csr_reg()
2913 octeon_read_csr(oct, CN6XXX_SLI_INT_ENB64_PORT1)); in cn6xxx_read_csr_reg()
2915 octeon_read_csr(oct, CN6XXX_SLI_INT_SUM64)); in cn6xxx_read_csr_reg()
2918 for (i = 0; i < oct->num_oqs; i++) { in cn6xxx_read_csr_reg()
2921 reg, i, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2924 reg, i, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2928 reg, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2931 reg, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2939 reg, i, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2942 reg, i, octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2949 octeon_read_csr(oct, CN6XXX_DMA_CNT(0))); in cn6xxx_read_csr_reg()
2952 CN6XXX_DMA_PKT_INT_LEVEL(0), octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2956 octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2960 octeon_read_csr(oct, CN6XXX_DMA_CNT(1))); in cn6xxx_read_csr_reg()
2964 octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2968 octeon_read_csr(oct, reg)); in cn6xxx_read_csr_reg()
2975 reg = lio_pci_readq(oct, CN6XXX_BAR1_REG(i, oct->pcie_port)); in cn6xxx_read_csr_reg()
2977 CN6XXX_BAR1_REG(i, oct->pcie_port), i, reg); in cn6xxx_read_csr_reg()
2983 static int cn6xxx_read_config_reg(char *s, struct octeon_device *oct) in cn6xxx_read_config_reg() argument
2994 pci_read_config_dword(oct->pci_dev, (i * 4), &val); in cn6xxx_read_config_reg()
3000 pci_read_config_dword(oct->pci_dev, (i * 4), &val); in cn6xxx_read_config_reg()
3014 struct octeon_device *oct = lio->oct_dev; in lio_get_regs() local
3018 switch (oct->chip_id) { in lio_get_regs()
3021 len += cn23xx_read_csr_reg(regbuf + len, oct); in lio_get_regs()
3025 len += cn23xx_vf_read_csr_reg(regbuf + len, oct); in lio_get_regs()
3030 len += cn6xxx_read_csr_reg(regbuf + len, oct); in lio_get_regs()
3031 len += cn6xxx_read_config_reg(regbuf + len, oct); in lio_get_regs()
3034 dev_err(&oct->pci_dev->dev, "%s Unknown chipid: %d\n", in lio_get_regs()
3035 __func__, oct->chip_id); in lio_get_regs()
3060 struct octeon_device *oct = lio->oct_dev; in lio_get_fecparam() local
3065 if (oct->subsystem_id == OCTEON_CN2350_25GB_SUBSYS_ID || in lio_get_fecparam()
3066 oct->subsystem_id == OCTEON_CN2360_25GB_SUBSYS_ID) { in lio_get_fecparam()
3067 if (oct->no_speed_setting == 1) in lio_get_fecparam()
3072 if (oct->props[lio->ifidx].fec == 1) in lio_get_fecparam()
3085 struct octeon_device *oct = lio->oct_dev; in lio_set_fecparam() local
3087 if (oct->subsystem_id == OCTEON_CN2350_25GB_SUBSYS_ID || in lio_set_fecparam()
3088 oct->subsystem_id == OCTEON_CN2360_25GB_SUBSYS_ID) { in lio_set_fecparam()
3089 if (oct->no_speed_setting == 1) in lio_set_fecparam()
3171 struct octeon_device *oct = lio->oct_dev; in liquidio_set_ethtool_ops() local
3173 if (OCTEON_CN23XX_VF(oct)) in liquidio_set_ethtool_ops()