Lines Matching refs:cdev
35 void qed_init_dp(struct qed_dev *cdev, in qed_init_dp() argument
40 cdev->dp_level = dp_level; in qed_init_dp()
41 cdev->dp_module = dp_module; in qed_init_dp()
43 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_init_dp()
50 void qed_init_struct(struct qed_dev *cdev) in qed_init_struct() argument
55 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_init_struct()
57 p_hwfn->cdev = cdev; in qed_init_struct()
65 cdev->hwfns[0].b_active = true; in qed_init_struct()
68 cdev->cache_shift = 7; in qed_init_struct()
83 void qed_resc_free(struct qed_dev *cdev) in qed_resc_free() argument
87 kfree(cdev->fw_data); in qed_resc_free()
88 cdev->fw_data = NULL; in qed_resc_free()
90 kfree(cdev->reset_stats); in qed_resc_free()
92 for_each_hwfn(cdev, i) { in qed_resc_free()
93 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_resc_free()
101 for_each_hwfn(cdev, i) { in qed_resc_free()
102 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_resc_free()
174 num_ports = p_hwfn->cdev->num_ports_in_engines; in qed_init_qm_info()
204 int qed_resc_alloc(struct qed_dev *cdev) in qed_resc_alloc() argument
210 cdev->fw_data = kzalloc(sizeof(*cdev->fw_data), GFP_KERNEL); in qed_resc_alloc()
211 if (!cdev->fw_data) in qed_resc_alloc()
215 for_each_hwfn(cdev, i) { in qed_resc_alloc()
216 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_resc_alloc()
239 for_each_hwfn(cdev, i) { in qed_resc_alloc()
240 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_resc_alloc()
308 cdev->reset_stats = kzalloc(sizeof(*cdev->reset_stats), GFP_KERNEL); in qed_resc_alloc()
309 if (!cdev->reset_stats) { in qed_resc_alloc()
310 DP_NOTICE(cdev, "Failed to allocate reset statistics\n"); in qed_resc_alloc()
318 qed_resc_free(cdev); in qed_resc_alloc()
322 void qed_resc_setup(struct qed_dev *cdev) in qed_resc_setup() argument
326 for_each_hwfn(cdev, i) { in qed_resc_setup()
327 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_resc_setup()
401 switch (p_hwfn->cdev->num_ports_in_engines) { in qed_calc_hw_mode()
413 p_hwfn->cdev->num_ports_in_engines); in qed_calc_hw_mode()
417 switch (p_hwfn->cdev->mf_mode) { in qed_calc_hw_mode()
438 static void qed_init_cau_rt_data(struct qed_dev *cdev) in qed_init_cau_rt_data() argument
443 for_each_hwfn(cdev, i) { in qed_init_cau_rt_data()
444 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_init_cau_rt_data()
451 for (sb_id = 0; sb_id < QED_MAPPING_MEMORY_SIZE(cdev); in qed_init_cau_rt_data()
472 struct qed_dev *cdev = p_hwfn->cdev; in qed_hw_init_common() local
475 qed_init_cau_rt_data(cdev); in qed_hw_init_common()
488 params.max_ports_per_engine = p_hwfn->cdev->num_ports_in_engines; in qed_hw_init_common()
606 rc = qed_sp_pf_start(p_hwfn, p_hwfn->cdev->mf_mode); in qed_hw_init_pf()
652 int qed_hw_init(struct qed_dev *cdev, in qed_hw_init() argument
663 rc = qed_init_fw_data(cdev, bin_fw_data); in qed_hw_init()
667 for_each_hwfn(cdev, i) { in qed_hw_init()
668 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_hw_init()
762 int qed_hw_stop(struct qed_dev *cdev) in qed_hw_stop() argument
767 for_each_hwfn(cdev, j) { in qed_hw_stop()
768 struct qed_hwfn *p_hwfn = &cdev->hwfns[j]; in qed_hw_stop()
824 t_rc = qed_change_pci_hwfn(&cdev->hwfns[0], in qed_hw_stop()
825 cdev->hwfns[0].p_main_ptt, in qed_hw_stop()
833 void qed_hw_stop_fastpath(struct qed_dev *cdev) in qed_hw_stop_fastpath() argument
837 for_each_hwfn(cdev, j) { in qed_hw_stop_fastpath()
838 struct qed_hwfn *p_hwfn = &cdev->hwfns[j]; in qed_hw_stop_fastpath()
902 int qed_hw_reset(struct qed_dev *cdev) in qed_hw_reset() argument
908 for_each_hwfn(cdev, i) { in qed_hw_reset()
909 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_hw_reset()
1022 : p_hwfn->cdev->num_ports_in_engines; in qed_hw_get_resc()
1223 p_hwfn->cdev->mf_mode = MF_OVLAN; in qed_hw_get_nvm_info()
1226 p_hwfn->cdev->mf_mode = MF_NPAR; in qed_hw_get_nvm_info()
1229 p_hwfn->cdev->mf_mode = SF; in qed_hw_get_nvm_info()
1233 p_hwfn->cdev->mf_mode); in qed_hw_get_nvm_info()
1251 p_hwfn->cdev->num_ports_in_engines = 1; in qed_get_hw_info()
1253 p_hwfn->cdev->num_ports_in_engines = 2; in qed_get_hw_info()
1256 p_hwfn->cdev->num_ports_in_engines); in qed_get_hw_info()
1259 p_hwfn->cdev->num_ports_in_engines = 1; in qed_get_hw_info()
1294 static void qed_get_dev_info(struct qed_dev *cdev) in qed_get_dev_info() argument
1298 cdev->chip_num = (u16)qed_rd(cdev->hwfns, cdev->hwfns[0].p_main_ptt, in qed_get_dev_info()
1300 cdev->chip_rev = (u16)qed_rd(cdev->hwfns, cdev->hwfns[0].p_main_ptt, in qed_get_dev_info()
1302 MASK_FIELD(CHIP_REV, cdev->chip_rev); in qed_get_dev_info()
1305 tmp = qed_rd(cdev->hwfns, cdev->hwfns[0].p_main_ptt, in qed_get_dev_info()
1308 if (tmp & (1 << cdev->hwfns[0].rel_pf_id)) { in qed_get_dev_info()
1309 DP_NOTICE(cdev->hwfns, "device in CMT mode\n"); in qed_get_dev_info()
1310 cdev->num_hwfns = 2; in qed_get_dev_info()
1312 cdev->num_hwfns = 1; in qed_get_dev_info()
1315 cdev->chip_bond_id = qed_rd(cdev->hwfns, cdev->hwfns[0].p_main_ptt, in qed_get_dev_info()
1317 MASK_FIELD(CHIP_BOND_ID, cdev->chip_bond_id); in qed_get_dev_info()
1318 cdev->chip_metal = (u16)qed_rd(cdev->hwfns, cdev->hwfns[0].p_main_ptt, in qed_get_dev_info()
1320 MASK_FIELD(CHIP_METAL, cdev->chip_metal); in qed_get_dev_info()
1322 DP_INFO(cdev->hwfns, in qed_get_dev_info()
1324 cdev->chip_num, cdev->chip_rev, in qed_get_dev_info()
1325 cdev->chip_bond_id, cdev->chip_metal); in qed_get_dev_info()
1356 qed_get_dev_info(p_hwfn->cdev); in qed_hw_prepare_single()
1399 int qed_hw_prepare(struct qed_dev *cdev, in qed_hw_prepare() argument
1402 struct qed_hwfn *p_hwfn = QED_LEADING_HWFN(cdev); in qed_hw_prepare()
1406 qed_init_iro_array(cdev); in qed_hw_prepare()
1410 cdev->regview, in qed_hw_prepare()
1411 cdev->doorbells, personality); in qed_hw_prepare()
1418 if (cdev->num_hwfns > 1) { in qed_hw_prepare()
1423 addr = cdev->regview + qed_hw_bar_size(p_hwfn, 0) / 2; in qed_hw_prepare()
1427 addr = cdev->doorbells + qed_hw_bar_size(p_hwfn, 1) / 2; in qed_hw_prepare()
1431 rc = qed_hw_prepare_single(&cdev->hwfns[1], p_regview, in qed_hw_prepare()
1447 void qed_hw_remove(struct qed_dev *cdev) in qed_hw_remove() argument
1451 for_each_hwfn(cdev, i) { in qed_hw_remove()
1452 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_hw_remove()
1460 int qed_chain_alloc(struct qed_dev *cdev, in qed_chain_alloc() argument
1480 p_virt = dma_alloc_coherent(&cdev->pdev->dev, in qed_chain_alloc()
1483 DP_NOTICE(cdev, "Failed to allocate chain mem\n"); in qed_chain_alloc()
1489 p_pbl_virt = dma_alloc_coherent(&cdev->pdev->dev, in qed_chain_alloc()
1493 DP_NOTICE(cdev, "Failed to allocate chain pbl mem\n"); in qed_chain_alloc()
1508 dma_free_coherent(&cdev->pdev->dev, in qed_chain_alloc()
1511 dma_free_coherent(&cdev->pdev->dev, in qed_chain_alloc()
1518 void qed_chain_free(struct qed_dev *cdev, in qed_chain_free() argument
1528 dma_free_coherent(&cdev->pdev->dev, size, in qed_chain_free()
1534 dma_free_coherent(&cdev->pdev->dev, size, in qed_chain_free()
1539 static void __qed_get_vport_stats(struct qed_dev *cdev, in __qed_get_vport_stats() argument
1546 for_each_hwfn(cdev, i) { in __qed_get_vport_stats()
1547 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in __qed_get_vport_stats()
1689 void qed_get_vport_stats(struct qed_dev *cdev, in qed_get_vport_stats() argument
1694 if (!cdev) { in qed_get_vport_stats()
1699 __qed_get_vport_stats(cdev, stats); in qed_get_vport_stats()
1701 if (!cdev->reset_stats) in qed_get_vport_stats()
1706 ((u64 *)stats)[i] -= ((u64 *)cdev->reset_stats)[i]; in qed_get_vport_stats()
1710 void qed_reset_vport_stats(struct qed_dev *cdev) in qed_reset_vport_stats() argument
1714 for_each_hwfn(cdev, i) { in qed_reset_vport_stats()
1715 struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; in qed_reset_vport_stats()
1750 if (!cdev->reset_stats) in qed_reset_vport_stats()
1751 DP_INFO(cdev, "Reset stats not allocated\n"); in qed_reset_vport_stats()
1753 __qed_get_vport_stats(cdev, cdev->reset_stats); in qed_reset_vport_stats()