Lines Matching refs:vha

9 #define ISPREG(vha)	(&(vha)->hw->iobase->isp24)  argument
11 #define IOBASE(vha) IOBAR(ISPREG(vha)) argument
136 qla27xx_fwdt_entry_t0(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t0() argument
139 ql_dbg(ql_dbg_misc, vha, 0xd100, in qla27xx_fwdt_entry_t0()
147 qla27xx_fwdt_entry_t255(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t255() argument
150 ql_dbg(ql_dbg_misc, vha, 0xd1ff, in qla27xx_fwdt_entry_t255()
159 qla27xx_fwdt_entry_t256(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t256() argument
167 ql_dbg(ql_dbg_misc, vha, 0xd200, in qla27xx_fwdt_entry_t256()
169 qla27xx_read_window(ISPREG(vha), addr, offset, count, width, buf, len); in qla27xx_fwdt_entry_t256()
175 qla27xx_fwdt_entry_t257(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t257() argument
182 ql_dbg(ql_dbg_misc, vha, 0xd201, in qla27xx_fwdt_entry_t257()
184 qla27xx_write_reg(ISPREG(vha), IOBASE(vha), addr, buf); in qla27xx_fwdt_entry_t257()
185 qla27xx_write_reg(ISPREG(vha), offset, data, buf); in qla27xx_fwdt_entry_t257()
191 qla27xx_fwdt_entry_t258(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t258() argument
201 ql_dbg(ql_dbg_misc, vha, 0xd202, in qla27xx_fwdt_entry_t258()
203 qla27xx_write_reg(ISPREG(vha), banksel, bank, buf); in qla27xx_fwdt_entry_t258()
204 qla27xx_read_window(ISPREG(vha), addr, offset, count, width, buf, len); in qla27xx_fwdt_entry_t258()
210 qla27xx_fwdt_entry_t259(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t259() argument
219 ql_dbg(ql_dbg_misc, vha, 0xd203, in qla27xx_fwdt_entry_t259()
221 qla27xx_write_reg(ISPREG(vha), IOBASE(vha), addr, buf); in qla27xx_fwdt_entry_t259()
222 qla27xx_write_reg(ISPREG(vha), banksel, bank, buf); in qla27xx_fwdt_entry_t259()
223 qla27xx_write_reg(ISPREG(vha), offset, data, buf); in qla27xx_fwdt_entry_t259()
229 qla27xx_fwdt_entry_t260(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t260() argument
234 ql_dbg(ql_dbg_misc, vha, 0xd204, in qla27xx_fwdt_entry_t260()
237 qla27xx_read_reg(ISPREG(vha), offset, buf, len); in qla27xx_fwdt_entry_t260()
243 qla27xx_fwdt_entry_t261(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t261() argument
249 ql_dbg(ql_dbg_misc, vha, 0xd205, in qla27xx_fwdt_entry_t261()
251 qla27xx_write_reg(ISPREG(vha), offset, data, buf); in qla27xx_fwdt_entry_t261()
257 qla27xx_fwdt_entry_t262(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t262() argument
266 ql_dbg(ql_dbg_misc, vha, 0xd206, in qla27xx_fwdt_entry_t262()
272 end = vha->hw->fw_memory_size; in qla27xx_fwdt_entry_t262()
276 start = vha->hw->fw_shared_ram_start; in qla27xx_fwdt_entry_t262()
277 end = vha->hw->fw_shared_ram_end; in qla27xx_fwdt_entry_t262()
283 start = vha->hw->fw_ddr_ram_start; in qla27xx_fwdt_entry_t262()
284 end = vha->hw->fw_ddr_ram_end; in qla27xx_fwdt_entry_t262()
295 ql_dbg(ql_dbg_misc, vha, 0xd022, in qla27xx_fwdt_entry_t262()
302 ql_dbg(ql_dbg_misc, vha, 0xd023, in qla27xx_fwdt_entry_t262()
312 rc = qla24xx_dump_ram(vha->hw, start, buf, dwords, &buf); in qla27xx_fwdt_entry_t262()
314 ql_dbg(ql_dbg_async, vha, 0xffff, in qla27xx_fwdt_entry_t262()
326 qla27xx_fwdt_entry_t263(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t263() argument
334 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd207, in qla27xx_fwdt_entry_t263()
337 for (i = 0; i < vha->hw->max_req_queues; i++) { in qla27xx_fwdt_entry_t263()
338 struct req_que *req = vha->hw->req_q_map[i]; in qla27xx_fwdt_entry_t263()
351 for (i = 0; i < vha->hw->max_rsp_queues; i++) { in qla27xx_fwdt_entry_t263()
352 struct rsp_que *rsp = vha->hw->rsp_q_map[i]; in qla27xx_fwdt_entry_t263()
366 struct qla_hw_data *ha = vha->hw; in qla27xx_fwdt_entry_t263()
377 ql_dbg(ql_dbg_misc, vha, 0xd026, in qla27xx_fwdt_entry_t263()
393 qla27xx_fwdt_entry_t264(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t264() argument
396 ql_dbg(ql_dbg_misc, vha, 0xd208, in qla27xx_fwdt_entry_t264()
398 if (vha->hw->fce) { in qla27xx_fwdt_entry_t264()
401 ent->t264.write_pointer = vha->hw->fce_wr; in qla27xx_fwdt_entry_t264()
402 ent->t264.base_pointer = vha->hw->fce_dma; in qla27xx_fwdt_entry_t264()
403 ent->t264.fce_enable_mb0 = vha->hw->fce_mb[0]; in qla27xx_fwdt_entry_t264()
404 ent->t264.fce_enable_mb2 = vha->hw->fce_mb[2]; in qla27xx_fwdt_entry_t264()
405 ent->t264.fce_enable_mb3 = vha->hw->fce_mb[3]; in qla27xx_fwdt_entry_t264()
406 ent->t264.fce_enable_mb4 = vha->hw->fce_mb[4]; in qla27xx_fwdt_entry_t264()
407 ent->t264.fce_enable_mb5 = vha->hw->fce_mb[5]; in qla27xx_fwdt_entry_t264()
408 ent->t264.fce_enable_mb6 = vha->hw->fce_mb[6]; in qla27xx_fwdt_entry_t264()
410 qla27xx_insertbuf(vha->hw->fce, FCE_SIZE, buf, len); in qla27xx_fwdt_entry_t264()
412 ql_dbg(ql_dbg_misc, vha, 0xd027, in qla27xx_fwdt_entry_t264()
421 qla27xx_fwdt_entry_t265(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t265() argument
424 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd209, in qla27xx_fwdt_entry_t265()
427 qla24xx_pause_risc(ISPREG(vha), vha->hw); in qla27xx_fwdt_entry_t265()
433 qla27xx_fwdt_entry_t266(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t266() argument
436 ql_dbg(ql_dbg_misc, vha, 0xd20a, in qla27xx_fwdt_entry_t266()
439 if (qla24xx_soft_reset(vha->hw) != QLA_SUCCESS) { in qla27xx_fwdt_entry_t266()
440 ql_dbg(ql_dbg_async, vha, 0x5001, in qla27xx_fwdt_entry_t266()
450 qla27xx_fwdt_entry_t267(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t267() argument
456 ql_dbg(ql_dbg_misc, vha, 0xd20b, in qla27xx_fwdt_entry_t267()
458 qla27xx_write_reg(ISPREG(vha), offset, data, buf); in qla27xx_fwdt_entry_t267()
464 qla27xx_fwdt_entry_t268(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t268() argument
467 ql_dbg(ql_dbg_misc, vha, 0xd20c, in qla27xx_fwdt_entry_t268()
471 if (vha->hw->eft) { in qla27xx_fwdt_entry_t268()
474 ent->t268.start_addr = vha->hw->eft_dma; in qla27xx_fwdt_entry_t268()
476 qla27xx_insertbuf(vha->hw->eft, EFT_SIZE, buf, len); in qla27xx_fwdt_entry_t268()
478 ql_dbg(ql_dbg_misc, vha, 0xd028, in qla27xx_fwdt_entry_t268()
484 if (vha->hw->exchoffld_buf) { in qla27xx_fwdt_entry_t268()
486 ent->t268.buf_size = vha->hw->exchoffld_size; in qla27xx_fwdt_entry_t268()
488 vha->hw->exchoffld_buf_dma; in qla27xx_fwdt_entry_t268()
490 qla27xx_insertbuf(vha->hw->exchoffld_buf, in qla27xx_fwdt_entry_t268()
491 vha->hw->exchoffld_size, buf, len); in qla27xx_fwdt_entry_t268()
493 ql_dbg(ql_dbg_misc, vha, 0xd028, in qla27xx_fwdt_entry_t268()
499 if (vha->hw->exlogin_buf) { in qla27xx_fwdt_entry_t268()
501 ent->t268.buf_size = vha->hw->exlogin_size; in qla27xx_fwdt_entry_t268()
503 vha->hw->exlogin_buf_dma; in qla27xx_fwdt_entry_t268()
505 qla27xx_insertbuf(vha->hw->exlogin_buf, in qla27xx_fwdt_entry_t268()
506 vha->hw->exlogin_size, buf, len); in qla27xx_fwdt_entry_t268()
508 ql_dbg(ql_dbg_misc, vha, 0xd028, in qla27xx_fwdt_entry_t268()
524 ql_dbg(ql_dbg_async, vha, 0xd02b, in qla27xx_fwdt_entry_t268()
534 qla27xx_fwdt_entry_t269(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t269() argument
537 ql_dbg(ql_dbg_misc, vha, 0xd20d, in qla27xx_fwdt_entry_t269()
551 qla27xx_fwdt_entry_t270(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t270() argument
557 ql_dbg(ql_dbg_misc, vha, 0xd20e, in qla27xx_fwdt_entry_t270()
559 qla27xx_write_reg(ISPREG(vha), IOBASE_ADDR, 0x40, buf); in qla27xx_fwdt_entry_t270()
561 qla27xx_write_reg(ISPREG(vha), 0xc0, addr|0x80000000, buf); in qla27xx_fwdt_entry_t270()
563 qla27xx_read_reg(ISPREG(vha), 0xc4, buf, len); in qla27xx_fwdt_entry_t270()
571 qla27xx_fwdt_entry_t271(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t271() argument
577 ql_dbg(ql_dbg_misc, vha, 0xd20f, in qla27xx_fwdt_entry_t271()
579 qla27xx_write_reg(ISPREG(vha), IOBASE(vha), 0x40, buf); in qla27xx_fwdt_entry_t271()
580 qla27xx_write_reg(ISPREG(vha), 0xc4, data, buf); in qla27xx_fwdt_entry_t271()
581 qla27xx_write_reg(ISPREG(vha), 0xc0, addr, buf); in qla27xx_fwdt_entry_t271()
587 qla27xx_fwdt_entry_t272(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t272() argument
593 ql_dbg(ql_dbg_misc, vha, 0xd210, in qla27xx_fwdt_entry_t272()
596 ql_dbg(ql_dbg_misc, vha, 0xd02c, in qla27xx_fwdt_entry_t272()
599 qla27xx_dump_mpi_ram(vha->hw, start, buf, dwords, &buf); in qla27xx_fwdt_entry_t272()
607 qla27xx_fwdt_entry_t273(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t273() argument
614 ql_dbg(ql_dbg_misc, vha, 0xd211, in qla27xx_fwdt_entry_t273()
618 if (pci_read_config_dword(vha->hw->pdev, addr, &value)) in qla27xx_fwdt_entry_t273()
619 ql_dbg(ql_dbg_misc, vha, 0xd02d, in qla27xx_fwdt_entry_t273()
630 qla27xx_fwdt_entry_t274(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t274() argument
637 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd212, in qla27xx_fwdt_entry_t274()
640 for (i = 0; i < vha->hw->max_req_queues; i++) { in qla27xx_fwdt_entry_t274()
641 struct req_que *req = vha->hw->req_q_map[i]; in qla27xx_fwdt_entry_t274()
652 for (i = 0; i < vha->hw->max_rsp_queues; i++) { in qla27xx_fwdt_entry_t274()
653 struct rsp_que *rsp = vha->hw->rsp_q_map[i]; in qla27xx_fwdt_entry_t274()
665 struct qla_hw_data *ha = vha->hw; in qla27xx_fwdt_entry_t274()
676 ql_dbg(ql_dbg_misc, vha, 0xd02f, in qla27xx_fwdt_entry_t274()
692 qla27xx_fwdt_entry_t275(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t275() argument
700 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd213, in qla27xx_fwdt_entry_t275()
703 ql_dbg(ql_dbg_misc, vha, 0xd020, in qla27xx_fwdt_entry_t275()
710 ql_dbg(ql_dbg_misc, vha, 0xd030, in qla27xx_fwdt_entry_t275()
721 qla27xx_fwdt_entry_t276(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t276() argument
724 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd214, in qla27xx_fwdt_entry_t276()
730 uint type = vha->hw->pdev->device >> 4 & 0xf; in qla27xx_fwdt_entry_t276()
731 uint func = vha->hw->port_no & 0x3; in qla27xx_fwdt_entry_t276()
746 qla27xx_fwdt_entry_t277(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t277() argument
753 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd215, in qla27xx_fwdt_entry_t277()
756 qla27xx_write_reg(ISPREG(vha), cmd_addr, wr_cmd_data, buf); in qla27xx_fwdt_entry_t277()
757 qla27xx_read_reg(ISPREG(vha), data_addr, buf, len); in qla27xx_fwdt_entry_t277()
763 qla27xx_fwdt_entry_t278(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t278() argument
771 ql_dbg(ql_dbg_misc + ql_dbg_verbose, vha, 0xd216, in qla27xx_fwdt_entry_t278()
773 qla27xx_write_reg(ISPREG(vha), data_addr, wr_data, buf); in qla27xx_fwdt_entry_t278()
774 qla27xx_write_reg(ISPREG(vha), cmd_addr, wr_cmd_data, buf); in qla27xx_fwdt_entry_t278()
780 qla27xx_fwdt_entry_other(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_other() argument
785 ql_dbg(ql_dbg_misc, vha, 0xd2ff, in qla27xx_fwdt_entry_other()
838 qla27xx_walk_template(struct scsi_qla_host *vha, in qla27xx_walk_template() argument
846 ql_dbg(ql_dbg_misc, vha, 0xd01a, in qla27xx_walk_template()
850 ent = qla27xx_find_entry(type)(vha, ent, buf, len); in qla27xx_walk_template()
856 ql_dbg(ql_dbg_async, vha, 0xffff, in qla27xx_walk_template()
863 ql_dbg(ql_dbg_misc, vha, 0xd018, in qla27xx_walk_template()
867 ql_dbg(ql_dbg_misc, vha, 0xd019, in qla27xx_walk_template()
896 qla27xx_firmware_info(struct scsi_qla_host *vha, in qla27xx_firmware_info() argument
899 tmp->firmware_version[0] = cpu_to_le32(vha->hw->fw_major_version); in qla27xx_firmware_info()
900 tmp->firmware_version[1] = cpu_to_le32(vha->hw->fw_minor_version); in qla27xx_firmware_info()
901 tmp->firmware_version[2] = cpu_to_le32(vha->hw->fw_subminor_version); in qla27xx_firmware_info()
903 vha->hw->fw_attributes_h << 16 | vha->hw->fw_attributes); in qla27xx_firmware_info()
905 vha->hw->fw_attributes_ext[1] << 16 | vha->hw->fw_attributes_ext[0]); in qla27xx_firmware_info()
909 ql27xx_edit_template(struct scsi_qla_host *vha, in ql27xx_edit_template() argument
914 qla27xx_firmware_info(vha, tmp); in ql27xx_edit_template()
947 qla27xx_execute_fwdt_template(struct scsi_qla_host *vha, in qla27xx_execute_fwdt_template() argument
955 ql27xx_edit_template(vha, tmp); in qla27xx_execute_fwdt_template()
956 qla27xx_walk_template(vha, tmp, buf, &len); in qla27xx_execute_fwdt_template()
963 qla27xx_fwdt_calculate_dump_size(struct scsi_qla_host *vha, void *p) in qla27xx_fwdt_calculate_dump_size() argument
970 qla27xx_walk_template(vha, tmp, NULL, &len); in qla27xx_fwdt_calculate_dump_size()
1006 qla27xx_mpi_fwdump(scsi_qla_host_t *vha, int hardware_locked) in qla27xx_mpi_fwdump() argument
1011 spin_lock_irqsave(&vha->hw->hardware_lock, flags); in qla27xx_mpi_fwdump()
1012 if (!vha->hw->mpi_fw_dump) { in qla27xx_mpi_fwdump()
1013 ql_log(ql_log_warn, vha, 0x02f3, "-> mpi_fwdump no buffer\n"); in qla27xx_mpi_fwdump()
1015 struct fwdt *fwdt = &vha->hw->fwdt[1]; in qla27xx_mpi_fwdump()
1017 void *buf = vha->hw->mpi_fw_dump; in qla27xx_mpi_fwdump()
1020 if (vha->hw->mpi_fw_dumped) { in qla27xx_mpi_fwdump()
1024 ql_log(ql_log_warn, vha, 0x02f4, in qla27xx_mpi_fwdump()
1029 ql_log(ql_log_warn, vha, 0x02f5, "-> fwdt1 running...\n"); in qla27xx_mpi_fwdump()
1031 ql_log(ql_log_warn, vha, 0x02f6, in qla27xx_mpi_fwdump()
1035 len = qla27xx_execute_fwdt_template(vha, fwdt->template, buf); in qla27xx_mpi_fwdump()
1039 ql_log(ql_log_warn, vha, 0x02f7, in qla27xx_mpi_fwdump()
1043 vha->hw->stat.num_mpi_reset++; in qla27xx_mpi_fwdump()
1047 vha->hw->mpi_fw_dump_len = len; in qla27xx_mpi_fwdump()
1048 vha->hw->mpi_fw_dumped = 1; in qla27xx_mpi_fwdump()
1050 ql_log(ql_log_warn, vha, 0x02f8, in qla27xx_mpi_fwdump()
1052 vha->host_no, vha->hw->mpi_fw_dump); in qla27xx_mpi_fwdump()
1053 qla2x00_post_uevent_work(vha, QLA_UEVENT_CODE_FW_DUMP); in qla27xx_mpi_fwdump()
1058 spin_unlock_irqrestore(&vha->hw->hardware_lock, flags); in qla27xx_mpi_fwdump()
1062 qla27xx_fwdump(scsi_qla_host_t *vha) in qla27xx_fwdump() argument
1064 lockdep_assert_held(&vha->hw->hardware_lock); in qla27xx_fwdump()
1066 if (!vha->hw->fw_dump) { in qla27xx_fwdump()
1067 ql_log(ql_log_warn, vha, 0xd01e, "-> fwdump no buffer\n"); in qla27xx_fwdump()
1068 } else if (vha->hw->fw_dumped) { in qla27xx_fwdump()
1069 ql_log(ql_log_warn, vha, 0xd01f, in qla27xx_fwdump()
1071 vha->hw->fw_dump); in qla27xx_fwdump()
1073 struct fwdt *fwdt = vha->hw->fwdt; in qla27xx_fwdump()
1075 void *buf = vha->hw->fw_dump; in qla27xx_fwdump()
1077 ql_log(ql_log_warn, vha, 0xd011, "-> fwdt0 running...\n"); in qla27xx_fwdump()
1079 ql_log(ql_log_warn, vha, 0xd012, in qla27xx_fwdump()
1083 len = qla27xx_execute_fwdt_template(vha, fwdt->template, buf); in qla27xx_fwdump()
1087 ql_log(ql_log_warn, vha, 0xd013, in qla27xx_fwdump()
1092 vha->hw->fw_dump_len = len; in qla27xx_fwdump()
1093 vha->hw->fw_dumped = true; in qla27xx_fwdump()
1095 ql_log(ql_log_warn, vha, 0xd015, in qla27xx_fwdump()
1097 vha->host_no, vha->hw->fw_dump, vha->hw->fw_dump_cap_flags); in qla27xx_fwdump()
1098 qla2x00_post_uevent_work(vha, QLA_UEVENT_CODE_FW_DUMP); in qla27xx_fwdump()