Lines Matching refs:adapter

57 static int t4_wait_op_done_val(struct adapter *adapter, int reg, u32 mask,  in t4_wait_op_done_val()  argument
61 u32 val = t4_read_reg(adapter, reg); in t4_wait_op_done_val()
75 static inline int t4_wait_op_done(struct adapter *adapter, int reg, u32 mask, in t4_wait_op_done() argument
78 return t4_wait_op_done_val(adapter, reg, mask, polarity, attempts, in t4_wait_op_done()
92 void t4_set_reg_field(struct adapter *adapter, unsigned int addr, u32 mask, in t4_set_reg_field() argument
95 u32 v = t4_read_reg(adapter, addr) & ~mask; in t4_set_reg_field()
97 t4_write_reg(adapter, addr, v | val); in t4_set_reg_field()
98 (void) t4_read_reg(adapter, addr); /* flush */ in t4_set_reg_field()
113 void t4_read_indirect(struct adapter *adap, unsigned int addr_reg, in t4_read_indirect()
136 void t4_write_indirect(struct adapter *adap, unsigned int addr_reg, in t4_write_indirect()
152 void t4_hw_pci_read_cfg4(struct adapter *adap, int reg, u32 *val) in t4_hw_pci_read_cfg4()
183 static void t4_report_fw_error(struct adapter *adap) in t4_report_fw_error()
206 static void get_mbox_rpl(struct adapter *adap, __be64 *rpl, int nflit, in get_mbox_rpl()
216 static void fw_asrt(struct adapter *adap, u32 mbox_addr) in fw_asrt()
227 static void dump_mbox(struct adapter *adap, int mbox, u32 data_reg) in dump_mbox()
264 int t4_wr_mbox_meat_timeout(struct adapter *adap, int mbox, const void *cmd, in t4_wr_mbox_meat_timeout()
342 int t4_wr_mbox_meat(struct adapter *adap, int mbox, const void *cmd, int size, in t4_wr_mbox_meat()
349 static int t4_edc_err_read(struct adapter *adap, int idx) in t4_edc_err_read()
403 int t4_memory_rw(struct adapter *adap, int win, int mtype, u32 addr, in t4_memory_rw()
573 u32 t4_read_pcie_cfg4(struct adapter *adap, int reg) in t4_read_pcie_cfg4()
614 static u32 t4_get_window(struct adapter *adap, u32 pci_base, u64 pci_mask, in t4_get_window()
644 u32 t4_get_util_window(struct adapter *adap) in t4_get_util_window()
654 void t4_setup_memwin(struct adapter *adap, u32 memwin_base, u32 window) in t4_setup_memwin()
670 unsigned int t4_get_regs_len(struct adapter *adapter) in t4_get_regs_len() argument
672 unsigned int chip_version = CHELSIO_CHIP_VERSION(adapter->params.chip); in t4_get_regs_len()
683 dev_err(adapter->pdev_dev, in t4_get_regs_len()
698 void t4_get_regs(struct adapter *adap, void *buf, size_t buf_size) in t4_get_regs()
2566 int t4_seeprom_wp(struct adapter *adapter, bool enable) in t4_seeprom_wp() argument
2569 int ret = pci_write_vpd(adapter->pdev, EEPROM_STAT_ADDR, 4, &v); in t4_seeprom_wp()
2580 int t4_get_raw_vpd_params(struct adapter *adapter, struct vpd_params *p) in t4_get_raw_vpd_params() argument
2594 ret = pci_read_vpd(adapter->pdev, VPD_BASE, sizeof(u32), vpd); in t4_get_raw_vpd_params()
2606 ret = pci_read_vpd(adapter->pdev, addr, VPD_LEN, vpd); in t4_get_raw_vpd_params()
2611 dev_err(adapter->pdev_dev, "missing VPD ID string\n"); in t4_get_raw_vpd_params()
2622 dev_err(adapter->pdev_dev, "missing VPD-R section\n"); in t4_get_raw_vpd_params()
2630 dev_err(adapter->pdev_dev, "bad VPD-R length %u\n", vpdr_len); in t4_get_raw_vpd_params()
2638 dev_err(adapter->pdev_dev, "missing VPD keyword " name "\n"); \ in t4_get_raw_vpd_params()
2650 dev_err(adapter->pdev_dev, in t4_get_raw_vpd_params()
2689 int t4_get_vpd_params(struct adapter *adapter, struct vpd_params *p) in t4_get_vpd_params() argument
2696 ret = t4_get_raw_vpd_params(adapter, p); in t4_get_vpd_params()
2705 ret = t4_query_params(adapter, adapter->mbox, adapter->pf, 0, in t4_get_vpd_params()
2743 static int sf1_read(struct adapter *adapter, unsigned int byte_cnt, int cont, in sf1_read() argument
2750 if (t4_read_reg(adapter, SF_OP_A) & SF_BUSY_F) in sf1_read()
2752 t4_write_reg(adapter, SF_OP_A, SF_LOCK_V(lock) | in sf1_read()
2754 ret = t4_wait_op_done(adapter, SF_OP_A, SF_BUSY_F, 0, SF_ATTEMPTS, 5); in sf1_read()
2756 *valp = t4_read_reg(adapter, SF_DATA_A); in sf1_read()
2772 static int sf1_write(struct adapter *adapter, unsigned int byte_cnt, int cont, in sf1_write() argument
2777 if (t4_read_reg(adapter, SF_OP_A) & SF_BUSY_F) in sf1_write()
2779 t4_write_reg(adapter, SF_DATA_A, val); in sf1_write()
2780 t4_write_reg(adapter, SF_OP_A, SF_LOCK_V(lock) | in sf1_write()
2782 return t4_wait_op_done(adapter, SF_OP_A, SF_BUSY_F, 0, SF_ATTEMPTS, 5); in sf1_write()
2793 static int flash_wait_op(struct adapter *adapter, int attempts, int delay) in flash_wait_op() argument
2799 if ((ret = sf1_write(adapter, 1, 1, 1, SF_RD_STATUS)) != 0 || in flash_wait_op()
2800 (ret = sf1_read(adapter, 1, 0, 1, &status)) != 0) in flash_wait_op()
2824 int t4_read_flash(struct adapter *adapter, unsigned int addr, in t4_read_flash() argument
2829 if (addr + nwords * sizeof(u32) > adapter->params.sf_size || (addr & 3)) in t4_read_flash()
2834 if ((ret = sf1_write(adapter, 4, 1, 0, addr)) != 0 || in t4_read_flash()
2835 (ret = sf1_read(adapter, 1, 1, 0, data)) != 0) in t4_read_flash()
2839 ret = sf1_read(adapter, 4, nwords > 1, nwords == 1, data); in t4_read_flash()
2841 t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */ in t4_read_flash()
2860 static int t4_write_flash(struct adapter *adapter, unsigned int addr, in t4_write_flash() argument
2867 if (addr >= adapter->params.sf_size || offset + n > SF_PAGE_SIZE) in t4_write_flash()
2872 if ((ret = sf1_write(adapter, 1, 0, 1, SF_WR_ENABLE)) != 0 || in t4_write_flash()
2873 (ret = sf1_write(adapter, 4, 1, 1, val)) != 0) in t4_write_flash()
2881 ret = sf1_write(adapter, c, c != left, 1, val); in t4_write_flash()
2885 ret = flash_wait_op(adapter, 8, 1); in t4_write_flash()
2889 t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */ in t4_write_flash()
2892 ret = t4_read_flash(adapter, addr & ~0xff, ARRAY_SIZE(buf), buf, 1); in t4_write_flash()
2897 dev_err(adapter->pdev_dev, in t4_write_flash()
2905 t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */ in t4_write_flash()
2916 int t4_get_fw_version(struct adapter *adapter, u32 *vers) in t4_get_fw_version() argument
2918 return t4_read_flash(adapter, FLASH_FW_START + in t4_get_fw_version()
2930 int t4_get_tp_version(struct adapter *adapter, u32 *vers) in t4_get_tp_version() argument
2932 return t4_read_flash(adapter, FLASH_FW_START + in t4_get_tp_version()
2947 int t4_get_exprom_version(struct adapter *adap, u32 *vers) in t4_get_exprom_version()
2982 int t4_check_fw_version(struct adapter *adap) in t4_check_fw_version()
3056 static int should_install_fs_fw(struct adapter *adap, int card_fw_usable, in should_install_fs_fw()
3084 int t4_prep_fw(struct adapter *adap, struct fw_info *fw_info, in t4_prep_fw()
3177 static int t4_flash_erase_sectors(struct adapter *adapter, int start, int end) in t4_flash_erase_sectors() argument
3181 if (end >= adapter->params.sf_nsec) in t4_flash_erase_sectors()
3185 if ((ret = sf1_write(adapter, 1, 0, 1, SF_WR_ENABLE)) != 0 || in t4_flash_erase_sectors()
3186 (ret = sf1_write(adapter, 4, 0, 1, in t4_flash_erase_sectors()
3188 (ret = flash_wait_op(adapter, 14, 500)) != 0) { in t4_flash_erase_sectors()
3189 dev_err(adapter->pdev_dev, in t4_flash_erase_sectors()
3196 t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */ in t4_flash_erase_sectors()
3207 unsigned int t4_flash_cfg_addr(struct adapter *adapter) in t4_flash_cfg_addr() argument
3209 if (adapter->params.sf_size == 0x100000) in t4_flash_cfg_addr()
3220 static bool t4_fw_matches_chip(const struct adapter *adap, in t4_fw_matches_chip()
3245 int t4_load_fw(struct adapter *adap, const u8 *fw_data, unsigned int size) in t4_load_fw()
3333 int t4_phy_fw_ver(struct adapter *adap, int *phy_fw_ver) in t4_phy_fw_ver()
3377 int t4_load_phy_fw(struct adapter *adap, in t4_load_phy_fw()
3471 int t4_fwcache(struct adapter *adap, enum fw_params_param_dev_fwcache op) in t4_fwcache()
3490 void t4_cim_read_pif_la(struct adapter *adap, u32 *pif_req, u32 *pif_rsp, in t4_cim_read_pif_la()
3524 void t4_cim_read_ma_la(struct adapter *adap, u32 *ma_req, u32 *ma_rsp) in t4_cim_read_ma_la()
3545 void t4_ulprx_read_la(struct adapter *adap, u32 *la_buf) in t4_ulprx_read_la()
3577 int t4_link_l1cfg(struct adapter *adap, unsigned int mbox, unsigned int port, in t4_link_l1cfg()
3618 int t4_restart_aneg(struct adapter *adap, unsigned int mbox, unsigned int port) in t4_restart_aneg()
3633 typedef void (*int_handler_t)(struct adapter *adap);
3656 static int t4_handle_intr_status(struct adapter *adapter, unsigned int reg, in t4_handle_intr_status() argument
3661 unsigned int status = t4_read_reg(adapter, reg); in t4_handle_intr_status()
3668 dev_alert(adapter->pdev_dev, "%s (0x%x)\n", acts->msg, in t4_handle_intr_status()
3671 dev_warn(adapter->pdev_dev, "%s (0x%x)\n", acts->msg, in t4_handle_intr_status()
3674 acts->int_handler(adapter); in t4_handle_intr_status()
3679 t4_write_reg(adapter, reg, status); in t4_handle_intr_status()
3686 static void pcie_intr_handler(struct adapter *adapter) in pcie_intr_handler() argument
3785 if (is_t4(adapter->params.chip)) in pcie_intr_handler()
3786 fat = t4_handle_intr_status(adapter, in pcie_intr_handler()
3789 t4_handle_intr_status(adapter, in pcie_intr_handler()
3792 t4_handle_intr_status(adapter, PCIE_INT_CAUSE_A, in pcie_intr_handler()
3795 fat = t4_handle_intr_status(adapter, PCIE_INT_CAUSE_A, in pcie_intr_handler()
3799 t4_fatal_err(adapter); in pcie_intr_handler()
3805 static void tp_intr_handler(struct adapter *adapter) in tp_intr_handler() argument
3813 if (t4_handle_intr_status(adapter, TP_INT_CAUSE_A, tp_intr_info)) in tp_intr_handler()
3814 t4_fatal_err(adapter); in tp_intr_handler()
3820 static void sge_intr_handler(struct adapter *adapter) in sge_intr_handler() argument
3857 v = (u64)t4_read_reg(adapter, SGE_INT_CAUSE1_A) | in sge_intr_handler()
3858 ((u64)t4_read_reg(adapter, SGE_INT_CAUSE2_A) << 32); in sge_intr_handler()
3860 dev_alert(adapter->pdev_dev, "SGE parity error (%#llx)\n", in sge_intr_handler()
3862 t4_write_reg(adapter, SGE_INT_CAUSE1_A, v); in sge_intr_handler()
3863 t4_write_reg(adapter, SGE_INT_CAUSE2_A, v >> 32); in sge_intr_handler()
3866 v |= t4_handle_intr_status(adapter, SGE_INT_CAUSE3_A, sge_intr_info); in sge_intr_handler()
3867 if (CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5) in sge_intr_handler()
3868 v |= t4_handle_intr_status(adapter, SGE_INT_CAUSE3_A, in sge_intr_handler()
3871 err = t4_read_reg(adapter, SGE_ERROR_STATS_A); in sge_intr_handler()
3873 dev_err(adapter->pdev_dev, "SGE error for queue %u\n", in sge_intr_handler()
3876 dev_err(adapter->pdev_dev, in sge_intr_handler()
3878 t4_write_reg(adapter, SGE_ERROR_STATS_A, ERROR_QID_VALID_F | in sge_intr_handler()
3883 t4_fatal_err(adapter); in sge_intr_handler()
3894 static void cim_intr_handler(struct adapter *adapter) in cim_intr_handler() argument
3940 if (t4_read_reg(adapter, PCIE_FW_A) & PCIE_FW_ERR_F) in cim_intr_handler()
3941 t4_report_fw_error(adapter); in cim_intr_handler()
3943 fat = t4_handle_intr_status(adapter, CIM_HOST_INT_CAUSE_A, in cim_intr_handler()
3945 t4_handle_intr_status(adapter, CIM_HOST_UPACC_INT_CAUSE_A, in cim_intr_handler()
3948 t4_fatal_err(adapter); in cim_intr_handler()
3954 static void ulprx_intr_handler(struct adapter *adapter) in ulprx_intr_handler() argument
3962 if (t4_handle_intr_status(adapter, ULP_RX_INT_CAUSE_A, ulprx_intr_info)) in ulprx_intr_handler()
3963 t4_fatal_err(adapter); in ulprx_intr_handler()
3969 static void ulptx_intr_handler(struct adapter *adapter) in ulptx_intr_handler() argument
3984 if (t4_handle_intr_status(adapter, ULP_TX_INT_CAUSE_A, ulptx_intr_info)) in ulptx_intr_handler()
3985 t4_fatal_err(adapter); in ulptx_intr_handler()
3991 static void pmtx_intr_handler(struct adapter *adapter) in pmtx_intr_handler() argument
4007 if (t4_handle_intr_status(adapter, PM_TX_INT_CAUSE_A, pmtx_intr_info)) in pmtx_intr_handler()
4008 t4_fatal_err(adapter); in pmtx_intr_handler()
4014 static void pmrx_intr_handler(struct adapter *adapter) in pmrx_intr_handler() argument
4027 if (t4_handle_intr_status(adapter, PM_RX_INT_CAUSE_A, pmrx_intr_info)) in pmrx_intr_handler()
4028 t4_fatal_err(adapter); in pmrx_intr_handler()
4034 static void cplsw_intr_handler(struct adapter *adapter) in cplsw_intr_handler() argument
4046 if (t4_handle_intr_status(adapter, CPL_INTR_CAUSE_A, cplsw_intr_info)) in cplsw_intr_handler()
4047 t4_fatal_err(adapter); in cplsw_intr_handler()
4053 static void le_intr_handler(struct adapter *adap) in le_intr_handler()
4083 static void mps_intr_handler(struct adapter *adapter) in mps_intr_handler() argument
4129 fat = t4_handle_intr_status(adapter, MPS_RX_PERR_INT_CAUSE_A, in mps_intr_handler()
4131 t4_handle_intr_status(adapter, MPS_TX_INT_CAUSE_A, in mps_intr_handler()
4133 t4_handle_intr_status(adapter, MPS_TRC_INT_CAUSE_A, in mps_intr_handler()
4135 t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_SRAM_A, in mps_intr_handler()
4137 t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_TX_FIFO_A, in mps_intr_handler()
4139 t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_RX_FIFO_A, in mps_intr_handler()
4141 t4_handle_intr_status(adapter, MPS_CLS_INT_CAUSE_A, in mps_intr_handler()
4144 t4_write_reg(adapter, MPS_INT_CAUSE_A, 0); in mps_intr_handler()
4145 t4_read_reg(adapter, MPS_INT_CAUSE_A); /* flush */ in mps_intr_handler()
4147 t4_fatal_err(adapter); in mps_intr_handler()
4156 static void mem_intr_handler(struct adapter *adapter, int idx) in mem_intr_handler() argument
4166 if (is_t4(adapter->params.chip)) { in mem_intr_handler()
4178 v = t4_read_reg(adapter, addr) & MEM_INT_MASK; in mem_intr_handler()
4180 dev_alert(adapter->pdev_dev, "%s FIFO parity error\n", in mem_intr_handler()
4183 u32 cnt = ECC_CECNT_G(t4_read_reg(adapter, cnt_addr)); in mem_intr_handler()
4185 t4_edc_err_read(adapter, idx); in mem_intr_handler()
4187 t4_write_reg(adapter, cnt_addr, ECC_CECNT_V(ECC_CECNT_M)); in mem_intr_handler()
4189 dev_warn(adapter->pdev_dev, in mem_intr_handler()
4194 dev_alert(adapter->pdev_dev, in mem_intr_handler()
4197 t4_write_reg(adapter, addr, v); in mem_intr_handler()
4199 t4_fatal_err(adapter); in mem_intr_handler()
4205 static void ma_intr_handler(struct adapter *adap) in ma_intr_handler()
4233 static void smb_intr_handler(struct adapter *adap) in smb_intr_handler()
4249 static void ncsi_intr_handler(struct adapter *adap) in ncsi_intr_handler()
4266 static void xgmac_intr_handler(struct adapter *adap, int port) in xgmac_intr_handler()
4294 static void pl_intr_handler(struct adapter *adap) in pl_intr_handler()
4319 int t4_slow_intr_handler(struct adapter *adapter) in t4_slow_intr_handler() argument
4321 u32 cause = t4_read_reg(adapter, PL_INT_CAUSE_A); in t4_slow_intr_handler()
4326 cim_intr_handler(adapter); in t4_slow_intr_handler()
4328 mps_intr_handler(adapter); in t4_slow_intr_handler()
4330 ncsi_intr_handler(adapter); in t4_slow_intr_handler()
4332 pl_intr_handler(adapter); in t4_slow_intr_handler()
4334 smb_intr_handler(adapter); in t4_slow_intr_handler()
4336 xgmac_intr_handler(adapter, 0); in t4_slow_intr_handler()
4338 xgmac_intr_handler(adapter, 1); in t4_slow_intr_handler()
4340 xgmac_intr_handler(adapter, 2); in t4_slow_intr_handler()
4342 xgmac_intr_handler(adapter, 3); in t4_slow_intr_handler()
4344 pcie_intr_handler(adapter); in t4_slow_intr_handler()
4346 mem_intr_handler(adapter, MEM_MC); in t4_slow_intr_handler()
4347 if (is_t5(adapter->params.chip) && (cause & MC1_F)) in t4_slow_intr_handler()
4348 mem_intr_handler(adapter, MEM_MC1); in t4_slow_intr_handler()
4350 mem_intr_handler(adapter, MEM_EDC0); in t4_slow_intr_handler()
4352 mem_intr_handler(adapter, MEM_EDC1); in t4_slow_intr_handler()
4354 le_intr_handler(adapter); in t4_slow_intr_handler()
4356 tp_intr_handler(adapter); in t4_slow_intr_handler()
4358 ma_intr_handler(adapter); in t4_slow_intr_handler()
4360 pmtx_intr_handler(adapter); in t4_slow_intr_handler()
4362 pmrx_intr_handler(adapter); in t4_slow_intr_handler()
4364 ulprx_intr_handler(adapter); in t4_slow_intr_handler()
4366 cplsw_intr_handler(adapter); in t4_slow_intr_handler()
4368 sge_intr_handler(adapter); in t4_slow_intr_handler()
4370 ulptx_intr_handler(adapter); in t4_slow_intr_handler()
4373 t4_write_reg(adapter, PL_INT_CAUSE_A, cause & GLBL_INTR_MASK); in t4_slow_intr_handler()
4374 (void)t4_read_reg(adapter, PL_INT_CAUSE_A); /* flush */ in t4_slow_intr_handler()
4391 void t4_intr_enable(struct adapter *adapter) in t4_intr_enable() argument
4394 u32 whoami = t4_read_reg(adapter, PL_WHOAMI_A); in t4_intr_enable()
4395 u32 pf = CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5 ? in t4_intr_enable()
4398 if (CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5) in t4_intr_enable()
4400 t4_write_reg(adapter, SGE_INT_ENABLE3_A, ERR_CPL_EXCEED_IQE_SIZE_F | in t4_intr_enable()
4407 t4_write_reg(adapter, MYPF_REG(PL_PF_INT_ENABLE_A), PF_INTR_MASK); in t4_intr_enable()
4408 t4_set_reg_field(adapter, PL_INT_MAP0_A, 0, 1 << pf); in t4_intr_enable()
4419 void t4_intr_disable(struct adapter *adapter) in t4_intr_disable() argument
4421 u32 whoami = t4_read_reg(adapter, PL_WHOAMI_A); in t4_intr_disable()
4422 u32 pf = CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5 ? in t4_intr_disable()
4425 t4_write_reg(adapter, MYPF_REG(PL_PF_INT_ENABLE_A), 0); in t4_intr_disable()
4426 t4_set_reg_field(adapter, PL_INT_MAP0_A, 1 << pf, 0); in t4_intr_disable()
4463 int t4_config_rss_range(struct adapter *adapter, int mbox, unsigned int viid, in t4_config_rss_range() argument
4505 ret = t4_wr_mbox(adapter, mbox, &cmd, sizeof(cmd), NULL); in t4_config_rss_range()
4521 int t4_config_glbl_rss(struct adapter *adapter, int mbox, unsigned int mode, in t4_config_glbl_rss() argument
4539 return t4_wr_mbox(adapter, mbox, &c, sizeof(c), NULL); in t4_config_glbl_rss()
4552 int t4_config_vi_rss(struct adapter *adapter, int mbox, unsigned int viid, in t4_config_vi_rss() argument
4564 return t4_wr_mbox(adapter, mbox, &c, sizeof(c), NULL); in t4_config_vi_rss()
4568 static int rd_rss_row(struct adapter *adap, int row, u32 *val) in rd_rss_row()
4582 int t4_read_rss(struct adapter *adapter, u16 *map) in t4_read_rss() argument
4588 ret = rd_rss_row(adapter, i, &val); in t4_read_rss()
4597 static unsigned int t4_use_ldst(struct adapter *adap) in t4_use_ldst()
4612 static void t4_fw_tp_pio_rw(struct adapter *adap, u32 *vals, unsigned int nregs, in t4_fw_tp_pio_rw()
4643 void t4_read_rss_key(struct adapter *adap, u32 *key) in t4_read_rss_key()
4662 void t4_write_rss_key(struct adapter *adap, const u32 *key, int idx) in t4_write_rss_key()
4701 void t4_read_rss_pf_config(struct adapter *adapter, unsigned int index, in t4_read_rss_pf_config() argument
4704 if (t4_use_ldst(adapter)) in t4_read_rss_pf_config()
4705 t4_fw_tp_pio_rw(adapter, valp, 1, in t4_read_rss_pf_config()
4708 t4_read_indirect(adapter, TP_PIO_ADDR_A, TP_PIO_DATA_A, in t4_read_rss_pf_config()
4722 void t4_read_rss_vf_config(struct adapter *adapter, unsigned int index, in t4_read_rss_vf_config() argument
4727 if (CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5) { in t4_read_rss_vf_config()
4737 vrt = t4_read_reg(adapter, TP_RSS_CONFIG_VRT_A); in t4_read_rss_vf_config()
4740 t4_write_reg(adapter, TP_RSS_CONFIG_VRT_A, vrt); in t4_read_rss_vf_config()
4744 if (t4_use_ldst(adapter)) { in t4_read_rss_vf_config()
4745 t4_fw_tp_pio_rw(adapter, vfl, 1, TP_RSS_VFL_CONFIG_A, 1); in t4_read_rss_vf_config()
4746 t4_fw_tp_pio_rw(adapter, vfh, 1, TP_RSS_VFH_CONFIG_A, 1); in t4_read_rss_vf_config()
4748 t4_read_indirect(adapter, TP_PIO_ADDR_A, TP_PIO_DATA_A, in t4_read_rss_vf_config()
4750 t4_read_indirect(adapter, TP_PIO_ADDR_A, TP_PIO_DATA_A, in t4_read_rss_vf_config()
4761 u32 t4_read_rss_pf_map(struct adapter *adapter) in t4_read_rss_pf_map() argument
4765 if (t4_use_ldst(adapter)) in t4_read_rss_pf_map()
4766 t4_fw_tp_pio_rw(adapter, &pfmap, 1, TP_RSS_PF_MAP_A, 1); in t4_read_rss_pf_map()
4768 t4_read_indirect(adapter, TP_PIO_ADDR_A, TP_PIO_DATA_A, in t4_read_rss_pf_map()
4779 u32 t4_read_rss_pf_mask(struct adapter *adapter) in t4_read_rss_pf_mask() argument
4783 if (t4_use_ldst(adapter)) in t4_read_rss_pf_mask()
4784 t4_fw_tp_pio_rw(adapter, &pfmask, 1, TP_RSS_PF_MSK_A, 1); in t4_read_rss_pf_mask()
4786 t4_read_indirect(adapter, TP_PIO_ADDR_A, TP_PIO_DATA_A, in t4_read_rss_pf_mask()
4800 void t4_tp_get_tcp_stats(struct adapter *adap, struct tp_tcp_stats *v4, in t4_tp_get_tcp_stats()
4837 void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st) in t4_tp_get_err_stats()
4869 void t4_tp_get_cpl_stats(struct adapter *adap, struct tp_cpl_stats *st) in t4_tp_get_cpl_stats()
4887 void t4_tp_get_rdma_stats(struct adapter *adap, struct tp_rdma_stats *st) in t4_tp_get_rdma_stats()
4901 void t4_get_fcoe_stats(struct adapter *adap, unsigned int idx, in t4_get_fcoe_stats()
4922 void t4_get_usm_stats(struct adapter *adap, struct tp_usm_stats *st) in t4_get_usm_stats()
4941 void t4_read_mtu_tbl(struct adapter *adap, u16 *mtus, u8 *mtu_log) in t4_read_mtu_tbl()
4964 void t4_read_cong_tbl(struct adapter *adap, u16 incr[NMTUS][NCCTRL_WIN]) in t4_read_cong_tbl()
4986 void t4_tp_wr_bits_indirect(struct adapter *adap, unsigned int addr, in t4_tp_wr_bits_indirect()
5053 void t4_load_mtus(struct adapter *adap, const unsigned short *mtus, in t4_load_mtus()
5094 static u64 chan_rate(struct adapter *adap, unsigned int bytes256) in chan_rate()
5110 void t4_get_chan_txrate(struct adapter *adap, u64 *nic_rate, u64 *ofld_rate) in t4_get_chan_txrate()
5142 int t4_set_trace_filter(struct adapter *adap, const struct trace_params *tp, in t4_set_trace_filter()
5210 void t4_get_trace_filter(struct adapter *adap, struct trace_params *tp, int idx, in t4_get_trace_filter()
5252 void t4_pmtx_get_stats(struct adapter *adap, u32 cnt[], u64 cycles[]) in t4_pmtx_get_stats()
5279 void t4_pmrx_get_stats(struct adapter *adap, u32 cnt[], u64 cycles[]) in t4_pmrx_get_stats()
5307 unsigned int t4_get_mps_bg_map(struct adapter *adap, int idx) in t4_get_mps_bg_map()
5356 void t4_get_port_stats_offset(struct adapter *adap, int idx, in t4_get_port_stats_offset()
5378 void t4_get_port_stats(struct adapter *adap, int idx, struct port_stats *p) in t4_get_port_stats()
5461 void t4_get_lb_stats(struct adapter *adap, int idx, struct lb_port_stats *p) in t4_get_lb_stats()
5529 int t4_fwaddrspace_write(struct adapter *adap, unsigned int mbox, in t4_fwaddrspace_write()
5559 int t4_mdio_rd(struct adapter *adap, unsigned int mbox, unsigned int phy_addr, in t4_mdio_rd()
5593 int t4_mdio_wr(struct adapter *adap, unsigned int mbox, unsigned int phy_addr, in t4_mdio_wr()
5618 void t4_sge_decode_idma_state(struct adapter *adapter, int state) in t4_sge_decode_idma_state() argument
5701 if (is_t4(adapter->params.chip)) { in t4_sge_decode_idma_state()
5710 CH_WARN(adapter, "idma state %s\n", sge_idma_decode[state]); in t4_sge_decode_idma_state()
5712 CH_WARN(adapter, "idma state %d unknown\n", state); in t4_sge_decode_idma_state()
5715 CH_WARN(adapter, "SGE register %#x value %#x\n", in t4_sge_decode_idma_state()
5716 sge_regs[i], t4_read_reg(adapter, sge_regs[i])); in t4_sge_decode_idma_state()
5727 int t4_sge_ctxt_flush(struct adapter *adap, unsigned int mbox) in t4_sge_ctxt_flush()
5756 int t4_fw_hello(struct adapter *adap, unsigned int mbox, unsigned int evt_mbox, in t4_fw_hello()
5882 int t4_fw_bye(struct adapter *adap, unsigned int mbox) in t4_fw_bye()
5899 int t4_early_init(struct adapter *adap, unsigned int mbox) in t4_early_init()
5916 int t4_fw_reset(struct adapter *adap, unsigned int mbox, int reset) in t4_fw_reset()
5942 static int t4_fw_halt(struct adapter *adap, unsigned int mbox, int force) in t4_fw_halt()
6007 static int t4_fw_restart(struct adapter *adap, unsigned int mbox, int reset) in t4_fw_restart()
6070 int t4_fw_upgrade(struct adapter *adap, unsigned int mbox, in t4_fw_upgrade()
6109 int t4_fixup_host_params(struct adapter *adap, unsigned int page_size, in t4_fixup_host_params()
6216 int t4_fw_initialize(struct adapter *adap, unsigned int mbox) in t4_fw_initialize()
6239 int t4_query_params_rw(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_query_params_rw()
6271 int t4_query_params(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_query_params()
6292 int t4_set_params_timeout(struct adapter *adap, unsigned int mbox, in t4_set_params_timeout()
6331 int t4_set_params(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_set_params()
6360 int t4_cfg_pfvf(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_cfg_pfvf()
6404 int t4_alloc_vi(struct adapter *adap, unsigned int mbox, unsigned int port, in t4_alloc_vi()
6451 int t4_free_vi(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_free_vi()
6482 int t4_set_rxmode(struct adapter *adap, unsigned int mbox, unsigned int viid, in t4_set_rxmode()
6536 int t4_alloc_mac_filt(struct adapter *adap, unsigned int mbox, in t4_alloc_mac_filt()
6627 int t4_change_mac(struct adapter *adap, unsigned int mbox, unsigned int viid, in t4_change_mac()
6669 int t4_set_addr_hash(struct adapter *adap, unsigned int mbox, unsigned int viid, in t4_set_addr_hash()
6697 int t4_enable_vi_params(struct adapter *adap, unsigned int mbox, in t4_enable_vi_params()
6723 int t4_enable_vi(struct adapter *adap, unsigned int mbox, unsigned int viid, in t4_enable_vi()
6738 int t4_identify_port(struct adapter *adap, unsigned int mbox, unsigned int viid, in t4_identify_port()
6765 int t4_iq_free(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_iq_free()
6793 int t4_eth_eq_free(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_eth_eq_free()
6818 int t4_ctrl_eq_free(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_ctrl_eq_free()
6843 int t4_ofld_eq_free(struct adapter *adap, unsigned int mbox, unsigned int pf, in t4_ofld_eq_free()
6865 int t4_handle_fw_rpl(struct adapter *adap, const __be64 *rpl) in t4_handle_fw_rpl()
6909 static void get_pci_mode(struct adapter *adapter, struct pci_params *p) in get_pci_mode() argument
6913 if (pci_is_pcie(adapter->pdev)) { in get_pci_mode()
6914 pcie_capability_read_word(adapter->pdev, PCI_EXP_LNKSTA, &val); in get_pci_mode()
6964 static int get_flash_params(struct adapter *adap) in get_flash_params()
7010 static void set_pcie_completion_timeout(struct adapter *adapter, u8 range) in set_pcie_completion_timeout() argument
7015 pcie_cap = pci_find_capability(adapter->pdev, PCI_CAP_ID_EXP); in set_pcie_completion_timeout()
7017 pci_read_config_word(adapter->pdev, in set_pcie_completion_timeout()
7021 pci_write_config_word(adapter->pdev, in set_pcie_completion_timeout()
7035 int t4_prep_adapter(struct adapter *adapter) in t4_prep_adapter() argument
7041 get_pci_mode(adapter, &adapter->params.pci); in t4_prep_adapter()
7042 pl_rev = REV_G(t4_read_reg(adapter, PL_REV_A)); in t4_prep_adapter()
7044 ret = get_flash_params(adapter); in t4_prep_adapter()
7046 dev_err(adapter->pdev_dev, "error %d identifying flash\n", ret); in t4_prep_adapter()
7052 pci_read_config_word(adapter->pdev, PCI_DEVICE_ID, &device_id); in t4_prep_adapter()
7054 adapter->params.chip = 0; in t4_prep_adapter()
7057 adapter->params.chip |= CHELSIO_CHIP_CODE(CHELSIO_T4, pl_rev); in t4_prep_adapter()
7058 adapter->params.arch.sge_fl_db = DBPRIO_F; in t4_prep_adapter()
7059 adapter->params.arch.mps_tcam_size = in t4_prep_adapter()
7061 adapter->params.arch.mps_rplc_size = 128; in t4_prep_adapter()
7062 adapter->params.arch.nchan = NCHAN; in t4_prep_adapter()
7063 adapter->params.arch.vfcount = 128; in t4_prep_adapter()
7066 adapter->params.chip |= CHELSIO_CHIP_CODE(CHELSIO_T5, pl_rev); in t4_prep_adapter()
7067 adapter->params.arch.sge_fl_db = DBPRIO_F | DBTYPE_F; in t4_prep_adapter()
7068 adapter->params.arch.mps_tcam_size = in t4_prep_adapter()
7070 adapter->params.arch.mps_rplc_size = 128; in t4_prep_adapter()
7071 adapter->params.arch.nchan = NCHAN; in t4_prep_adapter()
7072 adapter->params.arch.vfcount = 128; in t4_prep_adapter()
7075 adapter->params.chip |= CHELSIO_CHIP_CODE(CHELSIO_T6, pl_rev); in t4_prep_adapter()
7076 adapter->params.arch.sge_fl_db = 0; in t4_prep_adapter()
7077 adapter->params.arch.mps_tcam_size = in t4_prep_adapter()
7079 adapter->params.arch.mps_rplc_size = 256; in t4_prep_adapter()
7080 adapter->params.arch.nchan = 2; in t4_prep_adapter()
7081 adapter->params.arch.vfcount = 256; in t4_prep_adapter()
7084 dev_err(adapter->pdev_dev, "Device %d is not supported\n", in t4_prep_adapter()
7089 adapter->params.cim_la_size = CIMLA_SIZE; in t4_prep_adapter()
7090 init_cong_ctrl(adapter->params.a_wnd, adapter->params.b_wnd); in t4_prep_adapter()
7095 adapter->params.nports = 1; in t4_prep_adapter()
7096 adapter->params.portvec = 1; in t4_prep_adapter()
7097 adapter->params.vpd.cclk = 50000; in t4_prep_adapter()
7100 set_pcie_completion_timeout(adapter, 0xd); in t4_prep_adapter()
7130 int t4_bar2_sge_qregs(struct adapter *adapter, in t4_bar2_sge_qregs() argument
7142 if (!user && is_t4(adapter->params.chip)) in t4_bar2_sge_qregs()
7147 page_shift = adapter->params.sge.hps + 10; in t4_bar2_sge_qregs()
7153 ? adapter->params.sge.eq_qpp in t4_bar2_sge_qregs()
7154 : adapter->params.sge.iq_qpp); in t4_bar2_sge_qregs()
7201 int t4_init_devlog_params(struct adapter *adap) in t4_init_devlog_params()
7254 int t4_init_sge_params(struct adapter *adapter) in t4_init_sge_params() argument
7256 struct sge_params *sge_params = &adapter->params.sge; in t4_init_sge_params()
7262 hps = t4_read_reg(adapter, SGE_HOST_PAGE_SIZE_A); in t4_init_sge_params()
7264 (HOSTPAGESIZEPF1_S - HOSTPAGESIZEPF0_S) * adapter->pf); in t4_init_sge_params()
7270 (QUEUESPERPAGEPF1_S - QUEUESPERPAGEPF0_S) * adapter->pf); in t4_init_sge_params()
7271 qpp = t4_read_reg(adapter, SGE_EGRESS_QUEUES_PER_PAGE_PF_A); in t4_init_sge_params()
7273 qpp = t4_read_reg(adapter, SGE_INGRESS_QUEUES_PER_PAGE_PF_A); in t4_init_sge_params()
7285 int t4_init_tp_params(struct adapter *adap) in t4_init_tp_params()
7343 int t4_filter_field_shift(const struct adapter *adap, int filter_sel) in t4_filter_field_shift()
7389 int t4_init_rss_mode(struct adapter *adap, int mbox) in t4_init_rss_mode()
7412 int t4_port_init(struct adapter *adap, int mbox, int pf, int vf) in t4_port_init()
7482 void t4_read_cimq_cfg(struct adapter *adap, u16 *base, u16 *size, u16 *thres) in t4_read_cimq_cfg()
7518 int t4_read_cim_ibq(struct adapter *adap, unsigned int qid, u32 *data, size_t n) in t4_read_cim_ibq()
7560 int t4_read_cim_obq(struct adapter *adap, unsigned int qid, u32 *data, size_t n) in t4_read_cim_obq()
7601 int t4_cim_read(struct adapter *adap, unsigned int addr, unsigned int n, in t4_cim_read()
7628 int t4_cim_write(struct adapter *adap, unsigned int addr, unsigned int n, in t4_cim_write()
7645 static int t4_cim_write1(struct adapter *adap, unsigned int addr, in t4_cim_write1()
7661 int t4_cim_read_la(struct adapter *adap, u32 *la_buf, unsigned int *wrptr) in t4_cim_read_la()
7721 void t4_tp_read_la(struct adapter *adap, u64 *la_buf, unsigned int *wrptr) in t4_tp_read_la()
7775 void t4_idma_monitor_init(struct adapter *adapter, in t4_idma_monitor_init() argument
7790 idma->idma_1s_thresh = core_ticks_per_usec(adapter) * 1000000; /* 1s */ in t4_idma_monitor_init()
7802 void t4_idma_monitor(struct adapter *adapter, in t4_idma_monitor() argument
7815 t4_write_reg(adapter, SGE_DEBUG_INDEX_A, 13); in t4_idma_monitor()
7816 idma_same_state_cnt[0] = t4_read_reg(adapter, SGE_DEBUG_DATA_HIGH_A); in t4_idma_monitor()
7817 idma_same_state_cnt[1] = t4_read_reg(adapter, SGE_DEBUG_DATA_LOW_A); in t4_idma_monitor()
7830 dev_warn(adapter->pdev_dev, "SGE idma%d, queue %u, " in t4_idma_monitor()
7868 t4_write_reg(adapter, SGE_DEBUG_INDEX_A, 0); in t4_idma_monitor()
7869 debug0 = t4_read_reg(adapter, SGE_DEBUG_DATA_LOW_A); in t4_idma_monitor()
7872 t4_write_reg(adapter, SGE_DEBUG_INDEX_A, 11); in t4_idma_monitor()
7873 debug11 = t4_read_reg(adapter, SGE_DEBUG_DATA_LOW_A); in t4_idma_monitor()
7876 dev_warn(adapter->pdev_dev, "SGE idma%u, queue %u, potentially stuck in " in t4_idma_monitor()
7881 t4_sge_decode_idma_state(adapter, idma->idma_state[i]); in t4_idma_monitor()