Lines Matching refs:hwfn

522 	struct qed_hwfn *hwfn = &cdev->hwfns[index % cdev->num_hwfns];  in qed_simd_handler_config()  local
525 hwfn->simd_proto_handler[relative_idx].func = handler; in qed_simd_handler_config()
526 hwfn->simd_proto_handler[relative_idx].token = token; in qed_simd_handler_config()
531 struct qed_hwfn *hwfn = &cdev->hwfns[index % cdev->num_hwfns]; in qed_simd_handler_clean() local
534 memset(&hwfn->simd_proto_handler[relative_idx], 0, in qed_simd_handler_clean()
547 struct qed_hwfn *hwfn; in qed_single_int() local
558 hwfn = &cdev->hwfns[i]; in qed_single_int()
562 tasklet_schedule(hwfn->sp_dpc); in qed_single_int()
571 &hwfn->simd_proto_handler[j]; in qed_single_int()
576 DP_NOTICE(hwfn, in qed_single_int()
586 DP_VERBOSE(hwfn, NETIF_MSG_INTR, in qed_single_int()
594 int qed_slowpath_irq_req(struct qed_hwfn *hwfn) in qed_slowpath_irq_req() argument
596 struct qed_dev *cdev = hwfn->cdev; in qed_slowpath_irq_req()
603 id = hwfn->my_id; in qed_slowpath_irq_req()
604 snprintf(hwfn->name, NAME_SIZE, "sp-%d-%02x:%02x.%02x", in qed_slowpath_irq_req()
606 PCI_SLOT(cdev->pdev->devfn), hwfn->abs_pf_id); in qed_slowpath_irq_req()
608 qed_msix_sp_int, 0, hwfn->name, hwfn->sp_dpc); in qed_slowpath_irq_req()
626 DP_VERBOSE(hwfn, (NETIF_MSG_INTR | QED_MSG_SP), in qed_slowpath_irq_req()
986 struct qed_hwfn *hwfn = container_of(work, struct qed_hwfn, in qed_slowpath_task() local
988 struct qed_ptt *ptt = qed_ptt_acquire(hwfn); in qed_slowpath_task()
991 queue_delayed_work(hwfn->slowpath_wq, &hwfn->slowpath_task, 0); in qed_slowpath_task()
996 &hwfn->slowpath_task_flags)) in qed_slowpath_task()
997 qed_mfw_process_tlv_req(hwfn, ptt); in qed_slowpath_task()
999 qed_ptt_release(hwfn, ptt); in qed_slowpath_task()
1004 struct qed_hwfn *hwfn; in qed_slowpath_wq_start() local
1012 hwfn = &cdev->hwfns[i]; in qed_slowpath_wq_start()
1016 PCI_SLOT(cdev->pdev->devfn), hwfn->abs_pf_id); in qed_slowpath_wq_start()
1018 hwfn->slowpath_wq = alloc_workqueue(name, 0, 0); in qed_slowpath_wq_start()
1019 if (!hwfn->slowpath_wq) { in qed_slowpath_wq_start()
1020 DP_NOTICE(hwfn, "Cannot create slowpath workqueue\n"); in qed_slowpath_wq_start()
1024 INIT_DELAYED_WORK(&hwfn->slowpath_task, qed_slowpath_task); in qed_slowpath_wq_start()
1038 struct qed_hwfn *hwfn; in qed_slowpath_start() local
1142 hwfn = QED_LEADING_HWFN(cdev); in qed_slowpath_start()
1149 rc = qed_mcp_send_drv_version(hwfn, hwfn->p_main_ptt, in qed_slowpath_start()
1304 struct qed_hwfn *hwfn; in qed_set_link() local
1313 hwfn = &cdev->hwfns[0]; in qed_set_link()
1320 qed_schedule_iov(hwfn, QED_IOV_WQ_VF_FORCE_LINK_QUERY_FLAG); in qed_set_link()
1324 ptt = qed_ptt_acquire(hwfn); in qed_set_link()
1328 link_params = qed_mcp_get_link_params(hwfn); in qed_set_link()
1393 rc = qed_mcp_set_link(hwfn, ptt, params->link_up); in qed_set_link()
1395 qed_ptt_release(hwfn, ptt); in qed_set_link()
1429 static int qed_get_link_data(struct qed_hwfn *hwfn, in qed_get_link_data() argument
1436 if (!IS_PF(hwfn->cdev)) { in qed_get_link_data()
1437 qed_vf_get_link_params(hwfn, params); in qed_get_link_data()
1438 qed_vf_get_link_state(hwfn, link); in qed_get_link_data()
1439 qed_vf_get_link_caps(hwfn, link_caps); in qed_get_link_data()
1444 p = qed_mcp_get_link_params(hwfn); in qed_get_link_data()
1449 p = qed_mcp_get_link_state(hwfn); in qed_get_link_data()
1454 p = qed_mcp_get_link_capabilities(hwfn); in qed_get_link_data()
1462 static void qed_fill_link(struct qed_hwfn *hwfn, in qed_fill_link() argument
1473 if (qed_get_link_data(hwfn, &params, &link, &link_caps)) { in qed_fill_link()
1474 dev_warn(&hwfn->cdev->pdev->dev, "no link data available\n"); in qed_fill_link()
1543 qed_mcp_get_media_type(hwfn->cdev, &media_type); in qed_fill_link()
1607 void qed_link_update(struct qed_hwfn *hwfn) in qed_link_update() argument
1609 void *cookie = hwfn->cdev->ops_cookie; in qed_link_update()
1610 struct qed_common_cb_ops *op = hwfn->cdev->protocol_ops.common; in qed_link_update()
1613 qed_fill_link(hwfn, &if_link); in qed_link_update()
1614 qed_inform_vf_link_state(hwfn); in qed_link_update()
1616 if (IS_LEAD_HWFN(hwfn) && cookie) in qed_link_update()
1622 struct qed_hwfn *hwfn; in qed_drain() local
1630 hwfn = &cdev->hwfns[i]; in qed_drain()
1631 ptt = qed_ptt_acquire(hwfn); in qed_drain()
1633 DP_NOTICE(hwfn, "Failed to drain NIG; No PTT\n"); in qed_drain()
1636 rc = qed_mcp_drain(hwfn, ptt); in qed_drain()
1639 qed_ptt_release(hwfn, ptt); in qed_drain()
1984 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_nvm_get_image() local
1986 return qed_mcp_get_nvm_image(hwfn, type, buf, len); in qed_nvm_get_image()
1997 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_set_led() local
2001 ptt = qed_ptt_acquire(hwfn); in qed_set_led()
2005 status = qed_mcp_set_led(hwfn, ptt, mode); in qed_set_led()
2007 qed_ptt_release(hwfn, ptt); in qed_set_led()
2014 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_update_wol() local
2021 ptt = qed_ptt_acquire(hwfn); in qed_update_wol()
2025 rc = qed_mcp_ov_update_wol(hwfn, ptt, enabled ? QED_OV_WOL_ENABLED in qed_update_wol()
2029 rc = qed_mcp_ov_update_current_config(hwfn, ptt, QED_OV_CLIENT_DRV); in qed_update_wol()
2032 qed_ptt_release(hwfn, ptt); in qed_update_wol()
2038 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_update_drv_state() local
2045 ptt = qed_ptt_acquire(hwfn); in qed_update_drv_state()
2049 status = qed_mcp_ov_update_driver_state(hwfn, ptt, active ? in qed_update_drv_state()
2053 qed_ptt_release(hwfn, ptt); in qed_update_drv_state()
2060 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_update_mac() local
2067 ptt = qed_ptt_acquire(hwfn); in qed_update_mac()
2071 status = qed_mcp_ov_update_mac(hwfn, ptt, mac); in qed_update_mac()
2075 status = qed_mcp_ov_update_current_config(hwfn, ptt, QED_OV_CLIENT_DRV); in qed_update_mac()
2078 qed_ptt_release(hwfn, ptt); in qed_update_mac()
2084 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_update_mtu() local
2091 ptt = qed_ptt_acquire(hwfn); in qed_update_mtu()
2095 status = qed_mcp_ov_update_mtu(hwfn, ptt, mtu); in qed_update_mtu()
2099 status = qed_mcp_ov_update_current_config(hwfn, ptt, QED_OV_CLIENT_DRV); in qed_update_mtu()
2102 qed_ptt_release(hwfn, ptt); in qed_update_mtu()
2109 struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); in qed_read_module_eeprom() local
2116 ptt = qed_ptt_acquire(hwfn); in qed_read_module_eeprom()
2120 rc = qed_mcp_phy_sfp_read(hwfn, ptt, MFW_PORT(hwfn), dev_addr, in qed_read_module_eeprom()
2123 qed_ptt_release(hwfn, ptt); in qed_read_module_eeprom()
2203 int qed_mfw_tlv_req(struct qed_hwfn *hwfn) in qed_mfw_tlv_req() argument
2205 DP_VERBOSE(hwfn->cdev, NETIF_MSG_DRV, in qed_mfw_tlv_req()
2209 set_bit(QED_SLOWPATH_MFW_TLV_REQ, &hwfn->slowpath_task_flags); in qed_mfw_tlv_req()
2211 queue_delayed_work(hwfn->slowpath_wq, &hwfn->slowpath_task, 0); in qed_mfw_tlv_req()
2257 int qed_mfw_fill_tlv_data(struct qed_hwfn *hwfn, enum qed_mfw_tlv_type type, in qed_mfw_fill_tlv_data() argument
2260 struct qed_dev *cdev = hwfn->cdev; in qed_mfw_fill_tlv_data()
2265 DP_NOTICE(hwfn, "Can't collect TLV management info\n"); in qed_mfw_fill_tlv_data()
2271 qed_fill_generic_tlv_data(hwfn->cdev, &tlv_buf->generic); in qed_mfw_fill_tlv_data()