Esempio n. 1
0
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;
}
Esempio n. 2
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;
}