static int qlcnic_sriov_vf_init_driver(struct qlcnic_adapter *adapter) { struct qlcnic_hardware_context *ahw = adapter->ahw; struct qlcnic_info nic_info; int err; err = qlcnic_sriov_get_vf_vport_info(adapter, &nic_info, 0); if (err) return err; ahw->max_mc_count = nic_info.max_rx_mcast_mac_filters; err = qlcnic_get_nic_info(adapter, &nic_info, ahw->pci_func); if (err) return -EIO; if (qlcnic_83xx_get_port_info(adapter)) return -EIO; qlcnic_sriov_vf_cfg_buff_desc(adapter); adapter->flags |= QLCNIC_ADAPTER_INITIALIZED; dev_info(&adapter->pdev->dev, "HAL Version: %d\n", adapter->ahw->fw_hal_version); ahw->physical_port = (u8) nic_info.phys_port; ahw->switch_mode = nic_info.switch_mode; ahw->max_mtu = nic_info.max_mtu; ahw->op_mode = nic_info.op_mode; ahw->capabilities = nic_info.capabilities; return 0; }
static int qlcnic_83xx_get_eswitch_port_info(struct qlcnic_adapter *adapter, int func, int *port_id) { struct qlcnic_info nic_info; int err = 0; memset(&nic_info, 0, sizeof(struct qlcnic_info)); err = qlcnic_get_nic_info(adapter, &nic_info, func); if (err) return err; if (nic_info.capabilities & QLC_83XX_ESWITCH_CAPABILITY) *port_id = nic_info.phys_port; else err = -EIO; return err; }