Lines Matching refs:vha
103 qla27xx_isp_reg(struct scsi_qla_host *vha) in qla27xx_isp_reg() argument
105 return &vha->hw->iobase->isp24; in qla27xx_isp_reg()
225 qla27xx_fwdt_entry_t0(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t0() argument
228 ql_dbg(ql_dbg_misc, vha, 0xd100, in qla27xx_fwdt_entry_t0()
236 qla27xx_fwdt_entry_t255(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t255() argument
239 ql_dbg(ql_dbg_misc, vha, 0xd1ff, in qla27xx_fwdt_entry_t255()
248 qla27xx_fwdt_entry_t256(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t256() argument
251 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t256()
253 ql_dbg(ql_dbg_misc, vha, 0xd200, in qla27xx_fwdt_entry_t256()
262 qla27xx_fwdt_entry_t257(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t257() argument
265 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t257()
267 ql_dbg(ql_dbg_misc, vha, 0xd201, in qla27xx_fwdt_entry_t257()
276 qla27xx_fwdt_entry_t258(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t258() argument
279 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t258()
281 ql_dbg(ql_dbg_misc, vha, 0xd202, in qla27xx_fwdt_entry_t258()
291 qla27xx_fwdt_entry_t259(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t259() argument
294 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t259()
296 ql_dbg(ql_dbg_misc, vha, 0xd203, in qla27xx_fwdt_entry_t259()
306 qla27xx_fwdt_entry_t260(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t260() argument
309 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t260()
311 ql_dbg(ql_dbg_misc, vha, 0xd204, in qla27xx_fwdt_entry_t260()
320 qla27xx_fwdt_entry_t261(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t261() argument
323 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t261()
325 ql_dbg(ql_dbg_misc, vha, 0xd205, in qla27xx_fwdt_entry_t261()
333 qla27xx_fwdt_entry_t262(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t262() argument
340 ql_dbg(ql_dbg_misc, vha, 0xd206, in qla27xx_fwdt_entry_t262()
348 end = vha->hw->fw_memory_size; in qla27xx_fwdt_entry_t262()
352 start = vha->hw->fw_shared_ram_start; in qla27xx_fwdt_entry_t262()
353 end = vha->hw->fw_shared_ram_end; in qla27xx_fwdt_entry_t262()
359 start = vha->hw->fw_ddr_ram_start; in qla27xx_fwdt_entry_t262()
360 end = vha->hw->fw_ddr_ram_end; in qla27xx_fwdt_entry_t262()
366 ql_dbg(ql_dbg_misc, vha, 0xd022, in qla27xx_fwdt_entry_t262()
373 ql_dbg(ql_dbg_misc, vha, 0xd023, in qla27xx_fwdt_entry_t262()
383 qla24xx_dump_ram(vha->hw, start, buf, dwords, &buf); in qla27xx_fwdt_entry_t262()
391 qla27xx_fwdt_entry_t263(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t263() argument
398 ql_dbg(ql_dbg_misc, vha, 0xd207, in qla27xx_fwdt_entry_t263()
401 for (i = 0; i < vha->hw->max_req_queues; i++) { in qla27xx_fwdt_entry_t263()
402 struct req_que *req = vha->hw->req_q_map[i]; in qla27xx_fwdt_entry_t263()
415 for (i = 0; i < vha->hw->max_rsp_queues; i++) { in qla27xx_fwdt_entry_t263()
416 struct rsp_que *rsp = vha->hw->rsp_q_map[i]; in qla27xx_fwdt_entry_t263()
430 struct qla_hw_data *ha = vha->hw; in qla27xx_fwdt_entry_t263()
441 ql_dbg(ql_dbg_misc, vha, 0xd026, in qla27xx_fwdt_entry_t263()
457 qla27xx_fwdt_entry_t264(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t264() argument
460 ql_dbg(ql_dbg_misc, vha, 0xd208, in qla27xx_fwdt_entry_t264()
462 if (vha->hw->fce) { in qla27xx_fwdt_entry_t264()
465 ent->t264.write_pointer = vha->hw->fce_wr; in qla27xx_fwdt_entry_t264()
466 ent->t264.base_pointer = vha->hw->fce_dma; in qla27xx_fwdt_entry_t264()
467 ent->t264.fce_enable_mb0 = vha->hw->fce_mb[0]; in qla27xx_fwdt_entry_t264()
468 ent->t264.fce_enable_mb2 = vha->hw->fce_mb[2]; in qla27xx_fwdt_entry_t264()
469 ent->t264.fce_enable_mb3 = vha->hw->fce_mb[3]; in qla27xx_fwdt_entry_t264()
470 ent->t264.fce_enable_mb4 = vha->hw->fce_mb[4]; in qla27xx_fwdt_entry_t264()
471 ent->t264.fce_enable_mb5 = vha->hw->fce_mb[5]; in qla27xx_fwdt_entry_t264()
472 ent->t264.fce_enable_mb6 = vha->hw->fce_mb[6]; in qla27xx_fwdt_entry_t264()
474 qla27xx_insertbuf(vha->hw->fce, FCE_SIZE, buf, len); in qla27xx_fwdt_entry_t264()
476 ql_dbg(ql_dbg_misc, vha, 0xd027, in qla27xx_fwdt_entry_t264()
485 qla27xx_fwdt_entry_t265(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t265() argument
488 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t265()
490 ql_dbg(ql_dbg_misc, vha, 0xd209, in qla27xx_fwdt_entry_t265()
493 qla24xx_pause_risc(reg, vha->hw); in qla27xx_fwdt_entry_t265()
499 qla27xx_fwdt_entry_t266(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t266() argument
502 ql_dbg(ql_dbg_misc, vha, 0xd20a, in qla27xx_fwdt_entry_t266()
505 qla24xx_soft_reset(vha->hw); in qla27xx_fwdt_entry_t266()
511 qla27xx_fwdt_entry_t267(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t267() argument
514 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t267()
516 ql_dbg(ql_dbg_misc, vha, 0xd20b, in qla27xx_fwdt_entry_t267()
524 qla27xx_fwdt_entry_t268(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t268() argument
527 ql_dbg(ql_dbg_misc, vha, 0xd20c, in qla27xx_fwdt_entry_t268()
531 if (vha->hw->eft) { in qla27xx_fwdt_entry_t268()
534 ent->t268.start_addr = vha->hw->eft_dma; in qla27xx_fwdt_entry_t268()
536 qla27xx_insertbuf(vha->hw->eft, EFT_SIZE, buf, len); in qla27xx_fwdt_entry_t268()
538 ql_dbg(ql_dbg_misc, vha, 0xd028, in qla27xx_fwdt_entry_t268()
544 if (vha->hw->exchoffld_buf) { in qla27xx_fwdt_entry_t268()
546 ent->t268.buf_size = vha->hw->exchoffld_size; in qla27xx_fwdt_entry_t268()
548 vha->hw->exchoffld_buf_dma; in qla27xx_fwdt_entry_t268()
550 qla27xx_insertbuf(vha->hw->exchoffld_buf, in qla27xx_fwdt_entry_t268()
551 vha->hw->exchoffld_size, buf, len); in qla27xx_fwdt_entry_t268()
553 ql_dbg(ql_dbg_misc, vha, 0xd028, in qla27xx_fwdt_entry_t268()
559 if (vha->hw->exlogin_buf) { in qla27xx_fwdt_entry_t268()
561 ent->t268.buf_size = vha->hw->exlogin_size; in qla27xx_fwdt_entry_t268()
563 vha->hw->exlogin_buf_dma; in qla27xx_fwdt_entry_t268()
565 qla27xx_insertbuf(vha->hw->exlogin_buf, in qla27xx_fwdt_entry_t268()
566 vha->hw->exlogin_size, buf, len); in qla27xx_fwdt_entry_t268()
568 ql_dbg(ql_dbg_misc, vha, 0xd028, in qla27xx_fwdt_entry_t268()
584 ql_dbg(ql_dbg_async, vha, 0xd02b, in qla27xx_fwdt_entry_t268()
594 qla27xx_fwdt_entry_t269(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t269() argument
597 ql_dbg(ql_dbg_misc, vha, 0xd20d, in qla27xx_fwdt_entry_t269()
611 qla27xx_fwdt_entry_t270(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t270() argument
614 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t270()
618 ql_dbg(ql_dbg_misc, vha, 0xd20e, in qla27xx_fwdt_entry_t270()
632 qla27xx_fwdt_entry_t271(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t271() argument
635 struct device_reg_24xx __iomem *reg = qla27xx_isp_reg(vha); in qla27xx_fwdt_entry_t271()
639 ql_dbg(ql_dbg_misc, vha, 0xd20f, in qla27xx_fwdt_entry_t271()
649 qla27xx_fwdt_entry_t272(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t272() argument
655 ql_dbg(ql_dbg_misc, vha, 0xd210, in qla27xx_fwdt_entry_t272()
658 ql_dbg(ql_dbg_misc, vha, 0xd02c, in qla27xx_fwdt_entry_t272()
661 qla27xx_dump_mpi_ram(vha->hw, start, buf, dwords, &buf); in qla27xx_fwdt_entry_t272()
669 qla27xx_fwdt_entry_t273(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t273() argument
676 ql_dbg(ql_dbg_misc, vha, 0xd211, in qla27xx_fwdt_entry_t273()
680 if (pci_read_config_dword(vha->hw->pdev, addr, &value)) in qla27xx_fwdt_entry_t273()
681 ql_dbg(ql_dbg_misc, vha, 0xd02d, in qla27xx_fwdt_entry_t273()
692 qla27xx_fwdt_entry_t274(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t274() argument
698 ql_dbg(ql_dbg_misc, vha, 0xd212, in qla27xx_fwdt_entry_t274()
701 for (i = 0; i < vha->hw->max_req_queues; i++) { in qla27xx_fwdt_entry_t274()
702 struct req_que *req = vha->hw->req_q_map[i]; in qla27xx_fwdt_entry_t274()
713 for (i = 0; i < vha->hw->max_rsp_queues; i++) { in qla27xx_fwdt_entry_t274()
714 struct rsp_que *rsp = vha->hw->rsp_q_map[i]; in qla27xx_fwdt_entry_t274()
726 struct qla_hw_data *ha = vha->hw; in qla27xx_fwdt_entry_t274()
737 ql_dbg(ql_dbg_misc, vha, 0xd02f, in qla27xx_fwdt_entry_t274()
753 qla27xx_fwdt_entry_t275(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_t275() argument
758 ql_dbg(ql_dbg_misc, vha, 0xd213, in qla27xx_fwdt_entry_t275()
761 ql_dbg(ql_dbg_misc, vha, 0xd020, in qla27xx_fwdt_entry_t275()
767 ql_dbg(ql_dbg_misc, vha, 0xd030, in qla27xx_fwdt_entry_t275()
779 qla27xx_fwdt_entry_other(struct scsi_qla_host *vha, in qla27xx_fwdt_entry_other() argument
782 ql_dbg(ql_dbg_misc, vha, 0xd2ff, in qla27xx_fwdt_entry_other()
846 qla27xx_walk_template(struct scsi_qla_host *vha, in qla27xx_walk_template() argument
852 ql_dbg(ql_dbg_misc, vha, 0xd01a, in qla27xx_walk_template()
855 if (buf && *len >= vha->hw->fw_dump_len) in qla27xx_walk_template()
857 if (qla27xx_find_entry(ent->hdr.entry_type)(vha, ent, buf, len)) 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()
870 if (buf && *len != vha->hw->fw_dump_len) in qla27xx_walk_template()
871 ql_dbg(ql_dbg_misc, vha, 0xd01b, in qla27xx_walk_template()
873 __func__, *len, vha->hw->fw_dump_len - *len); in qla27xx_walk_template()
876 ql_log(ql_log_warn, vha, 0xd015, in qla27xx_walk_template()
878 vha->host_no, vha->hw->fw_dump); in qla27xx_walk_template()
879 qla2x00_post_uevent_work(vha, QLA_UEVENT_CODE_FW_DUMP); in qla27xx_walk_template()
904 struct scsi_qla_host *vha) in qla27xx_firmware_info() argument
906 tmp->firmware_version[0] = vha->hw->fw_major_version; in qla27xx_firmware_info()
907 tmp->firmware_version[1] = vha->hw->fw_minor_version; in qla27xx_firmware_info()
908 tmp->firmware_version[2] = vha->hw->fw_subminor_version; in qla27xx_firmware_info()
910 vha->hw->fw_attributes_h << 16 | vha->hw->fw_attributes; in qla27xx_firmware_info()
912 vha->hw->fw_attributes_ext[1] << 16 | vha->hw->fw_attributes_ext[0]; in qla27xx_firmware_info()
916 ql27xx_edit_template(struct scsi_qla_host *vha, in ql27xx_edit_template() argument
921 qla27xx_firmware_info(tmp, vha); in ql27xx_edit_template()
953 qla27xx_execute_fwdt_template(struct scsi_qla_host *vha) in qla27xx_execute_fwdt_template() argument
955 struct qla27xx_fwdt_template *tmp = vha->hw->fw_dump_template; in qla27xx_execute_fwdt_template()
960 tmp = memcpy(vha->hw->fw_dump, tmp, len); in qla27xx_execute_fwdt_template()
961 ql27xx_edit_template(vha, tmp); in qla27xx_execute_fwdt_template()
962 qla27xx_walk_template(vha, tmp, tmp, &len); in qla27xx_execute_fwdt_template()
963 vha->hw->fw_dump_len = len; in qla27xx_execute_fwdt_template()
964 vha->hw->fw_dumped = 1; in qla27xx_execute_fwdt_template()
969 qla27xx_fwdt_calculate_dump_size(struct scsi_qla_host *vha) in qla27xx_fwdt_calculate_dump_size() argument
971 struct qla27xx_fwdt_template *tmp = vha->hw->fw_dump_template; in qla27xx_fwdt_calculate_dump_size()
976 qla27xx_walk_template(vha, tmp, NULL, &len); in qla27xx_fwdt_calculate_dump_size()
1023 qla27xx_fwdump(scsi_qla_host_t *vha, int hardware_locked) in qla27xx_fwdump() argument
1029 spin_lock_irqsave(&vha->hw->hardware_lock, flags); in qla27xx_fwdump()
1032 if (!vha->hw->fw_dump) in qla27xx_fwdump()
1033 ql_log(ql_log_warn, vha, 0xd01e, "fwdump buffer missing.\n"); in qla27xx_fwdump()
1034 else if (!vha->hw->fw_dump_template) in qla27xx_fwdump()
1035 ql_log(ql_log_warn, vha, 0xd01f, "fwdump template missing.\n"); in qla27xx_fwdump()
1036 else if (vha->hw->fw_dumped) in qla27xx_fwdump()
1037 ql_log(ql_log_warn, vha, 0xd300, in qla27xx_fwdump()
1039 " -- ignoring request\n", vha->hw->fw_dump); in qla27xx_fwdump()
1041 QLA_FW_STOPPED(vha->hw); in qla27xx_fwdump()
1042 qla27xx_execute_fwdt_template(vha); in qla27xx_fwdump()
1047 spin_unlock_irqrestore(&vha->hw->hardware_lock, flags); in qla27xx_fwdump()