Lines Matching full:adapter
25 qlcnic_check_fw_hearbeat(struct qlcnic_adapter *adapter);
82 void qlcnic_release_rx_buffers(struct qlcnic_adapter *adapter) in qlcnic_release_rx_buffers() argument
89 recv_ctx = adapter->recv_ctx; in qlcnic_release_rx_buffers()
90 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_release_rx_buffers()
97 dma_unmap_single(&adapter->pdev->dev, rx_buf->dma, in qlcnic_release_rx_buffers()
105 void qlcnic_reset_rx_buffers_list(struct qlcnic_adapter *adapter) in qlcnic_reset_rx_buffers_list() argument
112 recv_ctx = adapter->recv_ctx; in qlcnic_reset_rx_buffers_list()
113 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_reset_rx_buffers_list()
127 void qlcnic_release_tx_buffers(struct qlcnic_adapter *adapter, in qlcnic_release_tx_buffers() argument
140 dma_unmap_single(&adapter->pdev->dev, buffrag->dma, in qlcnic_release_tx_buffers()
147 dma_unmap_page(&adapter->pdev->dev, in qlcnic_release_tx_buffers()
163 void qlcnic_free_sw_resources(struct qlcnic_adapter *adapter) in qlcnic_free_sw_resources() argument
169 recv_ctx = adapter->recv_ctx; in qlcnic_free_sw_resources()
174 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_free_sw_resources()
182 int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter) in qlcnic_alloc_sw_resources() argument
190 recv_ctx = adapter->recv_ctx; in qlcnic_alloc_sw_resources()
192 rds_ring = kcalloc(adapter->max_rds_rings, in qlcnic_alloc_sw_resources()
199 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_alloc_sw_resources()
203 rds_ring->num_desc = adapter->num_rxd; in qlcnic_alloc_sw_resources()
209 rds_ring->num_desc = adapter->num_jumbo_rxd; in qlcnic_alloc_sw_resources()
213 if (adapter->ahw->capabilities & in qlcnic_alloc_sw_resources()
240 for (ring = 0; ring < adapter->drv_sds_rings; ring++) { in qlcnic_alloc_sw_resources()
242 sds_ring->irq = adapter->msix_entries[ring].vector; in qlcnic_alloc_sw_resources()
243 sds_ring->adapter = adapter; in qlcnic_alloc_sw_resources()
244 sds_ring->num_desc = adapter->num_rxd; in qlcnic_alloc_sw_resources()
245 if (qlcnic_82xx_check(adapter)) { in qlcnic_alloc_sw_resources()
246 if (qlcnic_check_multi_tx(adapter) && in qlcnic_alloc_sw_resources()
247 !adapter->ahw->diag_test) in qlcnic_alloc_sw_resources()
248 sds_ring->tx_ring = &adapter->tx_ring[ring]; in qlcnic_alloc_sw_resources()
250 sds_ring->tx_ring = &adapter->tx_ring[0]; in qlcnic_alloc_sw_resources()
259 qlcnic_free_sw_resources(adapter); in qlcnic_alloc_sw_resources()
292 static int qlcnic_wait_rom_done(struct qlcnic_adapter *adapter) in qlcnic_wait_rom_done() argument
300 done = QLCRD32(adapter, QLCNIC_ROMUSB_GLB_STATUS, &err); in qlcnic_wait_rom_done()
303 dev_err(&adapter->pdev->dev, in qlcnic_wait_rom_done()
312 static int do_rom_fast_read(struct qlcnic_adapter *adapter, in do_rom_fast_read() argument
317 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_ADDRESS, addr); in do_rom_fast_read()
318 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
319 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_ABYTE_CNT, 3); in do_rom_fast_read()
320 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_INSTR_OPCODE, 0xb); in do_rom_fast_read()
321 if (qlcnic_wait_rom_done(adapter)) { in do_rom_fast_read()
322 dev_err(&adapter->pdev->dev, "Error waiting for rom done\n"); in do_rom_fast_read()
326 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_ABYTE_CNT, 0); in do_rom_fast_read()
328 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
330 *valp = QLCRD32(adapter, QLCNIC_ROMUSB_ROM_RDATA, &err); in do_rom_fast_read()
336 static int do_rom_fast_read_words(struct qlcnic_adapter *adapter, int addr, in do_rom_fast_read_words() argument
344 ret = do_rom_fast_read(adapter, addridx, &v); in do_rom_fast_read_words()
355 qlcnic_rom_fast_read_words(struct qlcnic_adapter *adapter, int addr, in qlcnic_rom_fast_read_words() argument
360 ret = qlcnic_rom_lock(adapter); in qlcnic_rom_fast_read_words()
364 ret = do_rom_fast_read_words(adapter, addr, bytes, size); in qlcnic_rom_fast_read_words()
366 qlcnic_rom_unlock(adapter); in qlcnic_rom_fast_read_words()
370 int qlcnic_rom_fast_read(struct qlcnic_adapter *adapter, u32 addr, u32 *valp) in qlcnic_rom_fast_read() argument
374 if (qlcnic_rom_lock(adapter) != 0) in qlcnic_rom_fast_read()
377 ret = do_rom_fast_read(adapter, addr, valp); in qlcnic_rom_fast_read()
378 qlcnic_rom_unlock(adapter); in qlcnic_rom_fast_read()
382 int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter) in qlcnic_pinit_from_rom() argument
389 struct pci_dev *pdev = adapter->pdev; in qlcnic_pinit_from_rom()
391 QLC_SHARED_REG_WR32(adapter, QLCNIC_CMDPEG_STATE, 0); in qlcnic_pinit_from_rom()
392 QLC_SHARED_REG_WR32(adapter, QLCNIC_RCVPEG_STATE, 0); in qlcnic_pinit_from_rom()
396 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x10, 0x0); in qlcnic_pinit_from_rom()
397 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x14, 0x0); in qlcnic_pinit_from_rom()
398 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x18, 0x0); in qlcnic_pinit_from_rom()
399 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x1c, 0x0); in qlcnic_pinit_from_rom()
400 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x20, 0x0); in qlcnic_pinit_from_rom()
401 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x24, 0x0); in qlcnic_pinit_from_rom()
404 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x40, 0xff); in qlcnic_pinit_from_rom()
406 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x70000, 0x00); in qlcnic_pinit_from_rom()
408 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x80000, 0x00); in qlcnic_pinit_from_rom()
410 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x90000, 0x00); in qlcnic_pinit_from_rom()
412 QLCWR32(adapter, QLCNIC_CRB_NIU + 0xa0000, 0x00); in qlcnic_pinit_from_rom()
414 QLCWR32(adapter, QLCNIC_CRB_NIU + 0xb0000, 0x00); in qlcnic_pinit_from_rom()
417 val = QLCRD32(adapter, QLCNIC_CRB_SRE + 0x1000, &err); in qlcnic_pinit_from_rom()
420 QLCWR32(adapter, QLCNIC_CRB_SRE + 0x1000, val & (~(0x1))); in qlcnic_pinit_from_rom()
423 QLCWR32(adapter, QLCNIC_CRB_EPG + 0x1300, 0x1); in qlcnic_pinit_from_rom()
426 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x0, 0x0); in qlcnic_pinit_from_rom()
427 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x8, 0x0); in qlcnic_pinit_from_rom()
428 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x10, 0x0); in qlcnic_pinit_from_rom()
429 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x18, 0x0); in qlcnic_pinit_from_rom()
430 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x100, 0x0); in qlcnic_pinit_from_rom()
431 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x200, 0x0); in qlcnic_pinit_from_rom()
433 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0x3c, 1); in qlcnic_pinit_from_rom()
434 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_1 + 0x3c, 1); in qlcnic_pinit_from_rom()
435 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x3c, 1); in qlcnic_pinit_from_rom()
436 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x3c, 1); in qlcnic_pinit_from_rom()
437 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c, 1); in qlcnic_pinit_from_rom()
441 QLCWR32(adapter, QLCNIC_ROMUSB_GLB_SW_RESET, 0xfeffffff); in qlcnic_pinit_from_rom()
444 if (qlcnic_rom_fast_read(adapter, 0, &n) != 0 || (n != 0xcafecafe) || in qlcnic_pinit_from_rom()
445 qlcnic_rom_fast_read(adapter, 4, &n) != 0) { in qlcnic_pinit_from_rom()
462 if (qlcnic_rom_fast_read(adapter, 8*i + 4*offset, &val) != 0 || in qlcnic_pinit_from_rom()
463 qlcnic_rom_fast_read(adapter, 8*i + 4*offset + 4, &addr) != 0) { in qlcnic_pinit_from_rom()
516 QLCWR32(adapter, off, buf[i].data); in qlcnic_pinit_from_rom()
523 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_D + 0xec, 0x1e); in qlcnic_pinit_from_rom()
524 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_D + 0x4c, 8); in qlcnic_pinit_from_rom()
525 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_I + 0x4c, 8); in qlcnic_pinit_from_rom()
526 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0x8, 0); in qlcnic_pinit_from_rom()
527 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0xc, 0); in qlcnic_pinit_from_rom()
528 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_1 + 0x8, 0); in qlcnic_pinit_from_rom()
529 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_1 + 0xc, 0); in qlcnic_pinit_from_rom()
530 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x8, 0); in qlcnic_pinit_from_rom()
531 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_2 + 0xc, 0); in qlcnic_pinit_from_rom()
532 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x8, 0); in qlcnic_pinit_from_rom()
533 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_3 + 0xc, 0); in qlcnic_pinit_from_rom()
534 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x8, 0); in qlcnic_pinit_from_rom()
535 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0xc, 0); in qlcnic_pinit_from_rom()
538 QLC_SHARED_REG_WR32(adapter, QLCNIC_PEG_HALT_STATUS1, 0); in qlcnic_pinit_from_rom()
539 QLC_SHARED_REG_WR32(adapter, QLCNIC_PEG_HALT_STATUS2, 0); in qlcnic_pinit_from_rom()
544 static int qlcnic_cmd_peg_ready(struct qlcnic_adapter *adapter) in qlcnic_cmd_peg_ready() argument
550 val = QLC_SHARED_REG_RD32(adapter, QLCNIC_CMDPEG_STATE); in qlcnic_cmd_peg_ready()
566 QLC_SHARED_REG_WR32(adapter, QLCNIC_CMDPEG_STATE, in qlcnic_cmd_peg_ready()
570 dev_err(&adapter->pdev->dev, "Command Peg initialization not " in qlcnic_cmd_peg_ready()
576 qlcnic_receive_peg_ready(struct qlcnic_adapter *adapter) in qlcnic_receive_peg_ready() argument
582 val = QLC_SHARED_REG_RD32(adapter, QLCNIC_RCVPEG_STATE); in qlcnic_receive_peg_ready()
591 dev_err(&adapter->pdev->dev, "Receive Peg initialization not complete, state: 0x%x.\n", in qlcnic_receive_peg_ready()
597 qlcnic_check_fw_status(struct qlcnic_adapter *adapter) in qlcnic_check_fw_status() argument
601 err = qlcnic_cmd_peg_ready(adapter); in qlcnic_check_fw_status()
605 err = qlcnic_receive_peg_ready(adapter); in qlcnic_check_fw_status()
609 QLC_SHARED_REG_WR32(adapter, QLCNIC_CMDPEG_STATE, PHAN_INITIALIZE_ACK); in qlcnic_check_fw_status()
615 qlcnic_setup_idc_param(struct qlcnic_adapter *adapter) { in qlcnic_setup_idc_param() argument
620 val = QLC_SHARED_REG_RD32(adapter, QLCNIC_CRB_DEV_PARTITION_INFO); in qlcnic_setup_idc_param()
621 val = QLC_DEV_GET_DRV(val, adapter->portnum); in qlcnic_setup_idc_param()
623 dev_err(&adapter->pdev->dev, in qlcnic_setup_idc_param()
627 adapter->ahw->physical_port = (val >> 2); in qlcnic_setup_idc_param()
628 if (qlcnic_rom_fast_read(adapter, QLCNIC_ROM_DEV_INIT_TIMEOUT, &timeo)) in qlcnic_setup_idc_param()
631 adapter->dev_init_timeo = timeo; in qlcnic_setup_idc_param()
633 if (qlcnic_rom_fast_read(adapter, QLCNIC_ROM_DRV_RESET_TIMEOUT, &timeo)) in qlcnic_setup_idc_param()
636 adapter->reset_ack_timeo = timeo; in qlcnic_setup_idc_param()
641 static int qlcnic_get_flt_entry(struct qlcnic_adapter *adapter, u8 region, in qlcnic_get_flt_entry() argument
650 ret = qlcnic_rom_fast_read_words(adapter, QLCNIC_FLT_LOCATION, in qlcnic_get_flt_entry()
654 dev_warn(&adapter->pdev->dev, in qlcnic_get_flt_entry()
664 ret = qlcnic_rom_fast_read_words(adapter, QLCNIC_FLT_LOCATION + in qlcnic_get_flt_entry()
668 dev_warn(&adapter->pdev->dev, in qlcnic_get_flt_entry()
679 dev_warn(&adapter->pdev->dev, in qlcnic_get_flt_entry()
692 qlcnic_check_flash_fw_ver(struct qlcnic_adapter *adapter) in qlcnic_check_flash_fw_ver() argument
698 if (adapter->ahw->revision_id == QLCNIC_P3P_C0) in qlcnic_check_flash_fw_ver()
699 ret = qlcnic_get_flt_entry(adapter, QLCNIC_C0_FW_IMAGE_REGION, in qlcnic_check_flash_fw_ver()
702 ret = qlcnic_get_flt_entry(adapter, QLCNIC_B0_FW_IMAGE_REGION, in qlcnic_check_flash_fw_ver()
707 qlcnic_rom_fast_read(adapter, fw_entry.start_addr + 4, in qlcnic_check_flash_fw_ver()
710 qlcnic_rom_fast_read(adapter, QLCNIC_FW_VERSION_OFFSET, in qlcnic_check_flash_fw_ver()
717 dev_err(&adapter->pdev->dev, in qlcnic_check_flash_fw_ver()
729 qlcnic_has_mn(struct qlcnic_adapter *adapter) in qlcnic_has_mn() argument
734 capability = QLCRD32(adapter, QLCNIC_PEG_TUNE_CAPABILITY, &err); in qlcnic_has_mn()
766 qlcnic_validate_header(struct qlcnic_adapter *adapter) in qlcnic_validate_header() argument
768 const u8 *unirom = adapter->fw->data; in qlcnic_validate_header()
772 fw_file_size = adapter->fw->size; in qlcnic_validate_header()
788 qlcnic_validate_bootld(struct qlcnic_adapter *adapter) in qlcnic_validate_bootld() argument
793 const u8 *unirom = adapter->fw->data; in qlcnic_validate_bootld()
796 temp = *((__le32 *)&unirom[adapter->file_prd_off] + in qlcnic_validate_bootld()
807 if (adapter->fw->size < tab_size) in qlcnic_validate_bootld()
816 if (adapter->fw->size < data_size) in qlcnic_validate_bootld()
823 qlcnic_validate_fw(struct qlcnic_adapter *adapter) in qlcnic_validate_fw() argument
827 const u8 *unirom = adapter->fw->data; in qlcnic_validate_fw()
831 temp = *((__le32 *)&unirom[adapter->file_prd_off] + in qlcnic_validate_fw()
842 if (adapter->fw->size < tab_size) in qlcnic_validate_fw()
850 if (adapter->fw->size < data_size) in qlcnic_validate_fw()
857 qlcnic_validate_product_offs(struct qlcnic_adapter *adapter) in qlcnic_validate_product_offs() argument
860 const u8 *unirom = adapter->fw->data; in qlcnic_validate_product_offs()
861 int mn_present = qlcnic_has_mn(adapter); in qlcnic_validate_product_offs()
874 if (adapter->fw->size < tab_size) in qlcnic_validate_product_offs()
881 u8 chiprev = adapter->ahw->revision_id; in qlcnic_validate_product_offs()
895 adapter->file_prd_off = offs; in qlcnic_validate_product_offs()
907 qlcnic_validate_unified_romimage(struct qlcnic_adapter *adapter) in qlcnic_validate_unified_romimage() argument
909 if (qlcnic_validate_header(adapter)) { in qlcnic_validate_unified_romimage()
910 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
915 if (qlcnic_validate_product_offs(adapter)) { in qlcnic_validate_unified_romimage()
916 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
921 if (qlcnic_validate_bootld(adapter)) { in qlcnic_validate_unified_romimage()
922 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
927 if (qlcnic_validate_fw(adapter)) { in qlcnic_validate_unified_romimage()
928 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
937 struct uni_data_desc *qlcnic_get_data_desc(struct qlcnic_adapter *adapter, in qlcnic_get_data_desc() argument
940 const u8 *unirom = adapter->fw->data; in qlcnic_get_data_desc()
945 temp = *((__le32 *)&unirom[adapter->file_prd_off] + idx_offset); in qlcnic_get_data_desc()
960 qlcnic_get_bootld_offs(struct qlcnic_adapter *adapter) in qlcnic_get_bootld_offs() argument
965 data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_BOOTLD, in qlcnic_get_bootld_offs()
968 if (adapter->ahw->fw_type == QLCNIC_UNIFIED_ROMIMAGE) in qlcnic_get_bootld_offs()
971 return (u8 *)&adapter->fw->data[offs]; in qlcnic_get_bootld_offs()
975 qlcnic_get_fw_offs(struct qlcnic_adapter *adapter) in qlcnic_get_fw_offs() argument
980 data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_FW, in qlcnic_get_fw_offs()
982 if (adapter->ahw->fw_type == QLCNIC_UNIFIED_ROMIMAGE) in qlcnic_get_fw_offs()
985 return (u8 *)&adapter->fw->data[offs]; in qlcnic_get_fw_offs()
988 static u32 qlcnic_get_fw_size(struct qlcnic_adapter *adapter) in qlcnic_get_fw_size() argument
991 const u8 *unirom = adapter->fw->data; in qlcnic_get_fw_size()
993 data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_FW, in qlcnic_get_fw_size()
996 if (adapter->ahw->fw_type == QLCNIC_UNIFIED_ROMIMAGE) in qlcnic_get_fw_size()
1002 static u32 qlcnic_get_fw_version(struct qlcnic_adapter *adapter) in qlcnic_get_fw_version() argument
1005 const struct firmware *fw = adapter->fw; in qlcnic_get_fw_version()
1011 if (adapter->ahw->fw_type != QLCNIC_UNIFIED_ROMIMAGE) { in qlcnic_get_fw_version()
1016 fw_data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_FW, in qlcnic_get_fw_version()
1035 static u32 qlcnic_get_bios_version(struct qlcnic_adapter *adapter) in qlcnic_get_bios_version() argument
1037 const struct firmware *fw = adapter->fw; in qlcnic_get_bios_version()
1038 u32 bios_ver, prd_off = adapter->file_prd_off; in qlcnic_get_bios_version()
1042 if (adapter->ahw->fw_type != QLCNIC_UNIFIED_ROMIMAGE) { in qlcnic_get_bios_version()
1053 static void qlcnic_rom_lock_recovery(struct qlcnic_adapter *adapter) in qlcnic_rom_lock_recovery() argument
1055 if (qlcnic_pcie_sem_lock(adapter, 2, QLCNIC_ROM_LOCK_ID)) in qlcnic_rom_lock_recovery()
1056 dev_info(&adapter->pdev->dev, "Resetting rom_lock\n"); in qlcnic_rom_lock_recovery()
1058 qlcnic_pcie_sem_unlock(adapter, 2); in qlcnic_rom_lock_recovery()
1062 qlcnic_check_fw_hearbeat(struct qlcnic_adapter *adapter) in qlcnic_check_fw_hearbeat() argument
1067 adapter->heartbeat = QLC_SHARED_REG_RD32(adapter, in qlcnic_check_fw_hearbeat()
1072 heartbeat = QLC_SHARED_REG_RD32(adapter, in qlcnic_check_fw_hearbeat()
1074 if (heartbeat != adapter->heartbeat) { in qlcnic_check_fw_hearbeat()
1084 qlcnic_need_fw_reset(struct qlcnic_adapter *adapter) in qlcnic_need_fw_reset() argument
1086 if ((adapter->flags & QLCNIC_FW_HANG) || in qlcnic_need_fw_reset()
1087 qlcnic_check_fw_hearbeat(adapter)) { in qlcnic_need_fw_reset()
1088 qlcnic_rom_lock_recovery(adapter); in qlcnic_need_fw_reset()
1092 if (adapter->need_fw_reset) in qlcnic_need_fw_reset()
1095 if (adapter->fw) in qlcnic_need_fw_reset()
1107 qlcnic_load_firmware(struct qlcnic_adapter *adapter) in qlcnic_load_firmware() argument
1111 const struct firmware *fw = adapter->fw; in qlcnic_load_firmware()
1112 struct pci_dev *pdev = adapter->pdev; in qlcnic_load_firmware()
1115 fw_name[adapter->ahw->fw_type]); in qlcnic_load_firmware()
1122 ptr64 = (__le64 *)qlcnic_get_bootld_offs(adapter); in qlcnic_load_firmware()
1128 if (qlcnic_pci_mem_write_2M(adapter, flashaddr, data)) in qlcnic_load_firmware()
1134 size = qlcnic_get_fw_size(adapter) / 8; in qlcnic_load_firmware()
1136 ptr64 = (__le64 *)qlcnic_get_fw_offs(adapter); in qlcnic_load_firmware()
1142 if (qlcnic_pci_mem_write_2M(adapter, in qlcnic_load_firmware()
1149 size = qlcnic_get_fw_size(adapter) % 8; in qlcnic_load_firmware()
1153 if (qlcnic_pci_mem_write_2M(adapter, in qlcnic_load_firmware()
1164 ret = qlcnic_get_flt_entry(adapter, QLCNIC_BOOTLD_REGION, in qlcnic_load_firmware()
1177 if (qlcnic_rom_fast_read(adapter, in qlcnic_load_firmware()
1180 if (qlcnic_rom_fast_read(adapter, in qlcnic_load_firmware()
1186 if (qlcnic_pci_mem_write_2M(adapter, in qlcnic_load_firmware()
1195 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0x18, 0x1020); in qlcnic_load_firmware()
1196 QLCWR32(adapter, QLCNIC_ROMUSB_GLB_SW_RESET, 0x80001e); in qlcnic_load_firmware()
1201 qlcnic_validate_firmware(struct qlcnic_adapter *adapter) in qlcnic_validate_firmware() argument
1205 struct pci_dev *pdev = adapter->pdev; in qlcnic_validate_firmware()
1206 const struct firmware *fw = adapter->fw; in qlcnic_validate_firmware()
1207 u8 fw_type = adapter->ahw->fw_type; in qlcnic_validate_firmware()
1210 if (qlcnic_validate_unified_romimage(adapter)) in qlcnic_validate_firmware()
1225 val = qlcnic_get_fw_version(adapter); in qlcnic_validate_firmware()
1235 val = qlcnic_get_bios_version(adapter); in qlcnic_validate_firmware()
1236 qlcnic_rom_fast_read(adapter, QLCNIC_BIOS_VERSION_OFFSET, (int *)&bios); in qlcnic_validate_firmware()
1243 QLC_SHARED_REG_WR32(adapter, QLCNIC_FW_IMG_VALID, QLCNIC_BDINFO_MAGIC); in qlcnic_validate_firmware()
1248 qlcnic_get_next_fwtype(struct qlcnic_adapter *adapter) in qlcnic_get_next_fwtype() argument
1252 switch (adapter->ahw->fw_type) { in qlcnic_get_next_fwtype()
1263 adapter->ahw->fw_type = fw_type; in qlcnic_get_next_fwtype()
1268 void qlcnic_request_firmware(struct qlcnic_adapter *adapter) in qlcnic_request_firmware() argument
1270 struct pci_dev *pdev = adapter->pdev; in qlcnic_request_firmware()
1273 adapter->ahw->fw_type = QLCNIC_UNKNOWN_ROMIMAGE; in qlcnic_request_firmware()
1276 qlcnic_get_next_fwtype(adapter); in qlcnic_request_firmware()
1278 if (adapter->ahw->fw_type == QLCNIC_FLASH_ROMIMAGE) { in qlcnic_request_firmware()
1279 adapter->fw = NULL; in qlcnic_request_firmware()
1281 rc = request_firmware(&adapter->fw, in qlcnic_request_firmware()
1282 fw_name[adapter->ahw->fw_type], in qlcnic_request_firmware()
1287 rc = qlcnic_validate_firmware(adapter); in qlcnic_request_firmware()
1289 release_firmware(adapter->fw); in qlcnic_request_firmware()
1298 qlcnic_release_firmware(struct qlcnic_adapter *adapter) in qlcnic_release_firmware() argument
1300 release_firmware(adapter->fw); in qlcnic_release_firmware()
1301 adapter->fw = NULL; in qlcnic_release_firmware()