Lines Matching refs:vha

47 qla8044_rd_direct(struct scsi_qla_host *vha,  in qla8044_rd_direct()  argument
50 struct qla_hw_data *ha = vha->hw; in qla8044_rd_direct()
59 qla8044_wr_direct(struct scsi_qla_host *vha, in qla8044_wr_direct() argument
63 struct qla_hw_data *ha = vha->hw; in qla8044_wr_direct()
70 qla8044_set_win_base(scsi_qla_host_t *vha, uint32_t addr) in qla8044_set_win_base() argument
74 struct qla_hw_data *ha = vha->hw; in qla8044_set_win_base()
80 ql_log(ql_log_warn, vha, 0xb087, in qla8044_set_win_base()
90 qla8044_rd_reg_indirect(scsi_qla_host_t *vha, uint32_t addr, uint32_t *data) in qla8044_rd_reg_indirect() argument
93 struct qla_hw_data *ha = vha->hw; in qla8044_rd_reg_indirect()
95 ret_val = qla8044_set_win_base(vha, addr); in qla8044_rd_reg_indirect()
99 ql_log(ql_log_warn, vha, 0xb088, in qla8044_rd_reg_indirect()
105 qla8044_wr_reg_indirect(scsi_qla_host_t *vha, uint32_t addr, uint32_t data) in qla8044_wr_reg_indirect() argument
108 struct qla_hw_data *ha = vha->hw; in qla8044_wr_reg_indirect()
110 ret_val = qla8044_set_win_base(vha, addr); in qla8044_wr_reg_indirect()
114 ql_log(ql_log_warn, vha, 0xb089, in qla8044_wr_reg_indirect()
129 qla8044_read_write_crb_reg(struct scsi_qla_host *vha, in qla8044_read_write_crb_reg() argument
134 qla8044_rd_reg_indirect(vha, raddr, &value); in qla8044_read_write_crb_reg()
135 qla8044_wr_reg_indirect(vha, waddr, value); in qla8044_read_write_crb_reg()
139 qla8044_poll_wait_for_ready(struct scsi_qla_host *vha, uint32_t addr1, in qla8044_poll_wait_for_ready() argument
148 qla8044_rd_reg_indirect(vha, addr1, &temp); in qla8044_poll_wait_for_ready()
152 ql_log(ql_log_warn, vha, 0xb151, in qla8044_poll_wait_for_ready()
162 qla8044_ipmdio_rd_reg(struct scsi_qla_host *vha, in qla8044_ipmdio_rd_reg() argument
168 ret = qla8044_poll_wait_for_ready(vha, addr1, mask); in qla8044_ipmdio_rd_reg()
173 qla8044_wr_reg_indirect(vha, addr1, temp); in qla8044_ipmdio_rd_reg()
175 ret = qla8044_poll_wait_for_ready(vha, addr1, mask); in qla8044_ipmdio_rd_reg()
179 qla8044_rd_reg_indirect(vha, addr3, &ret); in qla8044_ipmdio_rd_reg()
186 qla8044_poll_wait_ipmdio_bus_idle(struct scsi_qla_host *vha, in qla8044_poll_wait_ipmdio_bus_idle() argument
195 temp = qla8044_ipmdio_rd_reg(vha, addr1, addr3, mask, addr2); in qla8044_poll_wait_ipmdio_bus_idle()
199 ql_log(ql_log_warn, vha, 0xb152, in qla8044_poll_wait_ipmdio_bus_idle()
209 qla8044_ipmdio_wr_reg(struct scsi_qla_host *vha, uint32_t addr1, in qla8044_ipmdio_wr_reg() argument
214 ret = qla8044_poll_wait_for_ready(vha, addr1, mask); in qla8044_ipmdio_wr_reg()
218 qla8044_wr_reg_indirect(vha, addr3, value); in qla8044_ipmdio_wr_reg()
219 qla8044_wr_reg_indirect(vha, addr1, addr); in qla8044_ipmdio_wr_reg()
221 ret = qla8044_poll_wait_for_ready(vha, addr1, mask); in qla8044_ipmdio_wr_reg()
238 qla8044_rmw_crb_reg(struct scsi_qla_host *vha, in qla8044_rmw_crb_reg() argument
244 value = vha->reset_tmplt.array[p_rmw_hdr->index_a]; in qla8044_rmw_crb_reg()
246 qla8044_rd_reg_indirect(vha, raddr, &value); in qla8044_rmw_crb_reg()
252 qla8044_wr_reg_indirect(vha, waddr, value); in qla8044_rmw_crb_reg()
257 qla8044_set_qsnt_ready(struct scsi_qla_host *vha) in qla8044_set_qsnt_ready() argument
260 struct qla_hw_data *ha = vha->hw; in qla8044_set_qsnt_ready()
262 qsnt_state = qla8044_rd_direct(vha, QLA8044_CRB_DRV_STATE_INDEX); in qla8044_set_qsnt_ready()
264 qla8044_wr_direct(vha, QLA8044_CRB_DRV_STATE_INDEX, qsnt_state); in qla8044_set_qsnt_ready()
265 ql_log(ql_log_info, vha, 0xb08e, "%s(%ld): qsnt_state: 0x%08x\n", in qla8044_set_qsnt_ready()
266 __func__, vha->host_no, qsnt_state); in qla8044_set_qsnt_ready()
270 qla8044_clear_qsnt_ready(struct scsi_qla_host *vha) in qla8044_clear_qsnt_ready() argument
273 struct qla_hw_data *ha = vha->hw; in qla8044_clear_qsnt_ready()
275 qsnt_state = qla8044_rd_direct(vha, QLA8044_CRB_DRV_STATE_INDEX); in qla8044_clear_qsnt_ready()
277 qla8044_wr_direct(vha, QLA8044_CRB_DRV_STATE_INDEX, qsnt_state); in qla8044_clear_qsnt_ready()
278 ql_log(ql_log_info, vha, 0xb08f, "%s(%ld): qsnt_state: 0x%08x\n", in qla8044_clear_qsnt_ready()
279 __func__, vha->host_no, qsnt_state); in qla8044_clear_qsnt_ready()
308 qla8044_lock_recovery(struct scsi_qla_host *vha) in qla8044_lock_recovery() argument
311 struct qla_hw_data *ha = vha->hw; in qla8044_lock_recovery()
331 ql_dbg(ql_dbg_p3p, vha, 0xb08B, "%s:%d: IDC Lock recovery initiated\n" in qla8044_lock_recovery()
362 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); in qla8044_idc_lock() local
385 ql_log(ql_log_warn, vha, 0xb114, in qla8044_idc_lock()
395 ql_dbg(ql_dbg_p3p, vha, 0xb115, in qla8044_idc_lock()
402 if (qla8044_lock_recovery(vha) == QLA_SUCCESS) { in qla8044_idc_lock()
405 ql_dbg(ql_dbg_p3p, vha, 0xb116, in qla8044_idc_lock()
414 ql_dbg(ql_dbg_p3p, vha, 0xb08a, in qla8044_idc_lock()
430 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); in qla8044_idc_unlock() local
435 ql_log(ql_log_warn, vha, 0xb118, in qla8044_idc_unlock()
448 qla8044_flash_lock(scsi_qla_host_t *vha) in qla8044_flash_lock() argument
454 struct qla_hw_data *ha = vha->hw; in qla8044_flash_lock()
464 ql_log(ql_log_warn, vha, 0xb113, in qla8044_flash_lock()
477 qla8044_flash_unlock(scsi_qla_host_t *vha) in qla8044_flash_unlock() argument
479 struct qla_hw_data *ha = vha->hw; in qla8044_flash_unlock()
488 void qla8044_flash_lock_recovery(struct scsi_qla_host *vha) in qla8044_flash_lock_recovery() argument
491 if (qla8044_flash_lock(vha)) { in qla8044_flash_lock_recovery()
493 ql_log(ql_log_warn, vha, 0xb120, "Resetting flash_lock\n"); in qla8044_flash_lock_recovery()
501 qla8044_flash_unlock(vha); in qla8044_flash_lock_recovery()
508 qla8044_read_flash_data(scsi_qla_host_t *vha, uint8_t *p_data, in qla8044_read_flash_data() argument
514 if (qla8044_flash_lock(vha) != QLA_SUCCESS) { in qla8044_read_flash_data()
520 ql_log(ql_log_warn, vha, 0xb117, in qla8044_read_flash_data()
527 if (qla8044_wr_reg_indirect(vha, QLA8044_FLASH_DIRECT_WINDOW, in qla8044_read_flash_data()
529 ql_log(ql_log_warn, vha, 0xb119, in qla8044_read_flash_data()
537 ret_val = qla8044_rd_reg_indirect(vha, in qla8044_read_flash_data()
541 ql_log(ql_log_warn, vha, 0xb08c, in qla8044_read_flash_data()
553 qla8044_flash_unlock(vha); in qla8044_read_flash_data()
563 qla8044_read_optrom_data(struct scsi_qla_host *vha, uint8_t *buf, in qla8044_read_optrom_data() argument
566 scsi_block_requests(vha->host); in qla8044_read_optrom_data()
567 if (qla8044_read_flash_data(vha, (uint8_t *)buf, offset, length / 4) in qla8044_read_optrom_data()
569 ql_log(ql_log_warn, vha, 0xb08d, in qla8044_read_optrom_data()
573 scsi_unblock_requests(vha->host); in qla8044_read_optrom_data()
578 qla8044_need_reset(struct scsi_qla_host *vha) in qla8044_need_reset() argument
582 struct qla_hw_data *ha = vha->hw; in qla8044_need_reset()
584 drv_active = qla8044_rd_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX); in qla8044_need_reset()
585 drv_state = qla8044_rd_direct(vha, QLA8044_CRB_DRV_STATE_INDEX); in qla8044_need_reset()
604 qla8044_write_list(struct scsi_qla_host *vha, in qla8044_write_list() argument
614 qla8044_wr_reg_indirect(vha, p_entry->arg1, p_entry->arg2); in qla8044_write_list()
630 qla8044_read_write_list(struct scsi_qla_host *vha, in qla8044_read_write_list() argument
640 qla8044_read_write_crb_reg(vha, p_entry->arg1, in qla8044_read_write_list()
660 qla8044_poll_reg(struct scsi_qla_host *vha, uint32_t addr, in qla8044_poll_reg() argument
668 ret_val = qla8044_rd_reg_indirect(vha, addr, &value); in qla8044_poll_reg()
681 ret_val = qla8044_rd_reg_indirect(vha, addr, &value); in qla8044_poll_reg()
694 vha->reset_tmplt.seq_error++; in qla8044_poll_reg()
695 ql_log(ql_log_fatal, vha, 0xb090, in qla8044_poll_reg()
713 qla8044_poll_list(struct scsi_qla_host *vha, in qla8044_poll_list() argument
735 qla8044_poll_reg(vha, p_entry->arg1, in qla8044_poll_list()
740 if (qla8044_poll_reg(vha, in qla8044_poll_list()
749 qla8044_rd_reg_indirect(vha, in qla8044_poll_list()
751 qla8044_rd_reg_indirect(vha, in qla8044_poll_list()
769 qla8044_poll_write_list(struct scsi_qla_host *vha, in qla8044_poll_write_list() argument
786 qla8044_wr_reg_indirect(vha, in qla8044_poll_write_list()
788 qla8044_wr_reg_indirect(vha, in qla8044_poll_write_list()
791 if (qla8044_poll_reg(vha, in qla8044_poll_write_list()
795 ql_dbg(ql_dbg_p3p, vha, 0xb091, in qla8044_poll_write_list()
798 ql_dbg(ql_dbg_p3p, vha, 0xb092, in qla8044_poll_write_list()
800 vha->reset_tmplt.seq_index); in qla8044_poll_write_list()
816 qla8044_read_modify_write(struct scsi_qla_host *vha, in qla8044_read_modify_write() argument
830 qla8044_rmw_crb_reg(vha, p_entry->arg1, in qla8044_read_modify_write()
846 void qla8044_pause(struct scsi_qla_host *vha, in qla8044_pause() argument
861 qla8044_template_end(struct scsi_qla_host *vha, in qla8044_template_end() argument
864 vha->reset_tmplt.template_end = 1; in qla8044_template_end()
866 if (vha->reset_tmplt.seq_error == 0) { in qla8044_template_end()
867 ql_dbg(ql_dbg_p3p, vha, 0xb093, in qla8044_template_end()
870 ql_log(ql_log_fatal, vha, 0xb094, in qla8044_template_end()
886 qla8044_poll_read_list(struct scsi_qla_host *vha, in qla8044_poll_read_list() argument
905 qla8044_wr_reg_indirect(vha, p_entry->ar_addr, in qla8044_poll_read_list()
908 if (qla8044_poll_reg(vha, p_entry->ar_addr, delay, in qla8044_poll_read_list()
910 ql_dbg(ql_dbg_p3p, vha, 0xb095, in qla8044_poll_read_list()
913 ql_dbg(ql_dbg_p3p, vha, 0xb096, in qla8044_poll_read_list()
916 vha->reset_tmplt.seq_index); in qla8044_poll_read_list()
918 index = vha->reset_tmplt.array_index; in qla8044_poll_read_list()
919 qla8044_rd_reg_indirect(vha, in qla8044_poll_read_list()
921 vha->reset_tmplt.array[index++] = value; in qla8044_poll_read_list()
923 vha->reset_tmplt.array_index = 1; in qla8044_poll_read_list()
941 qla8044_process_reset_template(struct scsi_qla_host *vha, in qla8044_process_reset_template() argument
948 vha->reset_tmplt.seq_end = 0; in qla8044_process_reset_template()
949 vha->reset_tmplt.template_end = 0; in qla8044_process_reset_template()
950 entries = vha->reset_tmplt.hdr->entries; in qla8044_process_reset_template()
951 index = vha->reset_tmplt.seq_index; in qla8044_process_reset_template()
953 for (; (!vha->reset_tmplt.seq_end) && (index < entries); index++) { in qla8044_process_reset_template()
959 qla8044_write_list(vha, p_hdr); in qla8044_process_reset_template()
962 qla8044_read_write_list(vha, p_hdr); in qla8044_process_reset_template()
965 qla8044_poll_list(vha, p_hdr); in qla8044_process_reset_template()
968 qla8044_poll_write_list(vha, p_hdr); in qla8044_process_reset_template()
971 qla8044_read_modify_write(vha, p_hdr); in qla8044_process_reset_template()
974 qla8044_pause(vha, p_hdr); in qla8044_process_reset_template()
977 vha->reset_tmplt.seq_end = 1; in qla8044_process_reset_template()
980 qla8044_template_end(vha, p_hdr); in qla8044_process_reset_template()
983 qla8044_poll_read_list(vha, p_hdr); in qla8044_process_reset_template()
986 ql_log(ql_log_fatal, vha, 0xb097, in qla8044_process_reset_template()
996 vha->reset_tmplt.seq_index = index; in qla8044_process_reset_template()
1000 qla8044_process_init_seq(struct scsi_qla_host *vha) in qla8044_process_init_seq() argument
1002 qla8044_process_reset_template(vha, in qla8044_process_init_seq()
1003 vha->reset_tmplt.init_offset); in qla8044_process_init_seq()
1004 if (vha->reset_tmplt.seq_end != 1) in qla8044_process_init_seq()
1005 ql_log(ql_log_fatal, vha, 0xb098, in qla8044_process_init_seq()
1011 qla8044_process_stop_seq(struct scsi_qla_host *vha) in qla8044_process_stop_seq() argument
1013 vha->reset_tmplt.seq_index = 0; in qla8044_process_stop_seq()
1014 qla8044_process_reset_template(vha, vha->reset_tmplt.stop_offset); in qla8044_process_stop_seq()
1015 if (vha->reset_tmplt.seq_end != 1) in qla8044_process_stop_seq()
1016 ql_log(ql_log_fatal, vha, 0xb099, in qla8044_process_stop_seq()
1021 qla8044_process_start_seq(struct scsi_qla_host *vha) in qla8044_process_start_seq() argument
1023 qla8044_process_reset_template(vha, vha->reset_tmplt.start_offset); in qla8044_process_start_seq()
1024 if (vha->reset_tmplt.template_end != 1) in qla8044_process_start_seq()
1025 ql_log(ql_log_fatal, vha, 0xb09a, in qla8044_process_start_seq()
1031 qla8044_lockless_flash_read_u32(struct scsi_qla_host *vha, in qla8044_lockless_flash_read_u32() argument
1043 ql_log(ql_log_fatal, vha, 0xb09b, "%s: Illegal addr = 0x%x\n", in qla8044_lockless_flash_read_u32()
1049 ret_val = qla8044_wr_reg_indirect(vha, in qla8044_lockless_flash_read_u32()
1053 ql_log(ql_log_fatal, vha, 0xb09c, in qla8044_lockless_flash_read_u32()
1064 ret_val = qla8044_rd_reg_indirect(vha, in qla8044_lockless_flash_read_u32()
1067 ql_log(ql_log_fatal, vha, 0xb09d, in qla8044_lockless_flash_read_u32()
1078 ret_val = qla8044_wr_reg_indirect(vha, in qla8044_lockless_flash_read_u32()
1081 ql_log(ql_log_fatal, vha, 0xb09f, in qla8044_lockless_flash_read_u32()
1093 ret_val = qla8044_rd_reg_indirect(vha, in qla8044_lockless_flash_read_u32()
1096 ql_log(ql_log_fatal, vha, 0xb0a0, in qla8044_lockless_flash_read_u32()
1122 qla8044_ms_mem_write_128b(struct scsi_qla_host *vha, in qla8044_ms_mem_write_128b() argument
1128 struct qla_hw_data *ha = vha->hw; in qla8044_ms_mem_write_128b()
1138 ret_val = qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_ADDR_HI, 0); in qla8044_ms_mem_write_128b()
1140 ql_log(ql_log_fatal, vha, 0xb0a1, in qla8044_ms_mem_write_128b()
1154 ret_val = qla8044_wr_reg_indirect(vha, in qla8044_ms_mem_write_128b()
1158 ret_val += qla8044_wr_reg_indirect(vha, in qla8044_ms_mem_write_128b()
1160 ret_val += qla8044_wr_reg_indirect(vha, in qla8044_ms_mem_write_128b()
1162 ret_val += qla8044_wr_reg_indirect(vha, in qla8044_ms_mem_write_128b()
1164 ret_val += qla8044_wr_reg_indirect(vha, in qla8044_ms_mem_write_128b()
1167 ql_log(ql_log_fatal, vha, 0xb0a2, in qla8044_ms_mem_write_128b()
1174 ret_val = qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_CTRL, in qla8044_ms_mem_write_128b()
1176 ret_val += qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_CTRL, in qla8044_ms_mem_write_128b()
1179 ql_log(ql_log_fatal, vha, 0xb0a3, in qla8044_ms_mem_write_128b()
1185 ret_val = qla8044_rd_reg_indirect(vha, in qla8044_ms_mem_write_128b()
1188 ql_log(ql_log_fatal, vha, 0xb0a4, in qla8044_ms_mem_write_128b()
1199 ql_log(ql_log_fatal, vha, 0xb0a5, in qla8044_ms_mem_write_128b()
1215 qla8044_copy_bootloader(struct scsi_qla_host *vha) in qla8044_copy_bootloader() argument
1221 struct qla_hw_data *ha = vha->hw; in qla8044_copy_bootloader()
1236 ql_log(ql_log_fatal, vha, 0xb0a6, in qla8044_copy_bootloader()
1243 ret_val = qla8044_lockless_flash_read_u32(vha, src, in qla8044_copy_bootloader()
1246 ql_log(ql_log_fatal, vha, 0xb0a7, in qla8044_copy_bootloader()
1250 ql_dbg(ql_dbg_p3p, vha, 0xb0a8, "%s: Read F/W from flash!\n", in qla8044_copy_bootloader()
1254 ret_val = qla8044_ms_mem_write_128b(vha, dest, in qla8044_copy_bootloader()
1257 ql_log(ql_log_fatal, vha, 0xb0a9, in qla8044_copy_bootloader()
1261 ql_dbg(ql_dbg_p3p, vha, 0xb0aa, in qla8044_copy_bootloader()
1273 qla8044_restart(struct scsi_qla_host *vha) in qla8044_restart() argument
1276 struct qla_hw_data *ha = vha->hw; in qla8044_restart()
1278 qla8044_process_stop_seq(vha); in qla8044_restart()
1282 qla8044_get_minidump(vha); in qla8044_restart()
1284 ql_log(ql_log_fatal, vha, 0xb14c, in qla8044_restart()
1287 qla8044_process_init_seq(vha); in qla8044_restart()
1289 if (qla8044_copy_bootloader(vha)) { in qla8044_restart()
1290 ql_log(ql_log_fatal, vha, 0xb0ab, in qla8044_restart()
1302 qla8044_process_start_seq(vha); in qla8044_restart()
1317 qla8044_check_cmd_peg_status(struct scsi_qla_host *vha) in qla8044_check_cmd_peg_status() argument
1321 struct qla_hw_data *ha = vha->hw; in qla8044_check_cmd_peg_status()
1326 ql_dbg(ql_dbg_p3p, vha, 0xb0ac, in qla8044_check_cmd_peg_status()
1339 qla8044_start_firmware(struct scsi_qla_host *vha) in qla8044_start_firmware() argument
1343 if (qla8044_restart(vha)) { in qla8044_start_firmware()
1344 ql_log(ql_log_fatal, vha, 0xb0ad, in qla8044_start_firmware()
1350 ql_dbg(ql_dbg_p3p, vha, 0xb0af, in qla8044_start_firmware()
1353 ret_val = qla8044_check_cmd_peg_status(vha); in qla8044_start_firmware()
1355 ql_log(ql_log_fatal, vha, 0xb0b0, in qla8044_start_firmware()
1368 struct scsi_qla_host *vha = pci_get_drvdata(ha->pdev); in qla8044_clear_drv_active() local
1370 drv_active = qla8044_rd_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX); in qla8044_clear_drv_active()
1373 ql_log(ql_log_info, vha, 0xb0b1, in qla8044_clear_drv_active()
1375 __func__, vha->host_no, drv_active); in qla8044_clear_drv_active()
1377 qla8044_wr_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX, drv_active); in qla8044_clear_drv_active()
1387 qla8044_device_bootstrap(struct scsi_qla_host *vha) in qla8044_device_bootstrap() argument
1394 struct qla_hw_data *ha = vha->hw; in qla8044_device_bootstrap()
1396 need_reset = qla8044_need_reset(vha); in qla8044_device_bootstrap()
1399 old_count = qla8044_rd_direct(vha, in qla8044_device_bootstrap()
1405 count = qla8044_rd_direct(vha, in qla8044_device_bootstrap()
1412 qla8044_flash_lock_recovery(vha); in qla8044_device_bootstrap()
1416 qla8044_flash_lock_recovery(vha); in qla8044_device_bootstrap()
1420 ql_log(ql_log_info, vha, 0xb0b2, in qla8044_device_bootstrap()
1422 qla8044_wr_direct(vha, QLA8044_CRB_DEV_STATE_INDEX, in qla8044_device_bootstrap()
1426 rval = qla8044_start_firmware(vha); in qla8044_device_bootstrap()
1430 ql_log(ql_log_info, vha, 0xb0b3, in qla8044_device_bootstrap()
1433 qla8044_wr_direct(vha, QLA8044_CRB_DEV_STATE_INDEX, in qla8044_device_bootstrap()
1448 ql_log(ql_log_info, vha, 0xb0b4, in qla8044_device_bootstrap()
1450 qla8044_wr_direct(vha, QLA8044_CRB_DEV_STATE_INDEX, QLA8XXX_DEV_READY); in qla8044_device_bootstrap()
1457 qla8044_dump_reset_seq_hdr(struct scsi_qla_host *vha) in qla8044_dump_reset_seq_hdr() argument
1461 if (!vha->reset_tmplt.buff) { in qla8044_dump_reset_seq_hdr()
1462 ql_log(ql_log_fatal, vha, 0xb0b5, in qla8044_dump_reset_seq_hdr()
1467 phdr = vha->reset_tmplt.buff; in qla8044_dump_reset_seq_hdr()
1468 ql_dbg(ql_dbg_p3p, vha, 0xb0b6, in qla8044_dump_reset_seq_hdr()
1486 qla8044_reset_seq_checksum_test(struct scsi_qla_host *vha) in qla8044_reset_seq_checksum_test() argument
1489 uint16_t *buff = (uint16_t *)vha->reset_tmplt.buff; in qla8044_reset_seq_checksum_test()
1490 int u16_count = vha->reset_tmplt.hdr->size / sizeof(uint16_t); in qla8044_reset_seq_checksum_test()
1502 ql_log(ql_log_fatal, vha, 0xb0b7, in qla8044_reset_seq_checksum_test()
1515 qla8044_read_reset_template(struct scsi_qla_host *vha) in qla8044_read_reset_template() argument
1520 vha->reset_tmplt.seq_error = 0; in qla8044_read_reset_template()
1521 vha->reset_tmplt.buff = vmalloc(QLA8044_RESTART_TEMPLATE_SIZE); in qla8044_read_reset_template()
1522 if (vha->reset_tmplt.buff == NULL) { in qla8044_read_reset_template()
1523 ql_log(ql_log_fatal, vha, 0xb0b8, in qla8044_read_reset_template()
1529 p_buff = vha->reset_tmplt.buff; in qla8044_read_reset_template()
1535 ql_dbg(ql_dbg_p3p, vha, 0xb0b9, in qla8044_read_reset_template()
1540 if (qla8044_read_flash_data(vha, p_buff, addr, tmplt_hdr_def_size)) { in qla8044_read_reset_template()
1541 ql_log(ql_log_fatal, vha, 0xb0ba, in qla8044_read_reset_template()
1546 vha->reset_tmplt.hdr = in qla8044_read_reset_template()
1547 (struct qla8044_reset_template_hdr *) vha->reset_tmplt.buff; in qla8044_read_reset_template()
1550 tmplt_hdr_size = vha->reset_tmplt.hdr->hdr_size/sizeof(uint32_t); in qla8044_read_reset_template()
1552 (vha->reset_tmplt.hdr->signature != RESET_TMPLT_HDR_SIGNATURE)) { in qla8044_read_reset_template()
1553 ql_log(ql_log_fatal, vha, 0xb0bb, in qla8044_read_reset_template()
1560 addr = QLA8044_RESET_TEMPLATE_ADDR + vha->reset_tmplt.hdr->hdr_size; in qla8044_read_reset_template()
1561 p_buff = vha->reset_tmplt.buff + vha->reset_tmplt.hdr->hdr_size; in qla8044_read_reset_template()
1562 tmplt_hdr_def_size = (vha->reset_tmplt.hdr->size - in qla8044_read_reset_template()
1563 vha->reset_tmplt.hdr->hdr_size)/sizeof(uint32_t); in qla8044_read_reset_template()
1565 ql_dbg(ql_dbg_p3p, vha, 0xb0bc, in qla8044_read_reset_template()
1567 __func__, vha->reset_tmplt.hdr->size); in qla8044_read_reset_template()
1570 if (qla8044_read_flash_data(vha, p_buff, addr, tmplt_hdr_def_size)) { in qla8044_read_reset_template()
1571 ql_log(ql_log_fatal, vha, 0xb0bd, in qla8044_read_reset_template()
1577 if (qla8044_reset_seq_checksum_test(vha)) { in qla8044_read_reset_template()
1578 ql_log(ql_log_fatal, vha, 0xb0be, in qla8044_read_reset_template()
1583 ql_dbg(ql_dbg_p3p, vha, 0xb0bf, in qla8044_read_reset_template()
1588 vha->reset_tmplt.init_offset = vha->reset_tmplt.buff + in qla8044_read_reset_template()
1589 vha->reset_tmplt.hdr->init_seq_offset; in qla8044_read_reset_template()
1591 vha->reset_tmplt.start_offset = vha->reset_tmplt.buff + in qla8044_read_reset_template()
1592 vha->reset_tmplt.hdr->start_seq_offset; in qla8044_read_reset_template()
1594 vha->reset_tmplt.stop_offset = vha->reset_tmplt.buff + in qla8044_read_reset_template()
1595 vha->reset_tmplt.hdr->hdr_size; in qla8044_read_reset_template()
1597 qla8044_dump_reset_seq_hdr(vha); in qla8044_read_reset_template()
1602 vfree(vha->reset_tmplt.buff); in qla8044_read_reset_template()
1609 qla8044_set_idc_dontreset(struct scsi_qla_host *vha) in qla8044_set_idc_dontreset() argument
1612 struct qla_hw_data *ha = vha->hw; in qla8044_set_idc_dontreset()
1616 ql_dbg(ql_dbg_p3p, vha, 0xb0c0, in qla8044_set_idc_dontreset()
1622 qla8044_set_rst_ready(struct scsi_qla_host *vha) in qla8044_set_rst_ready() argument
1625 struct qla_hw_data *ha = vha->hw; in qla8044_set_rst_ready()
1627 drv_state = qla8044_rd_direct(vha, QLA8044_CRB_DRV_STATE_INDEX); in qla8044_set_rst_ready()
1633 ql_log(ql_log_info, vha, 0xb0c1, in qla8044_set_rst_ready()
1635 __func__, vha->host_no, drv_state); in qla8044_set_rst_ready()
1636 qla8044_wr_direct(vha, QLA8044_CRB_DRV_STATE_INDEX, drv_state); in qla8044_set_rst_ready()
1646 qla8044_need_reset_handler(struct scsi_qla_host *vha) in qla8044_need_reset_handler() argument
1650 struct qla_hw_data *ha = vha->hw; in qla8044_need_reset_handler()
1652 ql_log(ql_log_fatal, vha, 0xb0c2, in qla8044_need_reset_handler()
1655 if (vha->flags.online) { in qla8044_need_reset_handler()
1657 qla2x00_abort_isp_cleanup(vha); in qla8044_need_reset_handler()
1658 ha->isp_ops->get_flash_version(vha, vha->req->ring); in qla8044_need_reset_handler()
1659 ha->isp_ops->nvram_config(vha); in qla8044_need_reset_handler()
1663 dev_state = qla8044_rd_direct(vha, in qla8044_need_reset_handler()
1665 drv_state = qla8044_rd_direct(vha, in qla8044_need_reset_handler()
1667 drv_active = qla8044_rd_direct(vha, in qla8044_need_reset_handler()
1670 ql_log(ql_log_info, vha, 0xb0c5, in qla8044_need_reset_handler()
1672 __func__, vha->host_no, drv_state, drv_active, dev_state); in qla8044_need_reset_handler()
1674 qla8044_set_rst_ready(vha); in qla8044_need_reset_handler()
1681 ql_log(ql_log_info, vha, 0xb0c4, in qla8044_need_reset_handler()
1691 dev_state = qla8044_rd_direct(vha, in qla8044_need_reset_handler()
1693 drv_state = qla8044_rd_direct(vha, in qla8044_need_reset_handler()
1695 drv_active = qla8044_rd_direct(vha, in qla8044_need_reset_handler()
1702 ql_log(ql_log_info, vha, 0xb0c7, in qla8044_need_reset_handler()
1704 __func__, vha->host_no, ha->portnum, in qla8044_need_reset_handler()
1707 qla8044_wr_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX, in qla8044_need_reset_handler()
1717 qla8044_device_bootstrap(vha); in qla8044_need_reset_handler()
1735 qla8044_device_bootstrap(vha); in qla8044_need_reset_handler()
1740 qla8044_set_drv_active(struct scsi_qla_host *vha) in qla8044_set_drv_active() argument
1743 struct qla_hw_data *ha = vha->hw; in qla8044_set_drv_active()
1745 drv_active = qla8044_rd_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX); in qla8044_set_drv_active()
1751 ql_log(ql_log_info, vha, 0xb0c8, in qla8044_set_drv_active()
1753 __func__, vha->host_no, drv_active); in qla8044_set_drv_active()
1754 qla8044_wr_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX, drv_active); in qla8044_set_drv_active()
1758 qla8044_check_drv_active(struct scsi_qla_host *vha) in qla8044_check_drv_active() argument
1761 struct qla_hw_data *ha = vha->hw; in qla8044_check_drv_active()
1763 drv_active = qla8044_rd_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX); in qla8044_check_drv_active()
1771 qla8044_clear_idc_dontreset(struct scsi_qla_host *vha) in qla8044_clear_idc_dontreset() argument
1774 struct qla_hw_data *ha = vha->hw; in qla8044_clear_idc_dontreset()
1778 ql_log(ql_log_info, vha, 0xb0c9, in qla8044_clear_idc_dontreset()
1785 qla8044_set_idc_ver(struct scsi_qla_host *vha) in qla8044_set_idc_ver() argument
1790 struct qla_hw_data *ha = vha->hw; in qla8044_set_idc_ver()
1792 drv_active = qla8044_rd_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX); in qla8044_set_idc_ver()
1794 idc_ver = qla8044_rd_direct(vha, in qla8044_set_idc_ver()
1798 qla8044_wr_direct(vha, QLA8044_CRB_DRV_IDC_VERSION_INDEX, in qla8044_set_idc_ver()
1800 ql_log(ql_log_info, vha, 0xb0ca, in qla8044_set_idc_ver()
1804 idc_ver = qla8044_rd_direct(vha, in qla8044_set_idc_ver()
1808 ql_log(ql_log_info, vha, 0xb0cb, in qla8044_set_idc_ver()
1830 qla8044_update_idc_reg(struct scsi_qla_host *vha) in qla8044_update_idc_reg() argument
1834 struct qla_hw_data *ha = vha->hw; in qla8044_update_idc_reg()
1836 if (vha->flags.init_done) in qla8044_update_idc_reg()
1840 qla8044_set_drv_active(vha); in qla8044_update_idc_reg()
1842 drv_active = qla8044_rd_direct(vha, in qla8044_update_idc_reg()
1848 qla8044_clear_idc_dontreset(vha); in qla8044_update_idc_reg()
1850 rval = qla8044_set_idc_ver(vha); in qla8044_update_idc_reg()
1864 qla8044_need_qsnt_handler(struct scsi_qla_host *vha) in qla8044_need_qsnt_handler() argument
1868 struct qla_hw_data *ha = vha->hw; in qla8044_need_qsnt_handler()
1870 if (vha->flags.online) in qla8044_need_qsnt_handler()
1871 qla2x00_quiesce_io(vha); in qla8044_need_qsnt_handler()
1875 qla8044_set_qsnt_ready(vha); in qla8044_need_qsnt_handler()
1879 drv_state = qla8044_rd_direct(vha, QLA8044_CRB_DRV_STATE_INDEX); in qla8044_need_qsnt_handler()
1880 drv_active = qla8044_rd_direct(vha, QLA8044_CRB_DRV_ACTIVE_INDEX); in qla8044_need_qsnt_handler()
1891 clear_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags); in qla8044_need_qsnt_handler()
1892 qla8044_wr_direct(vha, QLA8044_CRB_DEV_STATE_INDEX, in qla8044_need_qsnt_handler()
1894 qla8044_clear_qsnt_ready(vha); in qla8044_need_qsnt_handler()
1895 ql_log(ql_log_info, vha, 0xb0cc, in qla8044_need_qsnt_handler()
1903 drv_state = qla8044_rd_direct(vha, in qla8044_need_qsnt_handler()
1905 drv_active = qla8044_rd_direct(vha, in qla8044_need_qsnt_handler()
1911 dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); in qla8044_need_qsnt_handler()
1914 qla8044_wr_direct(vha, QLA8044_CRB_DEV_STATE_INDEX, in qla8044_need_qsnt_handler()
1916 ql_log(ql_log_info, vha, 0xb0cd, in qla8044_need_qsnt_handler()
1928 qla8044_device_state_handler(struct scsi_qla_host *vha) in qla8044_device_state_handler() argument
1933 struct qla_hw_data *ha = vha->hw; in qla8044_device_state_handler()
1935 rval = qla8044_update_idc_reg(vha); in qla8044_device_state_handler()
1939 dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); in qla8044_device_state_handler()
1940 ql_dbg(ql_dbg_p3p, vha, 0xb0ce, in qla8044_device_state_handler()
1952 if (qla8044_check_drv_active(vha) == QLA_SUCCESS) { in qla8044_device_state_handler()
1953 ql_log(ql_log_warn, vha, 0xb0cf, in qla8044_device_state_handler()
1958 qla8044_wr_direct(vha, in qla8044_device_state_handler()
1964 dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); in qla8044_device_state_handler()
1965 ql_log(ql_log_info, vha, 0xb0d0, in qla8044_device_state_handler()
1976 rval = qla8044_device_bootstrap(vha); in qla8044_device_state_handler()
1987 qla8044_need_reset_handler(vha); in qla8044_device_state_handler()
1991 qla8044_need_qsnt_handler(vha); in qla8044_device_state_handler()
1998 ql_log(ql_log_info, vha, 0xb0d1, in qla8044_device_state_handler()
2012 qla8xxx_dev_failed_handler(vha); in qla8044_device_state_handler()
2018 qla8xxx_dev_failed_handler(vha); in qla8044_device_state_handler()
2038 qla8044_check_temp(struct scsi_qla_host *vha) in qla8044_check_temp() argument
2043 temp = qla8044_rd_direct(vha, QLA8044_CRB_TEMP_STATE_INDEX); in qla8044_check_temp()
2048 ql_log(ql_log_warn, vha, 0xb0d2, in qla8044_check_temp()
2055 ql_log(ql_log_warn, vha, 0xb0d3, in qla8044_check_temp()
2063 int qla8044_read_temperature(scsi_qla_host_t *vha) in qla8044_read_temperature() argument
2067 temp = qla8044_rd_direct(vha, QLA8044_CRB_TEMP_STATE_INDEX); in qla8044_read_temperature()
2078 qla8044_check_fw_alive(struct scsi_qla_host *vha) in qla8044_check_fw_alive() argument
2084 fw_heartbeat_counter = qla8044_rd_direct(vha, in qla8044_check_fw_alive()
2089 ql_dbg(ql_dbg_p3p, vha, 0xb0d4, in qla8044_check_fw_alive()
2092 vha->host_no, __func__); in qla8044_check_fw_alive()
2096 if (vha->fw_heartbeat_counter == fw_heartbeat_counter) { in qla8044_check_fw_alive()
2097 vha->seconds_since_last_heartbeat++; in qla8044_check_fw_alive()
2099 if (vha->seconds_since_last_heartbeat == 2) { in qla8044_check_fw_alive()
2100 vha->seconds_since_last_heartbeat = 0; in qla8044_check_fw_alive()
2101 halt_status1 = qla8044_rd_direct(vha, in qla8044_check_fw_alive()
2103 halt_status2 = qla8044_rd_direct(vha, in qla8044_check_fw_alive()
2106 ql_log(ql_log_info, vha, 0xb0d5, in qla8044_check_fw_alive()
2111 vha->host_no, __func__, halt_status1, in qla8044_check_fw_alive()
2116 vha->seconds_since_last_heartbeat = 0; in qla8044_check_fw_alive()
2118 vha->fw_heartbeat_counter = fw_heartbeat_counter; in qla8044_check_fw_alive()
2123 qla8044_watchdog(struct scsi_qla_host *vha) in qla8044_watchdog() argument
2127 struct qla_hw_data *ha = vha->hw; in qla8044_watchdog()
2130 if (!(test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) || in qla8044_watchdog()
2131 test_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags))) { in qla8044_watchdog()
2132 dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); in qla8044_watchdog()
2134 if (qla8044_check_fw_alive(vha)) { in qla8044_watchdog()
2136 ql_log(ql_log_warn, vha, 0xb10a, in qla8044_watchdog()
2138 qla82xx_clear_pending_mbx(vha); in qla8044_watchdog()
2141 if (qla8044_check_temp(vha)) { in qla8044_watchdog()
2142 set_bit(ISP_UNRECOVERABLE, &vha->dpc_flags); in qla8044_watchdog()
2144 qla2xxx_wake_dpc(vha); in qla8044_watchdog()
2146 !test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags)) { in qla8044_watchdog()
2147 ql_log(ql_log_info, vha, 0xb0d6, in qla8044_watchdog()
2150 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla8044_watchdog()
2151 qla2xxx_wake_dpc(vha); in qla8044_watchdog()
2153 !test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags)) { in qla8044_watchdog()
2154 ql_log(ql_log_info, vha, 0xb0d7, in qla8044_watchdog()
2157 set_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags); in qla8044_watchdog()
2158 qla2xxx_wake_dpc(vha); in qla8044_watchdog()
2162 halt_status = qla8044_rd_direct(vha, in qla8044_watchdog()
2166 ql_log(ql_log_fatal, vha, in qla8044_watchdog()
2181 &vha->dpc_flags); in qla8044_watchdog()
2186 &vha->dpc_flags); in qla8044_watchdog()
2187 ql_log(ql_log_info, vha, 0xb0d9, in qla8044_watchdog()
2191 ql_log(ql_log_info, vha, in qla8044_watchdog()
2196 &vha->dpc_flags); in qla8044_watchdog()
2199 qla2xxx_wake_dpc(vha); in qla8044_watchdog()
2207 qla8044_minidump_process_control(struct scsi_qla_host *vha, in qla8044_minidump_process_control() argument
2216 struct qla_hw_data *ha = vha->hw; in qla8044_minidump_process_control()
2218 ql_dbg(ql_dbg_p3p, vha, 0xb0dd, "Entering fn: %s\n", __func__); in qla8044_minidump_process_control()
2228 qla8044_wr_reg_indirect(vha, crb_addr, in qla8044_minidump_process_control()
2234 qla8044_rd_reg_indirect(vha, crb_addr, &read_value); in qla8044_minidump_process_control()
2235 qla8044_wr_reg_indirect(vha, crb_addr, read_value); in qla8044_minidump_process_control()
2240 qla8044_rd_reg_indirect(vha, crb_addr, &read_value); in qla8044_minidump_process_control()
2247 qla8044_wr_reg_indirect(vha, crb_addr, read_value); in qla8044_minidump_process_control()
2250 qla8044_rd_reg_indirect(vha, crb_addr, &read_value); in qla8044_minidump_process_control()
2252 qla8044_wr_reg_indirect(vha, crb_addr, read_value); in qla8044_minidump_process_control()
2258 qla8044_rd_reg_indirect(vha, crb_addr, &read_value); in qla8044_minidump_process_control()
2269 qla8044_rd_reg_indirect(vha, in qla8044_minidump_process_control()
2284 qla8044_rd_reg_indirect(vha, addr, &read_value); in qla8044_minidump_process_control()
2306 qla8044_wr_reg_indirect(vha, addr, read_value); in qla8044_minidump_process_control()
2328 qla8044_minidump_process_rdcrb(struct scsi_qla_host *vha, in qla8044_minidump_process_rdcrb() argument
2335 ql_dbg(ql_dbg_p3p, vha, 0xb0de, "Entering fn: %s\n", __func__); in qla8044_minidump_process_rdcrb()
2342 qla8044_rd_reg_indirect(vha, r_addr, &r_value); in qla8044_minidump_process_rdcrb()
2351 qla8044_minidump_process_rdmem(struct scsi_qla_host *vha, in qla8044_minidump_process_rdmem() argument
2359 struct qla_hw_data *ha = vha->hw; in qla8044_minidump_process_rdmem()
2361 ql_dbg(ql_dbg_p3p, vha, 0xb0df, "Entering fn: %s\n", __func__); in qla8044_minidump_process_rdmem()
2366 ql_dbg(ql_dbg_p3p, vha, 0xb0f0, in qla8044_minidump_process_rdmem()
2371 ql_dbg(ql_dbg_p3p, vha, 0xb0f1, in qla8044_minidump_process_rdmem()
2378 ql_dbg(ql_dbg_p3p, vha, 0xb0f2, in qla8044_minidump_process_rdmem()
2384 ql_dbg(ql_dbg_p3p, vha, 0xb0f3, in qla8044_minidump_process_rdmem()
2390 qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_ADDR_LO, r_addr); in qla8044_minidump_process_rdmem()
2392 qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_ADDR_HI, r_value); in qla8044_minidump_process_rdmem()
2394 qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_CTRL, r_value); in qla8044_minidump_process_rdmem()
2396 qla8044_wr_reg_indirect(vha, MD_MIU_TEST_AGT_CTRL, r_value); in qla8044_minidump_process_rdmem()
2399 qla8044_rd_reg_indirect(vha, MD_MIU_TEST_AGT_CTRL, in qla8044_minidump_process_rdmem()
2411 qla8044_rd_reg_indirect(vha, MD_MIU_TEST_AGT_RDDATA[j], in qla8044_minidump_process_rdmem()
2420 ql_dbg(ql_dbg_p3p, vha, 0xb0f4, in qla8044_minidump_process_rdmem()
2430 qla8044_minidump_process_rdrom(struct scsi_qla_host *vha, in qla8044_minidump_process_rdrom() argument
2441 ql_dbg(ql_dbg_p3p, vha, 0xb0f5, "[%s]: fl_addr: 0x%x, count: 0x%x\n", in qla8044_minidump_process_rdrom()
2444 rval = qla8044_lockless_flash_read_u32(vha, fl_addr, in qla8044_minidump_process_rdrom()
2448 ql_log(ql_log_fatal, vha, 0xb0f6, in qla8044_minidump_process_rdrom()
2459 qla8044_mark_entry_skipped(struct scsi_qla_host *vha, in qla8044_mark_entry_skipped() argument
2464 ql_log(ql_log_info, vha, 0xb0f7, in qla8044_mark_entry_skipped()
2466 vha->host_no, index, entry_hdr->entry_type, in qla8044_mark_entry_skipped()
2471 qla8044_minidump_process_l2tag(struct scsi_qla_host *vha, in qla8044_minidump_process_l2tag() argument
2483 ql_dbg(ql_dbg_p3p, vha, 0xb0f8, "Entering fn: %s\n", __func__); in qla8044_minidump_process_l2tag()
2498 qla8044_wr_reg_indirect(vha, t_r_addr, t_value); in qla8044_minidump_process_l2tag()
2500 qla8044_wr_reg_indirect(vha, c_addr, c_value_w); in qla8044_minidump_process_l2tag()
2505 qla8044_rd_reg_indirect(vha, c_addr, in qla8044_minidump_process_l2tag()
2518 qla8044_rd_reg_indirect(vha, addr, &r_value); in qla8044_minidump_process_l2tag()
2529 qla8044_minidump_process_l1cache(struct scsi_qla_host *vha, in qla8044_minidump_process_l1cache() argument
2549 qla8044_wr_reg_indirect(vha, t_r_addr, t_value); in qla8044_minidump_process_l1cache()
2550 qla8044_wr_reg_indirect(vha, c_addr, c_value_w); in qla8044_minidump_process_l1cache()
2553 qla8044_rd_reg_indirect(vha, addr, &r_value); in qla8044_minidump_process_l1cache()
2563 qla8044_minidump_process_rdocm(struct scsi_qla_host *vha, in qla8044_minidump_process_rdocm() argument
2569 struct qla_hw_data *ha = vha->hw; in qla8044_minidump_process_rdocm()
2571 ql_dbg(ql_dbg_p3p, vha, 0xb0f9, "Entering fn: %s\n", __func__); in qla8044_minidump_process_rdocm()
2578 ql_dbg(ql_dbg_p3p, vha, 0xb0fa, in qla8044_minidump_process_rdocm()
2587 ql_dbg(ql_dbg_p3p, vha, 0xb0fb, "Leaving fn: %s datacount: 0x%lx\n", in qla8044_minidump_process_rdocm()
2594 qla8044_minidump_process_rdmux(struct scsi_qla_host *vha, in qla8044_minidump_process_rdmux() argument
2602 ql_dbg(ql_dbg_p3p, vha, 0xb0fc, "Entering fn: %s\n", __func__); in qla8044_minidump_process_rdmux()
2612 qla8044_wr_reg_indirect(vha, s_addr, s_value); in qla8044_minidump_process_rdmux()
2613 qla8044_rd_reg_indirect(vha, r_addr, &r_value); in qla8044_minidump_process_rdmux()
2622 qla8044_minidump_process_queue(struct scsi_qla_host *vha, in qla8044_minidump_process_queue() argument
2632 ql_dbg(ql_dbg_p3p, vha, 0xb0fd, "Entering fn: %s\n", __func__); in qla8044_minidump_process_queue()
2640 qla8044_wr_reg_indirect(vha, s_addr, qid); in qla8044_minidump_process_queue()
2643 qla8044_rd_reg_indirect(vha, r_addr, &r_value); in qla8044_minidump_process_queue()
2654 qla8044_minidump_process_pollrd(struct scsi_qla_host *vha, in qla8044_minidump_process_pollrd() argument
2673 qla8044_wr_reg_indirect(vha, s_addr, s_value); in qla8044_minidump_process_pollrd()
2676 qla8044_rd_reg_indirect(vha, s_addr, &r_value); in qla8044_minidump_process_pollrd()
2682 ql_log(ql_log_fatal, vha, 0xb0fe, in qla8044_minidump_process_pollrd()
2688 qla8044_rd_reg_indirect(vha, r_addr, &r_value); in qla8044_minidump_process_pollrd()
2702 qla8044_minidump_process_rdmux2(struct scsi_qla_host *vha, in qla8044_minidump_process_rdmux2() argument
2719 qla8044_wr_reg_indirect(vha, sel_addr1, sel_val1); in qla8044_minidump_process_rdmux2()
2723 qla8044_wr_reg_indirect(vha, sel_addr2, t_sel_val); in qla8044_minidump_process_rdmux2()
2724 qla8044_rd_reg_indirect(vha, read_addr, &data); in qla8044_minidump_process_rdmux2()
2728 qla8044_wr_reg_indirect(vha, sel_addr1, sel_val2); in qla8044_minidump_process_rdmux2()
2732 qla8044_wr_reg_indirect(vha, sel_addr2, t_sel_val); in qla8044_minidump_process_rdmux2()
2733 qla8044_rd_reg_indirect(vha, read_addr, &data); in qla8044_minidump_process_rdmux2()
2745 qla8044_minidump_process_pollrdmwr(struct scsi_qla_host *vha, in qla8044_minidump_process_pollrdmwr() argument
2761 qla8044_wr_reg_indirect(vha, addr_1, value_1); in qla8044_minidump_process_pollrdmwr()
2765 qla8044_rd_reg_indirect(vha, addr_1, &r_value); in qla8044_minidump_process_pollrdmwr()
2772 ql_log(ql_log_fatal, vha, 0xb0ff, in qla8044_minidump_process_pollrdmwr()
2779 qla8044_rd_reg_indirect(vha, addr_2, &data); in qla8044_minidump_process_pollrdmwr()
2781 qla8044_wr_reg_indirect(vha, addr_2, data); in qla8044_minidump_process_pollrdmwr()
2782 qla8044_wr_reg_indirect(vha, addr_1, value_2); in qla8044_minidump_process_pollrdmwr()
2786 qla8044_rd_reg_indirect(vha, addr_1, &r_value); in qla8044_minidump_process_pollrdmwr()
2793 ql_log(ql_log_fatal, vha, 0xb100, in qla8044_minidump_process_pollrdmwr()
2822 qla8044_check_dma_engine_state(struct scsi_qla_host *vha) in qla8044_check_dma_engine_state() argument
2824 struct qla_hw_data *ha = vha->hw; in qla8044_check_dma_engine_state()
2837 rval = qla8044_rd_reg_indirect(vha, in qla8044_check_dma_engine_state()
2851 qla8044_start_pex_dma(struct scsi_qla_host *vha, in qla8044_start_pex_dma() argument
2854 struct qla_hw_data *ha = vha->hw; in qla8044_start_pex_dma()
2866 rval = qla8044_wr_reg_indirect(vha, in qla8044_start_pex_dma()
2872 rval = qla8044_wr_reg_indirect(vha, in qla8044_start_pex_dma()
2877 rval = qla8044_wr_reg_indirect(vha, in qla8044_start_pex_dma()
2885 rval = qla8044_rd_reg_indirect(vha, in qla8044_start_pex_dma()
2908 qla8044_minidump_pex_dma_read(struct scsi_qla_host *vha, in qla8044_minidump_pex_dma_read() argument
2911 struct qla_hw_data *ha = vha->hw; in qla8044_minidump_pex_dma_read()
2920 rval = qla8044_check_dma_engine_state(vha); in qla8044_minidump_pex_dma_read()
2922 ql_dbg(ql_dbg_p3p, vha, 0xb147, in qla8044_minidump_pex_dma_read()
2932 ql_dbg(ql_dbg_p3p, vha, 0xb148, in qla8044_minidump_pex_dma_read()
2967 rval = qla8044_ms_mem_write_128b(vha, in qla8044_minidump_pex_dma_read()
2971 ql_log(ql_log_warn, vha, 0xb14a, in qla8044_minidump_pex_dma_read()
2976 ql_dbg(ql_dbg_p3p, vha, 0xb14b, in qla8044_minidump_pex_dma_read()
2981 rval = qla8044_start_pex_dma(vha, m_hdr); in qla8044_minidump_pex_dma_read()
3001 qla8044_minidump_process_rddfe(struct scsi_qla_host *vha, in qla8044_minidump_process_rddfe() argument
3029 qla8044_wr_reg_indirect(vha, addr1, (0x40000000 | value)); in qla8044_minidump_process_rddfe()
3033 qla8044_rd_reg_indirect(vha, addr1, &temp); in qla8044_minidump_process_rddfe()
3040 ql_log(ql_log_warn, vha, 0xb153, in qla8044_minidump_process_rddfe()
3044 qla8044_rd_reg_indirect(vha, addr2, &temp); in qla8044_minidump_process_rddfe()
3049 qla8044_wr_reg_indirect(vha, addr2, wrVal); in qla8044_minidump_process_rddfe()
3050 qla8044_wr_reg_indirect(vha, addr1, value); in qla8044_minidump_process_rddfe()
3054 qla8044_rd_reg_indirect(vha, addr1, &temp); in qla8044_minidump_process_rddfe()
3060 ql_log(ql_log_warn, vha, 0xb154, in qla8044_minidump_process_rddfe()
3065 qla8044_wr_reg_indirect(vha, addr1, in qla8044_minidump_process_rddfe()
3069 qla8044_rd_reg_indirect(vha, addr1, &temp); in qla8044_minidump_process_rddfe()
3076 ql_log(ql_log_warn, vha, 0xb155, in qla8044_minidump_process_rddfe()
3081 qla8044_rd_reg_indirect(vha, addr2, &data); in qla8044_minidump_process_rddfe()
3098 qla8044_minidump_process_rdmdio(struct scsi_qla_host *vha, in qla8044_minidump_process_rdmdio() argument
3126 ret = qla8044_poll_wait_ipmdio_bus_idle(vha, addr1, addr2, in qla8044_minidump_process_rdmdio()
3132 ret = qla8044_ipmdio_wr_reg(vha, addr1, addr3, mask, addr4, in qla8044_minidump_process_rdmdio()
3138 ret = qla8044_ipmdio_wr_reg(vha, addr1, addr3, mask, addr5, in qla8044_minidump_process_rdmdio()
3144 ret = qla8044_ipmdio_wr_reg(vha, addr1, addr3, mask, in qla8044_minidump_process_rdmdio()
3149 ret = qla8044_poll_wait_ipmdio_bus_idle(vha, addr1, addr2, in qla8044_minidump_process_rdmdio()
3155 data = qla8044_ipmdio_rd_reg(vha, addr1, addr3, mask, addr7); in qla8044_minidump_process_rdmdio()
3175 static uint32_t qla8044_minidump_process_pollwr(struct scsi_qla_host *vha, in qla8044_minidump_process_pollwr() argument
3191 qla8044_rd_reg_indirect(vha, addr1, &r_value); in qla8044_minidump_process_pollwr()
3199 ql_log(ql_log_warn, vha, 0xb156, "%s: TIMEOUT\n", __func__); in qla8044_minidump_process_pollwr()
3203 qla8044_wr_reg_indirect(vha, addr2, value2); in qla8044_minidump_process_pollwr()
3204 qla8044_wr_reg_indirect(vha, addr1, value1); in qla8044_minidump_process_pollwr()
3208 qla8044_rd_reg_indirect(vha, addr1, &r_value); in qla8044_minidump_process_pollwr()
3227 qla8044_collect_md_data(struct scsi_qla_host *vha) in qla8044_collect_md_data() argument
3237 struct qla_hw_data *ha = vha->hw; in qla8044_collect_md_data()
3240 ql_log(ql_log_info, vha, 0xb101, in qla8044_collect_md_data()
3242 __func__, vha->host_no); in qla8044_collect_md_data()
3247 ql_log(ql_log_warn, vha, 0xb10d, in qla8044_collect_md_data()
3256 ql_log(ql_log_warn, vha, 0xb10e, in qla8044_collect_md_data()
3264 ql_log(ql_log_warn, vha, 0xb112, in qla8044_collect_md_data()
3275 if (qla82xx_validate_template_chksum(vha)) { in qla8044_collect_md_data()
3276 ql_log(ql_log_info, vha, 0xb109, in qla8044_collect_md_data()
3286 ql_dbg(ql_dbg_p3p, vha, 0xb11a, in qla8044_collect_md_data()
3293 ql_log(ql_log_warn, vha, 0xb10f, in qla8044_collect_md_data()
3299 ql_log(ql_log_info, vha, 0xb102, in qla8044_collect_md_data()
3302 ql_log(ql_log_info, vha, 0xb10b, in qla8044_collect_md_data()
3305 ql_log(ql_log_info, vha, 0xb10c, in qla8044_collect_md_data()
3322 ql_log(ql_log_info, vha, 0xb103, in qla8044_collect_md_data()
3336 ql_dbg(ql_dbg_p3p, vha, 0xb104, in qla8044_collect_md_data()
3346 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3349 rval = qla8044_minidump_process_control(vha, in qla8044_collect_md_data()
3352 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3357 qla8044_minidump_process_rdcrb(vha, in qla8044_collect_md_data()
3361 rval = qla8044_minidump_pex_dma_read(vha, in qla8044_collect_md_data()
3364 rval = qla8044_minidump_process_rdmem(vha, in qla8044_collect_md_data()
3367 qla8044_mark_entry_skipped(vha, in qla8044_collect_md_data()
3375 rval = qla8044_minidump_process_rdrom(vha, in qla8044_collect_md_data()
3378 qla8044_mark_entry_skipped(vha, in qla8044_collect_md_data()
3386 rval = qla8044_minidump_process_l2tag(vha, in qla8044_collect_md_data()
3389 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3397 qla8044_minidump_process_l1cache(vha, in qla8044_collect_md_data()
3401 qla8044_minidump_process_rdocm(vha, in qla8044_collect_md_data()
3405 qla8044_minidump_process_rdmux(vha, in qla8044_collect_md_data()
3409 qla8044_minidump_process_queue(vha, in qla8044_collect_md_data()
3413 rval = qla8044_minidump_process_pollrd(vha, in qla8044_collect_md_data()
3416 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3419 qla8044_minidump_process_rdmux2(vha, in qla8044_collect_md_data()
3423 rval = qla8044_minidump_process_pollrdmwr(vha, in qla8044_collect_md_data()
3426 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3429 rval = qla8044_minidump_process_rddfe(vha, entry_hdr, in qla8044_collect_md_data()
3432 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3435 rval = qla8044_minidump_process_rdmdio(vha, entry_hdr, in qla8044_collect_md_data()
3438 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3441 rval = qla8044_minidump_process_pollwr(vha, entry_hdr, in qla8044_collect_md_data()
3444 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3448 qla8044_mark_entry_skipped(vha, entry_hdr, i); in qla8044_collect_md_data()
3463 ql_log(ql_log_info, vha, 0xb105, in qla8044_collect_md_data()
3471 ql_log(ql_log_info, vha, 0xb110, in qla8044_collect_md_data()
3473 vha->host_no, ha->md_tmplt_hdr, vha->host_no, ha->md_dump); in qla8044_collect_md_data()
3475 qla2x00_post_uevent_work(vha, QLA_UEVENT_CODE_FW_DUMP); in qla8044_collect_md_data()
3478 ql_log(ql_log_info, vha, 0xb106, in qla8044_collect_md_data()
3486 qla8044_get_minidump(struct scsi_qla_host *vha) in qla8044_get_minidump() argument
3488 struct qla_hw_data *ha = vha->hw; in qla8044_get_minidump()
3490 if (!qla8044_collect_md_data(vha)) { in qla8044_get_minidump()
3494 ql_log(ql_log_fatal, vha, 0xb0db, in qla8044_get_minidump()
3502 qla8044_poll_flash_status_reg(struct scsi_qla_host *vha) in qla8044_poll_flash_status_reg() argument
3509 ret_val = qla8044_rd_reg_indirect(vha, QLA8044_FLASH_STATUS, in qla8044_poll_flash_status_reg()
3512 ql_log(ql_log_warn, vha, 0xb13c, in qla8044_poll_flash_status_reg()
3530 qla8044_write_flash_status_reg(struct scsi_qla_host *vha, in qla8044_write_flash_status_reg() argument
3536 cmd = vha->hw->fdt_wrt_sts_reg_cmd; in qla8044_write_flash_status_reg()
3538 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_ADDR, in qla8044_write_flash_status_reg()
3541 ql_log(ql_log_warn, vha, 0xb125, in qla8044_write_flash_status_reg()
3546 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_WRDATA, data); in qla8044_write_flash_status_reg()
3548 ql_log(ql_log_warn, vha, 0xb126, in qla8044_write_flash_status_reg()
3553 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_CONTROL, in qla8044_write_flash_status_reg()
3556 ql_log(ql_log_warn, vha, 0xb127, in qla8044_write_flash_status_reg()
3561 ret_val = qla8044_poll_flash_status_reg(vha); in qla8044_write_flash_status_reg()
3563 ql_log(ql_log_warn, vha, 0xb128, in qla8044_write_flash_status_reg()
3574 qla8044_unprotect_flash(scsi_qla_host_t *vha) in qla8044_unprotect_flash() argument
3577 struct qla_hw_data *ha = vha->hw; in qla8044_unprotect_flash()
3579 ret_val = qla8044_write_flash_status_reg(vha, ha->fdt_wrt_enable); in qla8044_unprotect_flash()
3581 ql_log(ql_log_warn, vha, 0xb139, in qla8044_unprotect_flash()
3591 qla8044_protect_flash(scsi_qla_host_t *vha) in qla8044_protect_flash() argument
3594 struct qla_hw_data *ha = vha->hw; in qla8044_protect_flash()
3596 ret_val = qla8044_write_flash_status_reg(vha, ha->fdt_wrt_disable); in qla8044_protect_flash()
3598 ql_log(ql_log_warn, vha, 0xb13b, in qla8044_protect_flash()
3606 qla8044_erase_flash_sector(struct scsi_qla_host *vha, in qla8044_erase_flash_sector() argument
3612 ret_val = qla8044_poll_flash_status_reg(vha); in qla8044_erase_flash_sector()
3614 ql_log(ql_log_warn, vha, 0xb12e, in qla8044_erase_flash_sector()
3622 ret_val = qla8044_wr_reg_indirect(vha, in qla8044_erase_flash_sector()
3625 ql_log(ql_log_warn, vha, 0xb12f, in qla8044_erase_flash_sector()
3628 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_ADDR, in qla8044_erase_flash_sector()
3629 QLA8044_FLASH_ERASE_SIG | vha->hw->fdt_erase_cmd); in qla8044_erase_flash_sector()
3631 ql_log(ql_log_warn, vha, 0xb130, in qla8044_erase_flash_sector()
3634 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_CONTROL, in qla8044_erase_flash_sector()
3637 ql_log(ql_log_warn, vha, 0xb131, in qla8044_erase_flash_sector()
3640 ret_val = qla8044_poll_flash_status_reg(vha); in qla8044_erase_flash_sector()
3642 ql_log(ql_log_warn, vha, 0xb132, in qla8044_erase_flash_sector()
3662 qla8044_flash_write_u32(struct scsi_qla_host *vha, uint32_t addr, in qla8044_flash_write_u32() argument
3667 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_ADDR, in qla8044_flash_write_u32()
3670 ql_log(ql_log_warn, vha, 0xb134, in qla8044_flash_write_u32()
3674 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_WRDATA, *p_data); in qla8044_flash_write_u32()
3676 ql_log(ql_log_warn, vha, 0xb135, in qla8044_flash_write_u32()
3680 ret_val = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_CONTROL, 0x3D); in qla8044_flash_write_u32()
3682 ql_log(ql_log_warn, vha, 0xb136, in qla8044_flash_write_u32()
3686 ret_val = qla8044_poll_flash_status_reg(vha); in qla8044_flash_write_u32()
3688 ql_log(ql_log_warn, vha, 0xb137, in qla8044_flash_write_u32()
3697 qla8044_write_flash_buffer_mode(scsi_qla_host_t *vha, uint32_t *dwptr, in qla8044_write_flash_buffer_mode() argument
3705 ql_dbg(ql_dbg_user, vha, 0xb123, in qla8044_write_flash_buffer_mode()
3711 qla8044_rd_reg_indirect(vha, QLA8044_FLASH_SPI_CONTROL, &spi_val); in qla8044_write_flash_buffer_mode()
3712 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_SPI_CONTROL, in qla8044_write_flash_buffer_mode()
3714 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_ADDR, in qla8044_write_flash_buffer_mode()
3718 ret = qla8044_wr_reg_indirect(vha, QLA8044_FLASH_WRDATA, in qla8044_write_flash_buffer_mode()
3720 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_CONTROL, in qla8044_write_flash_buffer_mode()
3723 ret = qla8044_poll_flash_status_reg(vha); in qla8044_write_flash_buffer_mode()
3725 ql_log(ql_log_warn, vha, 0xb124, in qla8044_write_flash_buffer_mode()
3732 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_ADDR, in qla8044_write_flash_buffer_mode()
3738 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_WRDATA, *dwptr++); in qla8044_write_flash_buffer_mode()
3739 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_CONTROL, in qla8044_write_flash_buffer_mode()
3741 ret = qla8044_poll_flash_status_reg(vha); in qla8044_write_flash_buffer_mode()
3743 ql_log(ql_log_warn, vha, 0xb129, in qla8044_write_flash_buffer_mode()
3750 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_ADDR, in qla8044_write_flash_buffer_mode()
3754 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_WRDATA, *dwptr++); in qla8044_write_flash_buffer_mode()
3755 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_CONTROL, in qla8044_write_flash_buffer_mode()
3757 ret = qla8044_poll_flash_status_reg(vha); in qla8044_write_flash_buffer_mode()
3759 ql_log(ql_log_warn, vha, 0xb12a, in qla8044_write_flash_buffer_mode()
3763 qla8044_rd_reg_indirect(vha, QLA8044_FLASH_SPI_STATUS, &spi_val); in qla8044_write_flash_buffer_mode()
3766 ql_log(ql_log_warn, vha, 0xb12b, in qla8044_write_flash_buffer_mode()
3770 qla8044_rd_reg_indirect(vha, QLA8044_FLASH_SPI_CONTROL, in qla8044_write_flash_buffer_mode()
3772 qla8044_wr_reg_indirect(vha, QLA8044_FLASH_SPI_CONTROL, in qla8044_write_flash_buffer_mode()
3780 qla8044_write_flash_dword_mode(scsi_qla_host_t *vha, uint32_t *dwptr, in qla8044_write_flash_dword_mode() argument
3787 ret = qla8044_flash_write_u32(vha, faddr, dwptr); in qla8044_write_flash_dword_mode()
3789 ql_dbg(ql_dbg_p3p, vha, 0xb141, in qla8044_write_flash_dword_mode()
3800 qla8044_write_optrom_data(struct scsi_qla_host *vha, uint8_t *buf, in qla8044_write_optrom_data() argument
3824 scsi_block_requests(vha->host); in qla8044_write_optrom_data()
3826 qla8044_flash_lock(vha); in qla8044_write_optrom_data()
3827 qla8044_unprotect_flash(vha); in qla8044_write_optrom_data()
3831 rval = qla8044_erase_flash_sector(vha, erase_offset); in qla8044_write_optrom_data()
3832 ql_dbg(ql_dbg_user, vha, 0xb138, in qla8044_write_optrom_data()
3836 ql_log(ql_log_warn, vha, 0xb121, in qla8044_write_optrom_data()
3843 ql_dbg(ql_dbg_user, vha, 0xb13f, in qla8044_write_optrom_data()
3850 rval = qla8044_write_flash_buffer_mode(vha, (uint32_t *)p_src, in qla8044_write_optrom_data()
3854 ql_log(ql_log_warn, vha, 0xb122, in qla8044_write_optrom_data()
3857 rval = qla8044_write_flash_dword_mode(vha, in qla8044_write_optrom_data()
3864 ql_dbg(ql_dbg_user, vha, 0xb133, in qla8044_write_optrom_data()
3868 qla8044_protect_flash(vha); in qla8044_write_optrom_data()
3869 qla8044_flash_unlock(vha); in qla8044_write_optrom_data()
3870 scsi_unblock_requests(vha->host); in qla8044_write_optrom_data()
3891 scsi_qla_host_t *vha; in qla8044_intr_handler() local
3909 vha = pci_get_drvdata(ha->pdev); in qla8044_intr_handler()
3918 ql_dbg(ql_dbg_p3p, vha, 0xb144, in qla8044_intr_handler()
3927 ql_dbg(ql_dbg_p3p, vha, 0xb145, in qla8044_intr_handler()
3960 qla82xx_mbx_completion(vha, MSW(stat)); in qla8044_intr_handler()
3968 qla2x00_async_event(vha, rsp, mb); in qla8044_intr_handler()
3971 qla24xx_process_response_queue(vha, rsp); in qla8044_intr_handler()
3974 ql_dbg(ql_dbg_p3p, vha, 0xb146, in qla8044_intr_handler()
3999 qla8044_clear_rst_ready(scsi_qla_host_t *vha) in qla8044_clear_rst_ready() argument
4003 drv_state = qla8044_rd_direct(vha, QLA8044_CRB_DRV_STATE_INDEX); in qla8044_clear_rst_ready()
4010 drv_state &= ~(1 << vha->hw->portnum); in qla8044_clear_rst_ready()
4012 ql_dbg(ql_dbg_p3p, vha, 0xb13d, in qla8044_clear_rst_ready()
4014 qla8044_wr_direct(vha, QLA8044_CRB_DRV_STATE_INDEX, drv_state); in qla8044_clear_rst_ready()
4018 qla8044_abort_isp(scsi_qla_host_t *vha) in qla8044_abort_isp() argument
4022 struct qla_hw_data *ha = vha->hw; in qla8044_abort_isp()
4025 dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); in qla8044_abort_isp()
4028 qla8044_set_idc_dontreset(vha); in qla8044_abort_isp()
4040 ql_dbg(ql_dbg_p3p, vha, 0xb13e, in qla8044_abort_isp()
4046 ql_dbg(ql_dbg_p3p, vha, 0xb140, in qla8044_abort_isp()
4048 qla8044_wr_direct(vha, QLA8044_CRB_DEV_STATE_INDEX, in qla8044_abort_isp()
4055 qla83xx_reset_ownership(vha); in qla8044_abort_isp()
4058 rval = qla8044_device_state_handler(vha); in qla8044_abort_isp()
4060 qla8044_clear_rst_ready(vha); in qla8044_abort_isp()
4067 rval = qla82xx_restart_isp(vha); in qla8044_abort_isp()
4074 qla8044_fw_dump(scsi_qla_host_t *vha, int hardware_locked) in qla8044_fw_dump() argument
4076 struct qla_hw_data *ha = vha->hw; in qla8044_fw_dump()
4081 scsi_block_requests(vha->host); in qla8044_fw_dump()
4084 qla82xx_set_reset_owner(vha); in qla8044_fw_dump()
4086 qla2x00_wait_for_chip_reset(vha); in qla8044_fw_dump()
4087 scsi_unblock_requests(vha->host); in qla8044_fw_dump()