53 rsp = qlcnic_poll_rsp(adapter);
56 dev_err(&pdev->
dev,
"CDRP response timeout.\n");
60 switch (cmd->
rsp.cmd) {
62 dev_err(&pdev->
dev,
"CDRP invalid args: 0x%x.\n",
68 "CDRP command not supported: 0x%x.\n",
73 "CDRP requested action not permitted: 0x%x.\n",
78 "CDRP invalid or unknown cmd received: 0x%x.\n",
82 dev_err(&pdev->
dev,
"CDRP command timeout: 0x%x.\n",
86 dev_err(&pdev->
dev,
"CDRP command failed: 0x%x.\n",
111 sum += *temp_buffer++;
113 sum = (sum & 0xFFFFFFFF) + (sum >> 32);
129 memset(&cmd, 0,
sizeof(cmd));
135 "Can't get template size %d\n", cmd.
rsp.cmd);
139 temp_size = cmd.
rsp.arg2;
140 version = cmd.
rsp.arg3;
148 "Can't get memory for FW dump template\n");
153 cmd.
req.arg1 =
LSD(tmp_addr_t);
154 cmd.
req.arg2 =
MSD(tmp_addr_t);
155 cmd.
req.arg3 = temp_size;
161 "Failed to get mini dump template header %d\n", err);
166 csum = qlcnic_temp_checksum((
uint32_t *) tmp_addr, temp_size);
169 "Template header checksum validation failed\n");
180 for (i = 0; i < temp_size/
sizeof(
u32); i++)
183 tmpl_hdr = ahw->
fw_dump.tmpl_hdr;
197 memset(&cmd, 0,
sizeof(cmd));
205 dev_err(&adapter->
pdev->dev,
"Failed to set mtu\n");
227 dma_addr_t hostrq_phys_addr, cardrsp_phys_addr;
230 u8 i, nrds_rings, nsds_rings;
291 for (i = 0; i < nrds_rings; i++) {
305 for (i = 0; i < nsds_rings; i++) {
316 phys_addr = hostrq_phys_addr;
317 memset(&cmd, 0,
sizeof(cmd));
318 cmd.
req.arg1 = (
u32) (phys_addr >> 32);
319 cmd.
req.arg2 = (
u32) (phys_addr & 0xffffffff);
326 "Failed to create rx ctx in firmware%d\n", err);
372 memset(&cmd, 0,
sizeof(cmd));
380 "Failed to destroy rx ctx in firmware\n");
391 void *rq_addr, *rsp_addr;
419 memset(rq_addr, 0, rq_size);
422 memset(rsp_addr, 0, rsp_size);
443 phys_addr = rq_phys_addr;
444 memset(&cmd, 0,
sizeof(cmd));
445 cmd.
req.arg1 = (
u32)(phys_addr >> 32);
446 cmd.
req.arg2 = ((
u32)phys_addr & 0xffffffff);
460 "Failed to create tx ctx in firmware%d\n", err);
478 memset(&cmd, 0,
sizeof(cmd));
486 "Failed to destroy tx ctx in firmware\n");
494 memset(&cmd, 0,
sizeof(cmd));
520 dev_err(&pdev->
dev,
"failed to allocate tx consumer\n");
529 dev_err(&pdev->
dev,
"failed to allocate tx desc ring\n");
543 "failed to allocate rds ring [%d]\n", ring);
559 "failed to allocate sds ring [%d]\n", ring);
583 err = qlcnic_fw_cmd_create_rx_ctx(adapter);
587 err = qlcnic_fw_cmd_create_tx_ctx(adapter);
589 qlcnic_fw_cmd_destroy_rx_ctx(adapter);
600 qlcnic_fw_cmd_destroy_rx_ctx(adapter);
601 qlcnic_fw_cmd_destroy_tx_ctx(adapter);
666 memset(&cmd, 0,
sizeof(cmd));
669 cmd.
rsp.arg1 = cmd.
rsp.arg2 = 1;
677 "Failed to get mac address%d\n", err);
699 memset(nic_info_addr, 0, nic_size);
701 nic_info = nic_info_addr;
702 memset(&cmd, 0,
sizeof(cmd));
704 cmd.
req.arg1 =
MSD(nic_dma_t);
705 cmd.
req.arg2 =
LSD(nic_dma_t);
706 cmd.
req.arg3 = (func_id << 16 | nic_size);
723 "phy port: %d switch_mode: %d,\n"
724 "\tmax_tx_q: %d max_rx_q: %d min_tx_bw: 0x%x,\n"
725 "\tmax_tx_bw: 0x%x max_mtu:0x%x, capabilities: 0x%x\n",
732 "Failed to get nic info%d\n", err);
759 memset(nic_info_addr, 0, nic_size);
760 nic_info = nic_info_addr;
773 memset(&cmd, 0,
sizeof(cmd));
775 cmd.
req.arg1 =
MSD(nic_dma_t);
776 cmd.
req.arg2 =
LSD(nic_dma_t);
783 "Failed to set nic info%d\n", err);
808 memset(pci_info_addr, 0, pci_size);
810 npar = pci_info_addr;
811 memset(&cmd, 0,
sizeof(cmd));
813 cmd.
req.arg1 =
MSD(pci_info_dma_t);
814 cmd.
req.arg2 =
LSD(pci_info_dma_t);
815 cmd.
req.arg3 = pci_size;
834 "Failed to get PCI Info%d\n", err);
855 arg1 =
id | (enable_mirroring ?
BIT_4 : 0);
856 arg1 |= pci_func << 8;
858 memset(&cmd, 0,
sizeof(cmd));
866 "Failed to configure port mirroring%d on eswitch:%d\n",
870 "Configured eSwitch %d for port mirroring:%d\n",
888 if (esw_stats ==
NULL)
892 func != adapter->
ahw->pci_func) {
894 "Not privilege to query stats for func=%d", func);
901 dev_err(&adapter->
pdev->dev,
"Unable to allocate memory\n");
904 memset(stats_addr, 0, stats_size);
907 arg1 |= rx_tx << 15 | stats_size << 16;
909 memset(&cmd, 0,
sizeof(cmd));
912 cmd.
req.arg2 =
MSD(stats_dma_t);
913 cmd.
req.arg3 =
LSD(stats_dma_t);
953 "%s: Unable to allocate memory.\n", __func__);
956 memset(stats_addr, 0, stats_size);
957 memset(&cmd, 0,
sizeof(cmd));
959 cmd.
req.arg1 = stats_size << 16;
960 cmd.
req.arg2 =
MSD(stats_dma_t);
961 cmd.
req.arg3 =
LSD(stats_dma_t);
1001 if (esw_stats ==
NULL)
1019 if (adapter->
npars[i].phy_port != eswitch)
1071 arg1 |=
BIT_14 | rx_tx << 15;
1073 memset(&cmd, 0,
sizeof(cmd));
1080 dev_err(&adapter->
pdev->dev,
"Invalid argument func_esw=%d port=%d"
1081 "rx_ctx=%d\n", func_esw, port, rx_tx);
1092 pci_func = (*arg1 >> 8);
1096 cmd.
rsp.arg1 = cmd.
rsp.arg2 = 1;
1098 *arg1 = cmd.
rsp.arg1;
1099 *arg2 = cmd.
rsp.arg2;
1104 "eSwitch port config for pci func %d\n", pci_func);
1107 "Failed to get eswitch port config for pci func %d\n",
1131 arg1 |= (pci_func << 8);
1133 if (__qlcnic_get_eswitch_port_config(adapter, &arg1, &arg2))
1135 arg1 &= ~(0x0ff << 8);
1136 arg1 |= (pci_func << 8);
1161 arg1 |= (esw_cfg->
vlan_id << 16);
1165 arg1 &= ~(0x0ffff << 16);
1171 memset(&cmd, 0,
sizeof(cmd));
1180 "Failed to configure eswitch pci func %d\n", pci_func);
1183 "Configured eSwitch for pci func %d\n", pci_func);
1201 if (__qlcnic_get_eswitch_port_config(adapter, &arg1, &arg2))