Lines Matching refs:adapter

385 static u32 qlcnic_dump_crb(struct qlcnic_adapter *adapter,  in qlcnic_dump_crb()  argument
395 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_crb()
403 static u32 qlcnic_dump_ctrl(struct qlcnic_adapter *adapter, in qlcnic_dump_ctrl() argument
406 void *hdr = adapter->ahw->fw_dump.tmpl_hdr; in qlcnic_dump_ctrl()
422 qlcnic_ind_wr(adapter, addr, ctr->val1); in qlcnic_dump_ctrl()
425 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_ctrl()
426 qlcnic_ind_wr(adapter, addr, data); in qlcnic_dump_ctrl()
429 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_ctrl()
430 qlcnic_ind_wr(adapter, addr, in qlcnic_dump_ctrl()
434 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_ctrl()
435 qlcnic_ind_wr(adapter, addr, in qlcnic_dump_ctrl()
440 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_ctrl()
447 dev_info(&adapter->pdev->dev, in qlcnic_dump_ctrl()
455 addr = qlcnic_get_saved_state(adapter, in qlcnic_dump_ctrl()
458 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_ctrl()
459 qlcnic_set_saved_state(adapter, hdr, in qlcnic_dump_ctrl()
465 data = qlcnic_get_saved_state(adapter, in qlcnic_dump_ctrl()
473 addr = qlcnic_get_saved_state(adapter, in qlcnic_dump_ctrl()
476 qlcnic_ind_wr(adapter, addr, data); in qlcnic_dump_ctrl()
479 data = qlcnic_get_saved_state(adapter, hdr, in qlcnic_dump_ctrl()
487 qlcnic_set_saved_state(adapter, hdr, in qlcnic_dump_ctrl()
491 dev_info(&adapter->pdev->dev, in qlcnic_dump_ctrl()
501 static u32 qlcnic_dump_mux(struct qlcnic_adapter *adapter, in qlcnic_dump_mux() argument
510 qlcnic_ind_wr(adapter, mux->addr, val); in qlcnic_dump_mux()
511 data = qlcnic_ind_rd(adapter, mux->read_addr); in qlcnic_dump_mux()
519 static u32 qlcnic_dump_que(struct qlcnic_adapter *adapter, in qlcnic_dump_que() argument
530 qlcnic_ind_wr(adapter, que->sel_addr, que_id); in qlcnic_dump_que()
533 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_que()
542 static u32 qlcnic_dump_ocm(struct qlcnic_adapter *adapter, in qlcnic_dump_ocm() argument
550 addr = adapter->ahw->pci_base0 + ocm->read_addr; in qlcnic_dump_ocm()
559 static u32 qlcnic_read_rom(struct qlcnic_adapter *adapter, in qlcnic_read_rom() argument
569 lck_val = QLC_SHARED_REG_RD32(adapter, QLCNIC_FLASH_LOCK); in qlcnic_read_rom()
575 QLC_SHARED_REG_WR32(adapter, QLCNIC_FLASH_LOCK_OWNER, in qlcnic_read_rom()
576 adapter->ahw->pci_func); in qlcnic_read_rom()
579 qlcnic_ind_wr(adapter, FLASH_ROM_WINDOW, addr); in qlcnic_read_rom()
581 val = qlcnic_ind_rd(adapter, addr); in qlcnic_read_rom()
585 QLC_SHARED_REG_RD32(adapter, QLCNIC_FLASH_UNLOCK); in qlcnic_read_rom()
589 static u32 qlcnic_dump_l1_cache(struct qlcnic_adapter *adapter, in qlcnic_dump_l1_cache() argument
599 qlcnic_ind_wr(adapter, l1->addr, val); in qlcnic_dump_l1_cache()
600 qlcnic_ind_wr(adapter, l1->ctrl_addr, LSW(l1->ctrl_val)); in qlcnic_dump_l1_cache()
604 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_l1_cache()
614 static u32 qlcnic_dump_l2_cache(struct qlcnic_adapter *adapter, in qlcnic_dump_l2_cache() argument
627 qlcnic_ind_wr(adapter, l2->addr, val); in qlcnic_dump_l2_cache()
629 qlcnic_ind_wr(adapter, l2->ctrl_addr, in qlcnic_dump_l2_cache()
634 data = qlcnic_ind_rd(adapter, l2->ctrl_addr); in qlcnic_dump_l2_cache()
642 dev_err(&adapter->pdev->dev, in qlcnic_dump_l2_cache()
651 data = qlcnic_ind_rd(adapter, addr); in qlcnic_dump_l2_cache()
661 static u32 qlcnic_read_memory_test_agent(struct qlcnic_adapter *adapter, in qlcnic_read_memory_test_agent() argument
672 dev_info(&adapter->pdev->dev, in qlcnic_read_memory_test_agent()
679 mutex_lock(&adapter->ahw->mem_lock); in qlcnic_read_memory_test_agent()
682 qlcnic_ind_wr(adapter, QLCNIC_MS_ADDR_LO, addr); in qlcnic_read_memory_test_agent()
683 qlcnic_ind_wr(adapter, QLCNIC_MS_ADDR_HI, 0); in qlcnic_read_memory_test_agent()
684 qlcnic_ind_wr(adapter, QLCNIC_MS_CTRL, QLCNIC_TA_START_ENABLE); in qlcnic_read_memory_test_agent()
687 test = qlcnic_ind_rd(adapter, QLCNIC_MS_CTRL); in qlcnic_read_memory_test_agent()
693 dev_err(&adapter->pdev->dev, in qlcnic_read_memory_test_agent()
700 data = qlcnic_ind_rd(adapter, qlcnic_ms_read_data[i]); in qlcnic_read_memory_test_agent()
708 mutex_unlock(&adapter->ahw->mem_lock); in qlcnic_read_memory_test_agent()
720 static int qlcnic_start_pex_dma(struct qlcnic_adapter *adapter, in qlcnic_start_pex_dma() argument
723 struct device *dev = &adapter->pdev->dev; in qlcnic_start_pex_dma()
728 tmpl_hdr = adapter->ahw->fw_dump.tmpl_hdr; in qlcnic_start_pex_dma()
729 dma_no = qlcnic_get_saved_state(adapter, tmpl_hdr, in qlcnic_start_pex_dma()
734 ret = qlcnic_ind_wr(adapter, temp_addr, mem->desc_card_addr); in qlcnic_start_pex_dma()
739 ret = qlcnic_ind_wr(adapter, temp_addr, 0); in qlcnic_start_pex_dma()
744 ret = qlcnic_ind_wr(adapter, temp_addr, mem->start_dma_cmd); in qlcnic_start_pex_dma()
751 dma_sts = qlcnic_ind_rd(adapter, temp_addr); in qlcnic_start_pex_dma()
767 static u32 qlcnic_read_memory_pexdma(struct qlcnic_adapter *adapter, in qlcnic_read_memory_pexdma() argument
771 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_read_memory_pexdma()
774 struct device *dev = &adapter->pdev->dev; in qlcnic_read_memory_pexdma()
782 temp = qlcnic_get_saved_state(adapter, tmpl_hdr, in qlcnic_read_memory_pexdma()
785 temp = qlcnic_ind_rd(adapter, in qlcnic_read_memory_pexdma()
811 temp |= (adapter->ahw->pci_func & 0xf) << 4; in qlcnic_read_memory_pexdma()
829 *ret = qlcnic_ms_mem_write128(adapter, mem->desc_card_addr, in qlcnic_read_memory_pexdma()
837 *ret = qlcnic_start_pex_dma(adapter, mem); in qlcnic_read_memory_pexdma()
854 static u32 qlcnic_read_memory(struct qlcnic_adapter *adapter, in qlcnic_read_memory() argument
857 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_read_memory()
858 struct device *dev = &adapter->pdev->dev; in qlcnic_read_memory()
864 data_size = qlcnic_read_memory_pexdma(adapter, mem, buffer, in qlcnic_read_memory()
874 data_size = qlcnic_read_memory_test_agent(adapter, mem, buffer, &ret); in qlcnic_read_memory()
885 static u32 qlcnic_dump_nop(struct qlcnic_adapter *adapter, in qlcnic_dump_nop() argument
906 static u32 qlcnic_read_pollrdmwr(struct qlcnic_adapter *adapter, in qlcnic_read_pollrdmwr() argument
915 qlcnic_ind_wr(adapter, poll->addr1, poll->val1); in qlcnic_read_pollrdmwr()
919 data = qlcnic_ind_rd(adapter, poll->addr1); in qlcnic_read_pollrdmwr()
926 dev_err(&adapter->pdev->dev, in qlcnic_read_pollrdmwr()
932 data = qlcnic_ind_rd(adapter, poll->addr2) & poll->mod_mask; in qlcnic_read_pollrdmwr()
933 qlcnic_ind_wr(adapter, poll->addr2, data); in qlcnic_read_pollrdmwr()
934 qlcnic_ind_wr(adapter, poll->addr1, poll->val2); in qlcnic_read_pollrdmwr()
938 temp = qlcnic_ind_rd(adapter, poll->addr1); in qlcnic_read_pollrdmwr()
951 static u32 qlcnic_read_pollrd(struct qlcnic_adapter *adapter, in qlcnic_read_pollrd() argument
962 qlcnic_ind_wr(adapter, pollrd->sel_addr, sel_val); in qlcnic_read_pollrd()
965 data = qlcnic_ind_rd(adapter, pollrd->sel_addr); in qlcnic_read_pollrd()
972 dev_err(&adapter->pdev->dev, in qlcnic_read_pollrd()
978 data = qlcnic_ind_rd(adapter, pollrd->read_addr); in qlcnic_read_pollrd()
986 static u32 qlcnic_read_mux2(struct qlcnic_adapter *adapter, in qlcnic_read_mux2() argument
998 qlcnic_ind_wr(adapter, mux2->sel_addr1, sel_val1); in qlcnic_read_mux2()
1000 qlcnic_ind_wr(adapter, mux2->sel_addr2, t_sel_val); in qlcnic_read_mux2()
1001 data = qlcnic_ind_rd(adapter, mux2->read_addr); in qlcnic_read_mux2()
1004 qlcnic_ind_wr(adapter, mux2->sel_addr1, sel_val2); in qlcnic_read_mux2()
1006 qlcnic_ind_wr(adapter, mux2->sel_addr2, t_sel_val); in qlcnic_read_mux2()
1007 data = qlcnic_ind_rd(adapter, mux2->read_addr); in qlcnic_read_mux2()
1017 static u32 qlcnic_83xx_dump_rom(struct qlcnic_adapter *adapter, in qlcnic_83xx_dump_rom() argument
1026 if (!qlcnic_83xx_lockless_flash_read32(adapter, fl_addr, in qlcnic_83xx_dump_rom()
1093 static int qlcnic_fw_flash_get_minidump_temp(struct qlcnic_adapter *adapter, in qlcnic_fw_flash_get_minidump_temp() argument
1098 if (qlcnic_82xx_check(adapter)) in qlcnic_fw_flash_get_minidump_temp()
1101 if (qlcnic_83xx_lock_flash(adapter)) in qlcnic_fw_flash_get_minidump_temp()
1104 ret = qlcnic_83xx_lockless_flash_read32(adapter, in qlcnic_fw_flash_get_minidump_temp()
1108 qlcnic_83xx_unlock_flash(adapter); in qlcnic_fw_flash_get_minidump_temp()
1114 qlcnic_fw_flash_get_minidump_temp_size(struct qlcnic_adapter *adapter, in qlcnic_fw_flash_get_minidump_temp_size() argument
1121 if (qlcnic_82xx_check(adapter)) in qlcnic_fw_flash_get_minidump_temp_size()
1124 if (qlcnic_83xx_lock_flash(adapter)) in qlcnic_fw_flash_get_minidump_temp_size()
1127 ret = qlcnic_83xx_lockless_flash_read32(adapter, in qlcnic_fw_flash_get_minidump_temp_size()
1131 qlcnic_83xx_unlock_flash(adapter); in qlcnic_fw_flash_get_minidump_temp_size()
1139 static int qlcnic_fw_get_minidump_temp_size(struct qlcnic_adapter *adapter, in qlcnic_fw_get_minidump_temp_size() argument
1146 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_TEMP_SIZE)) in qlcnic_fw_get_minidump_temp_size()
1149 err = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_fw_get_minidump_temp_size()
1151 if (qlcnic_fw_flash_get_minidump_temp_size(adapter, &cmd)) { in qlcnic_fw_get_minidump_temp_size()
1168 static int __qlcnic_fw_cmd_get_minidump_temp(struct qlcnic_adapter *adapter, in __qlcnic_fw_cmd_get_minidump_temp() argument
1177 tmp_addr = dma_alloc_coherent(&adapter->pdev->dev, temp_size, in __qlcnic_fw_cmd_get_minidump_temp()
1182 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_TEMP_HDR)) { in __qlcnic_fw_cmd_get_minidump_temp()
1190 err = qlcnic_issue_cmd(adapter, &cmd); in __qlcnic_fw_cmd_get_minidump_temp()
1201 dma_free_coherent(&adapter->pdev->dev, temp_size, tmp_addr, tmp_addr_t); in __qlcnic_fw_cmd_get_minidump_temp()
1206 int qlcnic_fw_cmd_get_minidump_temp(struct qlcnic_adapter *adapter) in qlcnic_fw_cmd_get_minidump_temp() argument
1216 ahw = adapter->ahw; in qlcnic_fw_cmd_get_minidump_temp()
1218 err = qlcnic_fw_get_minidump_temp_size(adapter, &version, &temp_size, in qlcnic_fw_cmd_get_minidump_temp()
1221 dev_err(&adapter->pdev->dev, in qlcnic_fw_cmd_get_minidump_temp()
1234 err = __qlcnic_fw_cmd_get_minidump_temp(adapter, tmp_buf, temp_size); in qlcnic_fw_cmd_get_minidump_temp()
1238 err = qlcnic_fw_flash_get_minidump_temp(adapter, (u8 *)tmp_buf, in qlcnic_fw_cmd_get_minidump_temp()
1242 dev_err(&adapter->pdev->dev, in qlcnic_fw_cmd_get_minidump_temp()
1254 dev_err(&adapter->pdev->dev, in qlcnic_fw_cmd_get_minidump_temp()
1261 qlcnic_cache_tmpl_hdr_values(adapter, fw_dump); in qlcnic_fw_cmd_get_minidump_temp()
1265 temp_buffer = dma_alloc_coherent(&adapter->pdev->dev, in qlcnic_fw_cmd_get_minidump_temp()
1276 dev_info(&adapter->pdev->dev, in qlcnic_fw_cmd_get_minidump_temp()
1280 qlcnic_enable_fw_dump_state(adapter); in qlcnic_fw_cmd_get_minidump_temp()
1285 int qlcnic_dump_fw(struct qlcnic_adapter *adapter) in qlcnic_dump_fw() argument
1287 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_dump_fw()
1292 struct device *dev = &adapter->pdev->dev; in qlcnic_dump_fw()
1301 ahw = adapter->ahw; in qlcnic_dump_fw()
1308 if (!qlcnic_check_fw_dump_state(adapter)) { in qlcnic_dump_fw()
1309 dev_info(&adapter->pdev->dev, "Dump not enabled\n"); in qlcnic_dump_fw()
1314 dev_info(&adapter->pdev->dev, in qlcnic_dump_fw()
1319 netif_info(adapter->ahw, drv, adapter->netdev, "Take FW dump\n"); in qlcnic_dump_fw()
1323 dump_size += qlcnic_get_cap_size(adapter, tmpl_hdr, k); in qlcnic_dump_fw()
1336 qlcnic_set_sys_info(adapter, tmpl_hdr, 0, QLCNIC_DRIVER_VERSION); in qlcnic_dump_fw()
1337 qlcnic_set_sys_info(adapter, tmpl_hdr, 1, adapter->fw_version); in qlcnic_dump_fw()
1339 if (qlcnic_82xx_check(adapter)) { in qlcnic_dump_fw()
1376 dump = fw_dump_ops[ops_index].handler(adapter, entry, buffer); in qlcnic_dump_fw()
1389 snprintf(mesg, sizeof(mesg), "FW_DUMP=%s", adapter->netdev->name); in qlcnic_dump_fw()
1390 netdev_info(adapter->netdev, in qlcnic_dump_fw()
1401 qlcnic_83xx_md_check_extended_dump_capability(struct qlcnic_adapter *adapter) in qlcnic_83xx_md_check_extended_dump_capability() argument
1408 return ((adapter->pdev->device == PCI_DEVICE_ID_QLOGIC_QLE8830) && in qlcnic_83xx_md_check_extended_dump_capability()
1409 (adapter->ahw->extra_capability[0] & in qlcnic_83xx_md_check_extended_dump_capability()
1413 void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter) in qlcnic_83xx_get_minidump_template() argument
1416 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_83xx_get_minidump_template()
1418 struct pci_dev *pdev = adapter->pdev; in qlcnic_83xx_get_minidump_template()
1421 prev_version = adapter->fw_version; in qlcnic_83xx_get_minidump_template()
1422 current_version = qlcnic_83xx_get_fw_version(adapter); in qlcnic_83xx_get_minidump_template()
1427 if (qlcnic_83xx_md_check_extended_dump_capability(adapter)) in qlcnic_83xx_get_minidump_template()
1428 extended = !qlcnic_83xx_extend_md_capab(adapter); in qlcnic_83xx_get_minidump_template()
1430 if (!qlcnic_fw_cmd_get_minidump_temp(adapter)) in qlcnic_83xx_get_minidump_template()