Lines Matching refs:adapter
26 qlcnic_check_fw_hearbeat(struct qlcnic_adapter *adapter);
83 void qlcnic_release_rx_buffers(struct qlcnic_adapter *adapter) in qlcnic_release_rx_buffers() argument
90 recv_ctx = adapter->recv_ctx; in qlcnic_release_rx_buffers()
91 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_release_rx_buffers()
98 pci_unmap_single(adapter->pdev, in qlcnic_release_rx_buffers()
108 void qlcnic_reset_rx_buffers_list(struct qlcnic_adapter *adapter) in qlcnic_reset_rx_buffers_list() argument
115 recv_ctx = adapter->recv_ctx; in qlcnic_reset_rx_buffers_list()
116 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_reset_rx_buffers_list()
130 void qlcnic_release_tx_buffers(struct qlcnic_adapter *adapter, in qlcnic_release_tx_buffers() argument
143 pci_unmap_single(adapter->pdev, buffrag->dma, in qlcnic_release_tx_buffers()
150 pci_unmap_page(adapter->pdev, buffrag->dma, in qlcnic_release_tx_buffers()
166 void qlcnic_free_sw_resources(struct qlcnic_adapter *adapter) in qlcnic_free_sw_resources() argument
172 recv_ctx = adapter->recv_ctx; in qlcnic_free_sw_resources()
177 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_free_sw_resources()
185 int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter) in qlcnic_alloc_sw_resources() argument
193 recv_ctx = adapter->recv_ctx; in qlcnic_alloc_sw_resources()
195 rds_ring = kcalloc(adapter->max_rds_rings, in qlcnic_alloc_sw_resources()
202 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_alloc_sw_resources()
206 rds_ring->num_desc = adapter->num_rxd; in qlcnic_alloc_sw_resources()
212 rds_ring->num_desc = adapter->num_jumbo_rxd; in qlcnic_alloc_sw_resources()
216 if (adapter->ahw->capabilities & in qlcnic_alloc_sw_resources()
243 for (ring = 0; ring < adapter->drv_sds_rings; ring++) { in qlcnic_alloc_sw_resources()
245 sds_ring->irq = adapter->msix_entries[ring].vector; in qlcnic_alloc_sw_resources()
246 sds_ring->adapter = adapter; in qlcnic_alloc_sw_resources()
247 sds_ring->num_desc = adapter->num_rxd; in qlcnic_alloc_sw_resources()
248 if (qlcnic_82xx_check(adapter)) { in qlcnic_alloc_sw_resources()
249 if (qlcnic_check_multi_tx(adapter) && in qlcnic_alloc_sw_resources()
250 !adapter->ahw->diag_test) in qlcnic_alloc_sw_resources()
251 sds_ring->tx_ring = &adapter->tx_ring[ring]; in qlcnic_alloc_sw_resources()
253 sds_ring->tx_ring = &adapter->tx_ring[0]; in qlcnic_alloc_sw_resources()
262 qlcnic_free_sw_resources(adapter); in qlcnic_alloc_sw_resources()
295 static int qlcnic_wait_rom_done(struct qlcnic_adapter *adapter) in qlcnic_wait_rom_done() argument
303 done = QLCRD32(adapter, QLCNIC_ROMUSB_GLB_STATUS, &err); in qlcnic_wait_rom_done()
306 dev_err(&adapter->pdev->dev, in qlcnic_wait_rom_done()
315 static int do_rom_fast_read(struct qlcnic_adapter *adapter, in do_rom_fast_read() argument
320 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_ADDRESS, addr); in do_rom_fast_read()
321 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
322 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_ABYTE_CNT, 3); in do_rom_fast_read()
323 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_INSTR_OPCODE, 0xb); in do_rom_fast_read()
324 if (qlcnic_wait_rom_done(adapter)) { in do_rom_fast_read()
325 dev_err(&adapter->pdev->dev, "Error waiting for rom done\n"); in do_rom_fast_read()
329 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_ABYTE_CNT, 0); in do_rom_fast_read()
331 QLCWR32(adapter, QLCNIC_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
333 *valp = QLCRD32(adapter, QLCNIC_ROMUSB_ROM_RDATA, &err); in do_rom_fast_read()
339 static int do_rom_fast_read_words(struct qlcnic_adapter *adapter, int addr, in do_rom_fast_read_words() argument
347 ret = do_rom_fast_read(adapter, addridx, &v); in do_rom_fast_read_words()
358 qlcnic_rom_fast_read_words(struct qlcnic_adapter *adapter, int addr, in qlcnic_rom_fast_read_words() argument
363 ret = qlcnic_rom_lock(adapter); in qlcnic_rom_fast_read_words()
367 ret = do_rom_fast_read_words(adapter, addr, bytes, size); in qlcnic_rom_fast_read_words()
369 qlcnic_rom_unlock(adapter); in qlcnic_rom_fast_read_words()
373 int qlcnic_rom_fast_read(struct qlcnic_adapter *adapter, u32 addr, u32 *valp) in qlcnic_rom_fast_read() argument
377 if (qlcnic_rom_lock(adapter) != 0) in qlcnic_rom_fast_read()
380 ret = do_rom_fast_read(adapter, addr, valp); in qlcnic_rom_fast_read()
381 qlcnic_rom_unlock(adapter); in qlcnic_rom_fast_read()
385 int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter) in qlcnic_pinit_from_rom() argument
392 struct pci_dev *pdev = adapter->pdev; in qlcnic_pinit_from_rom()
394 QLC_SHARED_REG_WR32(adapter, QLCNIC_CMDPEG_STATE, 0); in qlcnic_pinit_from_rom()
395 QLC_SHARED_REG_WR32(adapter, QLCNIC_RCVPEG_STATE, 0); in qlcnic_pinit_from_rom()
399 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x10, 0x0); in qlcnic_pinit_from_rom()
400 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x14, 0x0); in qlcnic_pinit_from_rom()
401 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x18, 0x0); in qlcnic_pinit_from_rom()
402 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x1c, 0x0); in qlcnic_pinit_from_rom()
403 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x20, 0x0); in qlcnic_pinit_from_rom()
404 QLCWR32(adapter, QLCNIC_CRB_I2Q + 0x24, 0x0); in qlcnic_pinit_from_rom()
407 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x40, 0xff); in qlcnic_pinit_from_rom()
409 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x70000, 0x00); in qlcnic_pinit_from_rom()
411 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x80000, 0x00); in qlcnic_pinit_from_rom()
413 QLCWR32(adapter, QLCNIC_CRB_NIU + 0x90000, 0x00); in qlcnic_pinit_from_rom()
415 QLCWR32(adapter, QLCNIC_CRB_NIU + 0xa0000, 0x00); in qlcnic_pinit_from_rom()
417 QLCWR32(adapter, QLCNIC_CRB_NIU + 0xb0000, 0x00); in qlcnic_pinit_from_rom()
420 val = QLCRD32(adapter, QLCNIC_CRB_SRE + 0x1000, &err); in qlcnic_pinit_from_rom()
423 QLCWR32(adapter, QLCNIC_CRB_SRE + 0x1000, val & (~(0x1))); in qlcnic_pinit_from_rom()
426 QLCWR32(adapter, QLCNIC_CRB_EPG + 0x1300, 0x1); in qlcnic_pinit_from_rom()
429 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x0, 0x0); in qlcnic_pinit_from_rom()
430 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x8, 0x0); in qlcnic_pinit_from_rom()
431 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x10, 0x0); in qlcnic_pinit_from_rom()
432 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x18, 0x0); in qlcnic_pinit_from_rom()
433 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x100, 0x0); in qlcnic_pinit_from_rom()
434 QLCWR32(adapter, QLCNIC_CRB_TIMER + 0x200, 0x0); in qlcnic_pinit_from_rom()
436 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0x3c, 1); in qlcnic_pinit_from_rom()
437 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_1 + 0x3c, 1); in qlcnic_pinit_from_rom()
438 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x3c, 1); in qlcnic_pinit_from_rom()
439 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x3c, 1); in qlcnic_pinit_from_rom()
440 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c, 1); in qlcnic_pinit_from_rom()
443 qlcnic_rom_unlock(adapter); in qlcnic_pinit_from_rom()
445 QLCWR32(adapter, QLCNIC_ROMUSB_GLB_SW_RESET, 0xfeffffff); in qlcnic_pinit_from_rom()
448 if (qlcnic_rom_fast_read(adapter, 0, &n) != 0 || (n != 0xcafecafe) || in qlcnic_pinit_from_rom()
449 qlcnic_rom_fast_read(adapter, 4, &n) != 0) { in qlcnic_pinit_from_rom()
466 if (qlcnic_rom_fast_read(adapter, 8*i + 4*offset, &val) != 0 || in qlcnic_pinit_from_rom()
467 qlcnic_rom_fast_read(adapter, 8*i + 4*offset + 4, &addr) != 0) { in qlcnic_pinit_from_rom()
520 QLCWR32(adapter, off, buf[i].data); in qlcnic_pinit_from_rom()
527 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_D + 0xec, 0x1e); in qlcnic_pinit_from_rom()
528 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_D + 0x4c, 8); in qlcnic_pinit_from_rom()
529 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_I + 0x4c, 8); in qlcnic_pinit_from_rom()
530 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0x8, 0); in qlcnic_pinit_from_rom()
531 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0xc, 0); in qlcnic_pinit_from_rom()
532 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_1 + 0x8, 0); in qlcnic_pinit_from_rom()
533 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_1 + 0xc, 0); in qlcnic_pinit_from_rom()
534 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_2 + 0x8, 0); in qlcnic_pinit_from_rom()
535 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_2 + 0xc, 0); in qlcnic_pinit_from_rom()
536 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_3 + 0x8, 0); in qlcnic_pinit_from_rom()
537 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_3 + 0xc, 0); in qlcnic_pinit_from_rom()
538 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x8, 0); in qlcnic_pinit_from_rom()
539 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0xc, 0); in qlcnic_pinit_from_rom()
542 QLC_SHARED_REG_WR32(adapter, QLCNIC_PEG_HALT_STATUS1, 0); in qlcnic_pinit_from_rom()
543 QLC_SHARED_REG_WR32(adapter, QLCNIC_PEG_HALT_STATUS2, 0); in qlcnic_pinit_from_rom()
548 static int qlcnic_cmd_peg_ready(struct qlcnic_adapter *adapter) in qlcnic_cmd_peg_ready() argument
554 val = QLC_SHARED_REG_RD32(adapter, QLCNIC_CMDPEG_STATE); in qlcnic_cmd_peg_ready()
570 QLC_SHARED_REG_WR32(adapter, QLCNIC_CMDPEG_STATE, in qlcnic_cmd_peg_ready()
574 dev_err(&adapter->pdev->dev, "Command Peg initialization not " in qlcnic_cmd_peg_ready()
580 qlcnic_receive_peg_ready(struct qlcnic_adapter *adapter) in qlcnic_receive_peg_ready() argument
586 val = QLC_SHARED_REG_RD32(adapter, QLCNIC_RCVPEG_STATE); in qlcnic_receive_peg_ready()
596 dev_err(&adapter->pdev->dev, "Receive Peg initialization not " in qlcnic_receive_peg_ready()
605 qlcnic_check_fw_status(struct qlcnic_adapter *adapter) in qlcnic_check_fw_status() argument
609 err = qlcnic_cmd_peg_ready(adapter); in qlcnic_check_fw_status()
613 err = qlcnic_receive_peg_ready(adapter); in qlcnic_check_fw_status()
617 QLC_SHARED_REG_WR32(adapter, QLCNIC_CMDPEG_STATE, PHAN_INITIALIZE_ACK); in qlcnic_check_fw_status()
623 qlcnic_setup_idc_param(struct qlcnic_adapter *adapter) { in qlcnic_setup_idc_param() argument
628 val = QLC_SHARED_REG_RD32(adapter, QLCNIC_CRB_DEV_PARTITION_INFO); in qlcnic_setup_idc_param()
629 val = QLC_DEV_GET_DRV(val, adapter->portnum); in qlcnic_setup_idc_param()
631 dev_err(&adapter->pdev->dev, in qlcnic_setup_idc_param()
635 adapter->ahw->physical_port = (val >> 2); in qlcnic_setup_idc_param()
636 if (qlcnic_rom_fast_read(adapter, QLCNIC_ROM_DEV_INIT_TIMEOUT, &timeo)) in qlcnic_setup_idc_param()
639 adapter->dev_init_timeo = timeo; in qlcnic_setup_idc_param()
641 if (qlcnic_rom_fast_read(adapter, QLCNIC_ROM_DRV_RESET_TIMEOUT, &timeo)) in qlcnic_setup_idc_param()
644 adapter->reset_ack_timeo = timeo; in qlcnic_setup_idc_param()
649 static int qlcnic_get_flt_entry(struct qlcnic_adapter *adapter, u8 region, in qlcnic_get_flt_entry() argument
658 ret = qlcnic_rom_fast_read_words(adapter, QLCNIC_FLT_LOCATION, in qlcnic_get_flt_entry()
662 dev_warn(&adapter->pdev->dev, in qlcnic_get_flt_entry()
672 ret = qlcnic_rom_fast_read_words(adapter, QLCNIC_FLT_LOCATION + in qlcnic_get_flt_entry()
676 dev_warn(&adapter->pdev->dev, in qlcnic_get_flt_entry()
687 dev_warn(&adapter->pdev->dev, in qlcnic_get_flt_entry()
700 qlcnic_check_flash_fw_ver(struct qlcnic_adapter *adapter) in qlcnic_check_flash_fw_ver() argument
706 if (adapter->ahw->revision_id == QLCNIC_P3P_C0) in qlcnic_check_flash_fw_ver()
707 ret = qlcnic_get_flt_entry(adapter, QLCNIC_C0_FW_IMAGE_REGION, in qlcnic_check_flash_fw_ver()
710 ret = qlcnic_get_flt_entry(adapter, QLCNIC_B0_FW_IMAGE_REGION, in qlcnic_check_flash_fw_ver()
715 qlcnic_rom_fast_read(adapter, fw_entry.start_addr + 4, in qlcnic_check_flash_fw_ver()
718 qlcnic_rom_fast_read(adapter, QLCNIC_FW_VERSION_OFFSET, in qlcnic_check_flash_fw_ver()
725 dev_err(&adapter->pdev->dev, in qlcnic_check_flash_fw_ver()
737 qlcnic_has_mn(struct qlcnic_adapter *adapter) in qlcnic_has_mn() argument
742 capability = QLCRD32(adapter, QLCNIC_PEG_TUNE_CAPABILITY, &err); in qlcnic_has_mn()
774 qlcnic_validate_header(struct qlcnic_adapter *adapter) in qlcnic_validate_header() argument
776 const u8 *unirom = adapter->fw->data; in qlcnic_validate_header()
780 fw_file_size = adapter->fw->size; in qlcnic_validate_header()
796 qlcnic_validate_bootld(struct qlcnic_adapter *adapter) in qlcnic_validate_bootld() argument
801 const u8 *unirom = adapter->fw->data; in qlcnic_validate_bootld()
804 temp = *((__le32 *)&unirom[adapter->file_prd_off] + in qlcnic_validate_bootld()
815 if (adapter->fw->size < tab_size) in qlcnic_validate_bootld()
824 if (adapter->fw->size < data_size) in qlcnic_validate_bootld()
831 qlcnic_validate_fw(struct qlcnic_adapter *adapter) in qlcnic_validate_fw() argument
835 const u8 *unirom = adapter->fw->data; in qlcnic_validate_fw()
839 temp = *((__le32 *)&unirom[adapter->file_prd_off] + in qlcnic_validate_fw()
850 if (adapter->fw->size < tab_size) in qlcnic_validate_fw()
858 if (adapter->fw->size < data_size) in qlcnic_validate_fw()
865 qlcnic_validate_product_offs(struct qlcnic_adapter *adapter) in qlcnic_validate_product_offs() argument
868 const u8 *unirom = adapter->fw->data; in qlcnic_validate_product_offs()
869 int mn_present = qlcnic_has_mn(adapter); in qlcnic_validate_product_offs()
882 if (adapter->fw->size < tab_size) in qlcnic_validate_product_offs()
889 u8 chiprev = adapter->ahw->revision_id; in qlcnic_validate_product_offs()
903 adapter->file_prd_off = offs; in qlcnic_validate_product_offs()
915 qlcnic_validate_unified_romimage(struct qlcnic_adapter *adapter) in qlcnic_validate_unified_romimage() argument
917 if (qlcnic_validate_header(adapter)) { in qlcnic_validate_unified_romimage()
918 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
923 if (qlcnic_validate_product_offs(adapter)) { in qlcnic_validate_unified_romimage()
924 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
929 if (qlcnic_validate_bootld(adapter)) { in qlcnic_validate_unified_romimage()
930 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
935 if (qlcnic_validate_fw(adapter)) { in qlcnic_validate_unified_romimage()
936 dev_err(&adapter->pdev->dev, in qlcnic_validate_unified_romimage()
945 struct uni_data_desc *qlcnic_get_data_desc(struct qlcnic_adapter *adapter, in qlcnic_get_data_desc() argument
948 const u8 *unirom = adapter->fw->data; in qlcnic_get_data_desc()
953 temp = *((__le32 *)&unirom[adapter->file_prd_off] + idx_offset); in qlcnic_get_data_desc()
968 qlcnic_get_bootld_offs(struct qlcnic_adapter *adapter) in qlcnic_get_bootld_offs() argument
973 data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_BOOTLD, in qlcnic_get_bootld_offs()
976 if (adapter->ahw->fw_type == QLCNIC_UNIFIED_ROMIMAGE) in qlcnic_get_bootld_offs()
979 return (u8 *)&adapter->fw->data[offs]; in qlcnic_get_bootld_offs()
983 qlcnic_get_fw_offs(struct qlcnic_adapter *adapter) in qlcnic_get_fw_offs() argument
988 data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_FW, in qlcnic_get_fw_offs()
990 if (adapter->ahw->fw_type == QLCNIC_UNIFIED_ROMIMAGE) in qlcnic_get_fw_offs()
993 return (u8 *)&adapter->fw->data[offs]; in qlcnic_get_fw_offs()
996 static u32 qlcnic_get_fw_size(struct qlcnic_adapter *adapter) in qlcnic_get_fw_size() argument
999 const u8 *unirom = adapter->fw->data; in qlcnic_get_fw_size()
1001 data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_FW, in qlcnic_get_fw_size()
1004 if (adapter->ahw->fw_type == QLCNIC_UNIFIED_ROMIMAGE) in qlcnic_get_fw_size()
1010 static u32 qlcnic_get_fw_version(struct qlcnic_adapter *adapter) in qlcnic_get_fw_version() argument
1013 const struct firmware *fw = adapter->fw; in qlcnic_get_fw_version()
1019 if (adapter->ahw->fw_type != QLCNIC_UNIFIED_ROMIMAGE) { in qlcnic_get_fw_version()
1024 fw_data_desc = qlcnic_get_data_desc(adapter, QLCNIC_UNI_DIR_SECT_FW, in qlcnic_get_fw_version()
1043 static u32 qlcnic_get_bios_version(struct qlcnic_adapter *adapter) in qlcnic_get_bios_version() argument
1045 const struct firmware *fw = adapter->fw; in qlcnic_get_bios_version()
1046 u32 bios_ver, prd_off = adapter->file_prd_off; in qlcnic_get_bios_version()
1050 if (adapter->ahw->fw_type != QLCNIC_UNIFIED_ROMIMAGE) { in qlcnic_get_bios_version()
1061 static void qlcnic_rom_lock_recovery(struct qlcnic_adapter *adapter) in qlcnic_rom_lock_recovery() argument
1063 if (qlcnic_pcie_sem_lock(adapter, 2, QLCNIC_ROM_LOCK_ID)) in qlcnic_rom_lock_recovery()
1064 dev_info(&adapter->pdev->dev, "Resetting rom_lock\n"); in qlcnic_rom_lock_recovery()
1066 qlcnic_pcie_sem_unlock(adapter, 2); in qlcnic_rom_lock_recovery()
1070 qlcnic_check_fw_hearbeat(struct qlcnic_adapter *adapter) in qlcnic_check_fw_hearbeat() argument
1075 adapter->heartbeat = QLC_SHARED_REG_RD32(adapter, in qlcnic_check_fw_hearbeat()
1080 heartbeat = QLC_SHARED_REG_RD32(adapter, in qlcnic_check_fw_hearbeat()
1082 if (heartbeat != adapter->heartbeat) { in qlcnic_check_fw_hearbeat()
1092 qlcnic_need_fw_reset(struct qlcnic_adapter *adapter) in qlcnic_need_fw_reset() argument
1094 if ((adapter->flags & QLCNIC_FW_HANG) || in qlcnic_need_fw_reset()
1095 qlcnic_check_fw_hearbeat(adapter)) { in qlcnic_need_fw_reset()
1096 qlcnic_rom_lock_recovery(adapter); in qlcnic_need_fw_reset()
1100 if (adapter->need_fw_reset) in qlcnic_need_fw_reset()
1103 if (adapter->fw) in qlcnic_need_fw_reset()
1115 qlcnic_load_firmware(struct qlcnic_adapter *adapter) in qlcnic_load_firmware() argument
1119 const struct firmware *fw = adapter->fw; in qlcnic_load_firmware()
1120 struct pci_dev *pdev = adapter->pdev; in qlcnic_load_firmware()
1123 fw_name[adapter->ahw->fw_type]); in qlcnic_load_firmware()
1130 ptr64 = (__le64 *)qlcnic_get_bootld_offs(adapter); in qlcnic_load_firmware()
1136 if (qlcnic_pci_mem_write_2M(adapter, flashaddr, data)) in qlcnic_load_firmware()
1142 size = qlcnic_get_fw_size(adapter) / 8; in qlcnic_load_firmware()
1144 ptr64 = (__le64 *)qlcnic_get_fw_offs(adapter); in qlcnic_load_firmware()
1150 if (qlcnic_pci_mem_write_2M(adapter, in qlcnic_load_firmware()
1157 size = qlcnic_get_fw_size(adapter) % 8; in qlcnic_load_firmware()
1161 if (qlcnic_pci_mem_write_2M(adapter, in qlcnic_load_firmware()
1172 ret = qlcnic_get_flt_entry(adapter, QLCNIC_BOOTLD_REGION, in qlcnic_load_firmware()
1185 if (qlcnic_rom_fast_read(adapter, in qlcnic_load_firmware()
1188 if (qlcnic_rom_fast_read(adapter, in qlcnic_load_firmware()
1194 if (qlcnic_pci_mem_write_2M(adapter, in qlcnic_load_firmware()
1203 QLCWR32(adapter, QLCNIC_CRB_PEG_NET_0 + 0x18, 0x1020); in qlcnic_load_firmware()
1204 QLCWR32(adapter, QLCNIC_ROMUSB_GLB_SW_RESET, 0x80001e); in qlcnic_load_firmware()
1209 qlcnic_validate_firmware(struct qlcnic_adapter *adapter) in qlcnic_validate_firmware() argument
1213 struct pci_dev *pdev = adapter->pdev; in qlcnic_validate_firmware()
1214 const struct firmware *fw = adapter->fw; in qlcnic_validate_firmware()
1215 u8 fw_type = adapter->ahw->fw_type; in qlcnic_validate_firmware()
1218 if (qlcnic_validate_unified_romimage(adapter)) in qlcnic_validate_firmware()
1233 val = qlcnic_get_fw_version(adapter); in qlcnic_validate_firmware()
1243 val = qlcnic_get_bios_version(adapter); in qlcnic_validate_firmware()
1244 qlcnic_rom_fast_read(adapter, QLCNIC_BIOS_VERSION_OFFSET, (int *)&bios); in qlcnic_validate_firmware()
1251 QLC_SHARED_REG_WR32(adapter, QLCNIC_FW_IMG_VALID, QLCNIC_BDINFO_MAGIC); in qlcnic_validate_firmware()
1256 qlcnic_get_next_fwtype(struct qlcnic_adapter *adapter) in qlcnic_get_next_fwtype() argument
1260 switch (adapter->ahw->fw_type) { in qlcnic_get_next_fwtype()
1271 adapter->ahw->fw_type = fw_type; in qlcnic_get_next_fwtype()
1276 void qlcnic_request_firmware(struct qlcnic_adapter *adapter) in qlcnic_request_firmware() argument
1278 struct pci_dev *pdev = adapter->pdev; in qlcnic_request_firmware()
1281 adapter->ahw->fw_type = QLCNIC_UNKNOWN_ROMIMAGE; in qlcnic_request_firmware()
1284 qlcnic_get_next_fwtype(adapter); in qlcnic_request_firmware()
1286 if (adapter->ahw->fw_type == QLCNIC_FLASH_ROMIMAGE) { in qlcnic_request_firmware()
1287 adapter->fw = NULL; in qlcnic_request_firmware()
1289 rc = request_firmware(&adapter->fw, in qlcnic_request_firmware()
1290 fw_name[adapter->ahw->fw_type], in qlcnic_request_firmware()
1295 rc = qlcnic_validate_firmware(adapter); in qlcnic_request_firmware()
1297 release_firmware(adapter->fw); in qlcnic_request_firmware()
1306 qlcnic_release_firmware(struct qlcnic_adapter *adapter) in qlcnic_release_firmware() argument
1308 release_firmware(adapter->fw); in qlcnic_release_firmware()
1309 adapter->fw = NULL; in qlcnic_release_firmware()