pm8001_ha 54 drivers/scsi/pm8001/pm8001_chips.h static inline u32 pm8001_cr32(struct pm8001_hba_info *pm8001_ha, u32 bar, pm8001_ha 57 drivers/scsi/pm8001/pm8001_chips.h return readl(pm8001_ha->io_mem[bar].memvirtaddr + offset); pm8001_ha 60 drivers/scsi/pm8001/pm8001_chips.h static inline void pm8001_cw32(struct pm8001_hba_info *pm8001_ha, u32 bar, pm8001_ha 63 drivers/scsi/pm8001/pm8001_chips.h writel(val, pm8001_ha->io_mem[bar].memvirtaddr + addr); pm8001_ha 59 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 61 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 63 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm8001_tbl.interface_rev); pm8001_ha 66 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.interface_rev); pm8001_ha 84 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 86 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 88 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm8001_tbl.firmware_rev >> 24), pm8001_ha 89 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm8001_tbl.firmware_rev >> 16), pm8001_ha 90 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm8001_tbl.firmware_rev >> 8), pm8001_ha 91 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm8001_tbl.firmware_rev)); pm8001_ha 94 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.firmware_rev >> 24), pm8001_ha 95 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.firmware_rev >> 16), pm8001_ha 96 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.firmware_rev >> 8), pm8001_ha 97 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.firmware_rev)); pm8001_ha 114 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 116 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id != chip_8001) { pm8001_ha 118 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.ila_version >> 24), pm8001_ha 119 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.ila_version >> 16), pm8001_ha 120 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.ila_version >> 8), pm8001_ha 121 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.ila_version)); pm8001_ha 139 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 141 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id != chip_8001) { pm8001_ha 143 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.inc_fw_version >> 24), pm8001_ha 144 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.inc_fw_version >> 16), pm8001_ha 145 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.inc_fw_version >> 8), pm8001_ha 146 drivers/scsi/pm8001/pm8001_ctl.c (u8)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.inc_fw_version)); pm8001_ha 165 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 167 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 169 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm8001_tbl.max_out_io); pm8001_ha 172 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.max_out_io); pm8001_ha 188 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 190 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 192 drivers/scsi/pm8001/pm8001_ctl.c (u16)(pm8001_ha->main_cfg_tbl.pm8001_tbl.max_sgl >> 16) pm8001_ha 196 drivers/scsi/pm8001/pm8001_ctl.c (u16)(pm8001_ha->main_cfg_tbl.pm80xx_tbl.max_sgl >> 16) pm8001_ha 214 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 216 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 218 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm8001_tbl.max_sgl & 0x0000FFFF pm8001_ha 222 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.max_sgl & 0x0000FFFF pm8001_ha 259 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 261 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->chip_id == chip_8001) pm8001_ha 262 drivers/scsi/pm8001/pm8001_ctl.c mode = (pm8001_ha->main_cfg_tbl.pm8001_tbl.ctrl_cap_flag & pm8001_ha 266 drivers/scsi/pm8001/pm8001_ctl.c mode = (pm8001_ha->main_cfg_tbl.pm80xx_tbl.ctrl_cap_flag & pm8001_ha 287 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 289 drivers/scsi/pm8001/pm8001_ctl.c be64_to_cpu(*(__be64 *)pm8001_ha->sas_addr)); pm8001_ha 306 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 308 drivers/scsi/pm8001/pm8001_ctl.c return snprintf(buf, PAGE_SIZE, "%08xh\n", pm8001_ha->logging_level); pm8001_ha 315 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 321 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->logging_level = val; pm8001_ha 339 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 342 drivers/scsi/pm8001/pm8001_ctl.c (*(u32 *)((u8*)pm8001_ha->memoryMap.region[AAP1].virt_ptr + (r) * 32 \ pm8001_ha 374 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 379 drivers/scsi/pm8001/pm8001_ctl.c (*(u32 *)((u8 *)pm8001_ha-> \ pm8001_ha 381 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->evtlog_ib_offset + (c))) pm8001_ha 387 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->evtlog_ib_offset += SYSFS_OFFSET; pm8001_ha 388 drivers/scsi/pm8001/pm8001_ctl.c if (((pm8001_ha->evtlog_ib_offset) % (PM80XX_IB_OB_QUEUE_SIZE)) == 0) pm8001_ha 389 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->evtlog_ib_offset = 0; pm8001_ha 407 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 412 drivers/scsi/pm8001/pm8001_ctl.c (*(u32 *)((u8 *)pm8001_ha-> \ pm8001_ha 414 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->evtlog_ob_offset + (c))) pm8001_ha 420 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->evtlog_ob_offset += SYSFS_OFFSET; pm8001_ha 421 drivers/scsi/pm8001/pm8001_ctl.c if (((pm8001_ha->evtlog_ob_offset) % (PM80XX_IB_OB_QUEUE_SIZE)) == 0) pm8001_ha 422 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->evtlog_ob_offset = 0; pm8001_ha 438 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 444 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->nvmd_completion = &completion; pm8001_ha 451 drivers/scsi/pm8001/pm8001_ctl.c if (PM8001_CHIP_DISP->get_nvmd_req(pm8001_ha, &payload)) { pm8001_ha 476 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 479 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.event_log_size); pm8001_ha 494 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 497 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.event_log_size / 1024; pm8001_ha 501 drivers/scsi/pm8001/pm8001_ctl.c u32 *temp = (u32 *)pm8001_ha->memoryMap.region[IOP].virt_ptr; pm8001_ha 594 drivers/scsi/pm8001/pm8001_ctl.c static int pm8001_set_nvmd(struct pm8001_hba_info *pm8001_ha) pm8001_ha 602 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->fw_image->size > 4096) { pm8001_ha 603 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_FILE_SIZE; pm8001_ha 609 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_OUT_MEMORY; pm8001_ha 613 drivers/scsi/pm8001/pm8001_ctl.c memcpy((u8 *)&payload->func_specific, (u8 *)pm8001_ha->fw_image->data, pm8001_ha 614 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_image->size); pm8001_ha 615 drivers/scsi/pm8001/pm8001_ctl.c payload->length = pm8001_ha->fw_image->size; pm8001_ha 618 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->nvmd_completion = &completion; pm8001_ha 619 drivers/scsi/pm8001/pm8001_ctl.c ret = PM8001_CHIP_DISP->set_nvmd_req(pm8001_ha, payload); pm8001_ha 621 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_OUT_MEMORY; pm8001_ha 630 drivers/scsi/pm8001/pm8001_ctl.c static int pm8001_update_flash(struct pm8001_hba_info *pm8001_ha) pm8001_ha 643 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->fw_image->size < 28) { pm8001_ha 644 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_FILE_SIZE; pm8001_ha 649 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_OUT_MEMORY; pm8001_ha 652 drivers/scsi/pm8001/pm8001_ctl.c image_hdr = (struct pm8001_fw_image_header *)pm8001_ha->fw_image->data; pm8001_ha 653 drivers/scsi/pm8001/pm8001_ctl.c while (sizeRead < pm8001_ha->fw_image->size) { pm8001_ha 677 drivers/scsi/pm8001/pm8001_ctl.c (u8 *)pm8001_ha->fw_image->data + sizeRead, pm8001_ha 683 drivers/scsi/pm8001/pm8001_ctl.c (u8 *)pm8001_ha->fw_image->data + sizeRead, pm8001_ha 688 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->nvmd_completion = &completion; pm8001_ha 689 drivers/scsi/pm8001/pm8001_ctl.c ret = PM8001_CHIP_DISP->fw_flash_update_req(pm8001_ha, payload); pm8001_ha 691 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_OUT_MEMORY; pm8001_ha 696 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = fwControl->retcode; pm8001_ha 712 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 723 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->fw_status == FLASH_IN_PROGRESS) pm8001_ha 725 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FLASH_IN_PROGRESS; pm8001_ha 729 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_OUT_MEMORY; pm8001_ha 736 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_PARAMETERS; pm8001_ha 749 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_PARAMETERS; pm8001_ha 754 drivers/scsi/pm8001/pm8001_ctl.c ret = request_firmware(&pm8001_ha->fw_image, pm8001_ha 756 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->dev); pm8001_ha 759 drivers/scsi/pm8001/pm8001_ctl.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 763 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FAIL_OPEN_BIOS_FILE; pm8001_ha 768 drivers/scsi/pm8001/pm8001_ctl.c ret = pm8001_update_flash(pm8001_ha); pm8001_ha 770 drivers/scsi/pm8001/pm8001_ctl.c ret = pm8001_set_nvmd(pm8001_ha); pm8001_ha 772 drivers/scsi/pm8001/pm8001_ctl.c release_firmware(pm8001_ha->fw_image); pm8001_ha 779 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FLASH_OK; pm8001_ha 789 drivers/scsi/pm8001/pm8001_ctl.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 792 drivers/scsi/pm8001/pm8001_ctl.c if (flash_error_table[i].err_code == pm8001_ha->fw_status) pm8001_ha 795 drivers/scsi/pm8001/pm8001_ctl.c if (pm8001_ha->fw_status != FLASH_IN_PROGRESS) pm8001_ha 796 drivers/scsi/pm8001/pm8001_ctl.c pm8001_ha->fw_status = FLASH_OK; pm8001_ha 50 drivers/scsi/pm8001/pm8001_hwi.c static void read_main_config_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 52 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->main_cfg_tbl_addr; pm8001_ha 53 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.signature = pm8001_ha 55 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.interface_rev = pm8001_ha 57 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.firmware_rev = pm8001_ha 59 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.max_out_io = pm8001_ha 61 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.max_sgl = pm8001_ha 63 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.ctrl_cap_flag = pm8001_ha 65 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.gst_offset = pm8001_ha 67 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.inbound_queue_offset = pm8001_ha 69 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_queue_offset = pm8001_ha 71 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.hda_mode_flag = pm8001_ha 75 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.anolog_setup_table_offset = pm8001_ha 79 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_dump_offset0 = pm8001_ha 81 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_dump_length0 = pm8001_ha 83 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_dump_offset1 = pm8001_ha 85 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_dump_length1 = pm8001_ha 93 drivers/scsi/pm8001/pm8001_hwi.c static void read_general_status_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 95 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->general_stat_tbl_addr; pm8001_ha 96 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.gst_len_mpistate = pm8001_ha 98 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.iq_freeze_state0 = pm8001_ha 100 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.iq_freeze_state1 = pm8001_ha 102 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.msgu_tcnt = pm8001_ha 104 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.iop_tcnt = pm8001_ha 106 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.rsvd = pm8001_ha 108 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[0] = pm8001_ha 110 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[1] = pm8001_ha 112 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[2] = pm8001_ha 114 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[3] = pm8001_ha 116 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[4] = pm8001_ha 118 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[5] = pm8001_ha 120 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[6] = pm8001_ha 122 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.phy_state[7] = pm8001_ha 124 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.gpio_input_val = pm8001_ha 126 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.rsvd1[0] = pm8001_ha 128 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.rsvd1[1] = pm8001_ha 130 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[0] = pm8001_ha 132 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[1] = pm8001_ha 134 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[2] = pm8001_ha 136 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[3] = pm8001_ha 138 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[4] = pm8001_ha 140 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[5] = pm8001_ha 142 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[6] = pm8001_ha 144 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->gs_tbl.pm8001_tbl.recover_err_info[7] = pm8001_ha 152 drivers/scsi/pm8001/pm8001_hwi.c static void read_inbnd_queue_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 155 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->inbnd_q_tbl_addr; pm8001_ha 158 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_pci_bar = pm8001_ha 160 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_offset = pm8001_ha 169 drivers/scsi/pm8001/pm8001_hwi.c static void read_outbnd_queue_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 172 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->outbnd_q_tbl_addr; pm8001_ha 175 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_pci_bar = pm8001_ha 177 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_offset = pm8001_ha 186 drivers/scsi/pm8001/pm8001_hwi.c static void init_default_table_values(struct pm8001_hba_info *pm8001_ha) pm8001_ha 190 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *addressib = pm8001_ha->inbnd_q_tbl_addr; pm8001_ha 191 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *addressob = pm8001_ha->outbnd_q_tbl_addr; pm8001_ha 193 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.inbound_q_nppd_hppd = 0; pm8001_ha 194 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_hw_event_pid0_3 = 0; pm8001_ha 195 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_hw_event_pid4_7 = 0; pm8001_ha 196 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_ncq_event_pid0_3 = 0; pm8001_ha 197 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_ncq_event_pid4_7 = 0; pm8001_ha 198 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_tgt_ITNexus_event_pid0_3 = pm8001_ha 200 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_tgt_ITNexus_event_pid4_7 = pm8001_ha 202 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_tgt_ssp_event_pid0_3 = 0; pm8001_ha 203 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_tgt_ssp_event_pid4_7 = 0; pm8001_ha 204 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_tgt_smp_event_pid0_3 = 0; pm8001_ha 205 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_tgt_smp_event_pid4_7 = 0; pm8001_ha 207 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.upper_event_log_addr = pm8001_ha 208 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[AAP1].phys_addr_hi; pm8001_ha 209 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.lower_event_log_addr = pm8001_ha 210 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[AAP1].phys_addr_lo; pm8001_ha 211 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.event_log_size = pm8001_ha 213 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.event_log_option = 0x01; pm8001_ha 214 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.upper_iop_event_log_addr = pm8001_ha 215 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[IOP].phys_addr_hi; pm8001_ha 216 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.lower_iop_event_log_addr = pm8001_ha 217 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[IOP].phys_addr_lo; pm8001_ha 218 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.iop_event_log_size = pm8001_ha 220 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.iop_event_log_option = 0x01; pm8001_ha 221 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_interrupt = 0x01; pm8001_ha 223 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].element_pri_size_cnt = pm8001_ha 224 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MPI_QUEUE | (pm8001_ha->iomb_size << 16) | (0x00<<30); pm8001_ha 225 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].upper_base_addr = pm8001_ha 226 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[IB + i].phys_addr_hi; pm8001_ha 227 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].lower_base_addr = pm8001_ha 228 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[IB + i].phys_addr_lo; pm8001_ha 229 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].base_virt = pm8001_ha 230 drivers/scsi/pm8001/pm8001_hwi.c (u8 *)pm8001_ha->memoryMap.region[IB + i].virt_ptr; pm8001_ha 231 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].total_length = pm8001_ha 232 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[IB + i].total_len; pm8001_ha 233 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].ci_upper_base_addr = pm8001_ha 234 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[CI + i].phys_addr_hi; pm8001_ha 235 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].ci_lower_base_addr = pm8001_ha 236 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[CI + i].phys_addr_lo; pm8001_ha 237 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].ci_virt = pm8001_ha 238 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[CI + i].virt_ptr; pm8001_ha 240 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_pci_bar = pm8001_ha 243 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_offset = pm8001_ha 245 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].producer_idx = 0; pm8001_ha 246 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[i].consumer_index = 0; pm8001_ha 249 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].element_size_cnt = pm8001_ha 250 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MPI_QUEUE | (pm8001_ha->iomb_size << 16) | (0x01<<30); pm8001_ha 251 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].upper_base_addr = pm8001_ha 252 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[OB + i].phys_addr_hi; pm8001_ha 253 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].lower_base_addr = pm8001_ha 254 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[OB + i].phys_addr_lo; pm8001_ha 255 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].base_virt = pm8001_ha 256 drivers/scsi/pm8001/pm8001_hwi.c (u8 *)pm8001_ha->memoryMap.region[OB + i].virt_ptr; pm8001_ha 257 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].total_length = pm8001_ha 258 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[OB + i].total_len; pm8001_ha 259 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].pi_upper_base_addr = pm8001_ha 260 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[PI + i].phys_addr_hi; pm8001_ha 261 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].pi_lower_base_addr = pm8001_ha 262 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[PI + i].phys_addr_lo; pm8001_ha 263 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].interrup_vec_cnt_delay = pm8001_ha 265 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].pi_virt = pm8001_ha 266 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[PI + i].virt_ptr; pm8001_ha 268 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_pci_bar = pm8001_ha 271 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_offset = pm8001_ha 273 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].consumer_idx = 0; pm8001_ha 274 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[i].producer_index = 0; pm8001_ha 282 drivers/scsi/pm8001/pm8001_hwi.c static void update_main_config_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 284 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->main_cfg_tbl_addr; pm8001_ha 286 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.inbound_q_nppd_hppd); pm8001_ha 288 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_hw_event_pid0_3); pm8001_ha 290 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_hw_event_pid4_7); pm8001_ha 292 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_ncq_event_pid0_3); pm8001_ha 294 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.outbound_ncq_event_pid4_7); pm8001_ha 296 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl. pm8001_ha 299 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl. pm8001_ha 302 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl. pm8001_ha 305 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl. pm8001_ha 308 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl. pm8001_ha 311 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl. pm8001_ha 314 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.upper_event_log_addr); pm8001_ha 316 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.lower_event_log_addr); pm8001_ha 318 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.event_log_size); pm8001_ha 320 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.event_log_option); pm8001_ha 322 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.upper_iop_event_log_addr); pm8001_ha 324 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.lower_iop_event_log_addr); pm8001_ha 326 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.iop_event_log_size); pm8001_ha 328 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.iop_event_log_option); pm8001_ha 330 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_interrupt); pm8001_ha 337 drivers/scsi/pm8001/pm8001_hwi.c static void update_inbnd_queue_table(struct pm8001_hba_info *pm8001_ha, pm8001_ha 340 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->inbnd_q_tbl_addr; pm8001_ha 343 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[number].element_pri_size_cnt); pm8001_ha 345 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[number].upper_base_addr); pm8001_ha 347 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[number].lower_base_addr); pm8001_ha 349 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[number].ci_upper_base_addr); pm8001_ha 351 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl[number].ci_lower_base_addr); pm8001_ha 358 drivers/scsi/pm8001/pm8001_hwi.c static void update_outbnd_queue_table(struct pm8001_hba_info *pm8001_ha, pm8001_ha 361 drivers/scsi/pm8001/pm8001_hwi.c void __iomem *address = pm8001_ha->outbnd_q_tbl_addr; pm8001_ha 364 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[number].element_size_cnt); pm8001_ha 366 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[number].upper_base_addr); pm8001_ha 368 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[number].lower_base_addr); pm8001_ha 370 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[number].pi_upper_base_addr); pm8001_ha 372 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[number].pi_lower_base_addr); pm8001_ha 374 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl[number].interrup_vec_cnt_delay); pm8001_ha 382 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_bar4_shift(struct pm8001_hba_info *pm8001_ha, u32 shiftValue) pm8001_ha 388 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, SPC_IBW_AXI_TRANSLATION_LOW, shiftValue); pm8001_ha 393 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, SPC_IBW_AXI_TRANSLATION_LOW); pm8001_ha 397 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 410 drivers/scsi/pm8001/pm8001_hwi.c static void mpi_set_phys_g3_with_ssc(struct pm8001_hba_info *pm8001_ha, pm8001_ha 428 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 429 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, pm8001_ha 431 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 437 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, offset, 0x80001501); pm8001_ha 440 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, pm8001_ha 442 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 447 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, offset, 0x80001501); pm8001_ha 464 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 2, 0xd8); pm8001_ha 465 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, 0xd8, 0x8000C016); pm8001_ha 468 drivers/scsi/pm8001/pm8001_hwi.c pm8001_bar4_shift(pm8001_ha, 0x0); pm8001_ha 469 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 478 drivers/scsi/pm8001/pm8001_hwi.c static void mpi_set_open_retry_interval_reg(struct pm8001_hba_info *pm8001_ha, pm8001_ha 493 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 495 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, pm8001_ha 497 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 502 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, offset, value); pm8001_ha 505 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, pm8001_ha 507 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 512 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, offset, value); pm8001_ha 515 drivers/scsi/pm8001/pm8001_hwi.c pm8001_bar4_shift(pm8001_ha, 0x0); pm8001_ha 516 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 524 drivers/scsi/pm8001/pm8001_hwi.c static int mpi_init_check(struct pm8001_hba_info *pm8001_ha) pm8001_ha 531 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_IBDB_SET, SPC_MSGU_CFG_TABLE_UPDATE); pm8001_ha 536 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_IBDB_SET); pm8001_ha 544 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mr32(pm8001_ha->general_stat_tbl_addr, pm8001_ha 559 drivers/scsi/pm8001/pm8001_hwi.c static int check_fw_ready(struct pm8001_hba_info *pm8001_ha) pm8001_ha 564 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 565 drivers/scsi/pm8001/pm8001_hwi.c value1 = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2); pm8001_ha 569 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_0); pm8001_ha 576 drivers/scsi/pm8001/pm8001_hwi.c value1 = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_3); pm8001_ha 584 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_0); pm8001_ha 600 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1) pm8001_ha 602 drivers/scsi/pm8001/pm8001_hwi.c value1 = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2) pm8001_ha 610 drivers/scsi/pm8001/pm8001_hwi.c static void init_pci_device_addresses(struct pm8001_hba_info *pm8001_ha) pm8001_ha 618 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, 0x44); pm8001_ha 620 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 624 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 626 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->main_cfg_tbl_addr = base_addr = pm8001_ha 627 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->io_mem[pcibar].memvirtaddr + offset; pm8001_ha 628 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->general_stat_tbl_addr = pm8001_ha 629 drivers/scsi/pm8001/pm8001_hwi.c base_addr + pm8001_cr32(pm8001_ha, pcibar, offset + 0x18); pm8001_ha 630 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->inbnd_q_tbl_addr = pm8001_ha 631 drivers/scsi/pm8001/pm8001_hwi.c base_addr + pm8001_cr32(pm8001_ha, pcibar, offset + 0x1C); pm8001_ha 632 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->outbnd_q_tbl_addr = pm8001_ha 633 drivers/scsi/pm8001/pm8001_hwi.c base_addr + pm8001_cr32(pm8001_ha, pcibar, offset + 0x20); pm8001_ha 640 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_init(struct pm8001_hba_info *pm8001_ha) pm8001_ha 644 drivers/scsi/pm8001/pm8001_hwi.c pci_read_config_word(pm8001_ha->pdev, PCI_DEVICE_ID, &deviceid); pm8001_ha 648 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, GSM_SM_BASE)) { pm8001_ha 649 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 656 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == check_fw_ready(pm8001_ha)) { pm8001_ha 657 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 663 drivers/scsi/pm8001/pm8001_hwi.c init_pci_device_addresses(pm8001_ha); pm8001_ha 664 drivers/scsi/pm8001/pm8001_hwi.c init_default_table_values(pm8001_ha); pm8001_ha 665 drivers/scsi/pm8001/pm8001_hwi.c read_main_config_table(pm8001_ha); pm8001_ha 666 drivers/scsi/pm8001/pm8001_hwi.c read_general_status_table(pm8001_ha); pm8001_ha 667 drivers/scsi/pm8001/pm8001_hwi.c read_inbnd_queue_table(pm8001_ha); pm8001_ha 668 drivers/scsi/pm8001/pm8001_hwi.c read_outbnd_queue_table(pm8001_ha); pm8001_ha 670 drivers/scsi/pm8001/pm8001_hwi.c update_main_config_table(pm8001_ha); pm8001_ha 672 drivers/scsi/pm8001/pm8001_hwi.c update_inbnd_queue_table(pm8001_ha, i); pm8001_ha 674 drivers/scsi/pm8001/pm8001_hwi.c update_outbnd_queue_table(pm8001_ha, i); pm8001_ha 677 drivers/scsi/pm8001/pm8001_hwi.c mpi_set_phys_g3_with_ssc(pm8001_ha, 0); pm8001_ha 679 drivers/scsi/pm8001/pm8001_hwi.c mpi_set_open_retry_interval_reg(pm8001_ha, 119); pm8001_ha 682 drivers/scsi/pm8001/pm8001_hwi.c if (0 == mpi_init_check(pm8001_ha)) { pm8001_ha 683 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 692 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, 0x0033c0, 0x1); pm8001_ha 693 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, 0x0033c4, 0x0); pm8001_ha 697 drivers/scsi/pm8001/pm8001_hwi.c static int mpi_uninit_check(struct pm8001_hba_info *pm8001_ha) pm8001_ha 703 drivers/scsi/pm8001/pm8001_hwi.c pci_read_config_word(pm8001_ha->pdev, PCI_DEVICE_ID, &deviceid); pm8001_ha 705 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, GSM_SM_BASE)) { pm8001_ha 706 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 712 drivers/scsi/pm8001/pm8001_hwi.c init_pci_device_addresses(pm8001_ha); pm8001_ha 715 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_IBDB_SET, SPC_MSGU_CFG_TABLE_RESET); pm8001_ha 721 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_IBDB_SET); pm8001_ha 726 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 737 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mr32(pm8001_ha->general_stat_tbl_addr, pm8001_ha 744 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 756 drivers/scsi/pm8001/pm8001_hwi.c static u32 soft_reset_ready_check(struct pm8001_hba_info *pm8001_ha) pm8001_ha 759 drivers/scsi/pm8001/pm8001_hwi.c if (mpi_uninit_check(pm8001_ha) != 0) { pm8001_ha 760 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 765 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2) pm8001_ha 768 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 773 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 774 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, RB6_ACCESS_REG)) { pm8001_ha 775 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 776 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 781 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, SPC_RB6_OFFSET, pm8001_ha 783 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, SPC_RB6_OFFSET, RB6_MAGIC_NUMBER_RST); pm8001_ha 786 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2) & pm8001_ha 789 drivers/scsi/pm8001/pm8001_hwi.c regVal1 = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 790 drivers/scsi/pm8001/pm8001_hwi.c regVal2 = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2); pm8001_ha 791 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 795 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 797 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_0))); pm8001_ha 798 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 800 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_3))); pm8001_ha 801 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 804 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 815 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_soft_rst(struct pm8001_hba_info *pm8001_ha) pm8001_ha 824 drivers/scsi/pm8001/pm8001_hwi.c if (soft_reset_ready_check(pm8001_ha) != 0) { pm8001_ha 825 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("FW is not ready\n")); pm8001_ha 832 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 833 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, MBIC_AAP1_ADDR_BASE)) { pm8001_ha 834 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 835 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 840 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, MBIC_NMI_ENABLE_VPE0_IOP); pm8001_ha 841 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 843 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, MBIC_NMI_ENABLE_VPE0_IOP, 0x0); pm8001_ha 845 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, MBIC_IOP_ADDR_BASE)) { pm8001_ha 846 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 847 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 852 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, MBIC_NMI_ENABLE_VPE0_AAP1); pm8001_ha 853 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 855 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, MBIC_NMI_ENABLE_VPE0_AAP1, 0x0); pm8001_ha 857 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, PCIE_EVENT_INTERRUPT_ENABLE); pm8001_ha 858 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 860 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, PCIE_EVENT_INTERRUPT_ENABLE, 0x0); pm8001_ha 862 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, PCIE_EVENT_INTERRUPT); pm8001_ha 863 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 865 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, PCIE_EVENT_INTERRUPT, regVal); pm8001_ha 867 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, PCIE_ERROR_INTERRUPT_ENABLE); pm8001_ha 868 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 870 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, PCIE_ERROR_INTERRUPT_ENABLE, 0x0); pm8001_ha 872 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, PCIE_ERROR_INTERRUPT); pm8001_ha 873 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 875 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, PCIE_ERROR_INTERRUPT, regVal); pm8001_ha 878 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1) pm8001_ha 884 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_0, signature); pm8001_ha 888 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, GSM_ADDR_BASE)) { pm8001_ha 889 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 890 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 895 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 898 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_CONFIG_RESET))); pm8001_ha 901 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, GSM_CONFIG_RESET); pm8001_ha 912 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_CONFIG_RESET, regVal); pm8001_ha 913 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 916 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_CONFIG_RESET))); pm8001_ha 920 drivers/scsi/pm8001/pm8001_hwi.c regVal1 = pm8001_cr32(pm8001_ha, 2, GSM_READ_ADDR_PARITY_CHECK); pm8001_ha 921 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 924 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_READ_ADDR_PARITY_CHECK, 0x0); pm8001_ha 925 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 928 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_READ_ADDR_PARITY_CHECK))); pm8001_ha 931 drivers/scsi/pm8001/pm8001_hwi.c regVal2 = pm8001_cr32(pm8001_ha, 2, GSM_WRITE_ADDR_PARITY_CHECK); pm8001_ha 932 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 935 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_WRITE_ADDR_PARITY_CHECK, 0x0); pm8001_ha 936 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 939 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_WRITE_ADDR_PARITY_CHECK))); pm8001_ha 942 drivers/scsi/pm8001/pm8001_hwi.c regVal3 = pm8001_cr32(pm8001_ha, 2, GSM_WRITE_DATA_PARITY_CHECK); pm8001_ha 943 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 946 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_WRITE_DATA_PARITY_CHECK, 0x0); pm8001_ha 947 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 950 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_WRITE_DATA_PARITY_CHECK))); pm8001_ha 955 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, GPIO_ADDR_BASE)) { pm8001_ha 956 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 957 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 962 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, GPIO_GPIO_0_0UTPUT_CTL_OFFSET); pm8001_ha 963 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 968 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GPIO_GPIO_0_0UTPUT_CTL_OFFSET, regVal); pm8001_ha 972 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, SPC_TOP_LEVEL_ADDR_BASE)) { pm8001_ha 973 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 974 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 979 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, SPC_REG_RESET); pm8001_ha 980 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 984 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, SPC_REG_RESET, regVal); pm8001_ha 987 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, SPC_REG_RESET); pm8001_ha 988 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 992 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, SPC_REG_RESET, regVal); pm8001_ha 998 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, SPC_REG_RESET); pm8001_ha 999 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1003 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, SPC_REG_RESET, regVal); pm8001_ha 1010 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, GSM_ADDR_BASE)) { pm8001_ha 1011 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1012 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1017 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1019 drivers/scsi/pm8001/pm8001_hwi.c "Reset = 0x%x\n", pm8001_cr32(pm8001_ha, 2, GSM_CONFIG_RESET))); pm8001_ha 1020 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, GSM_CONFIG_RESET); pm8001_ha 1030 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_CONFIG_RESET, regVal); pm8001_ha 1031 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1034 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_CONFIG_RESET))); pm8001_ha 1037 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, GSM_READ_ADDR_PARITY_CHECK); pm8001_ha 1039 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1042 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_READ_ADDR_PARITY_CHECK, regVal1); pm8001_ha 1043 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1046 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_READ_ADDR_PARITY_CHECK))); pm8001_ha 1048 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, GSM_WRITE_ADDR_PARITY_CHECK); pm8001_ha 1049 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_WRITE_ADDR_PARITY_CHECK, regVal2); pm8001_ha 1050 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1053 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_WRITE_ADDR_PARITY_CHECK))); pm8001_ha 1055 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, GSM_WRITE_DATA_PARITY_CHECK); pm8001_ha 1056 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, GSM_WRITE_DATA_PARITY_CHECK, regVal3); pm8001_ha 1057 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1060 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 2, GSM_WRITE_DATA_PARITY_CHECK))); pm8001_ha 1064 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, SPC_TOP_LEVEL_ADDR_BASE)) { pm8001_ha 1065 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1066 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1071 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 2, SPC_REG_RESET); pm8001_ha 1073 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 2, SPC_REG_RESET, regVal); pm8001_ha 1084 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1) & pm8001_ha 1089 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, pm8001_ha 1091 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1095 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1097 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, pm8001_ha 1099 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1101 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, pm8001_ha 1103 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1105 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, pm8001_ha 1107 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1112 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODCR, ODCR_CLEAR_ALL); pm8001_ha 1113 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, ODMR_CLEAR_ALL); pm8001_ha 1118 drivers/scsi/pm8001/pm8001_hwi.c if (check_fw_ready(pm8001_ha) == -1) { pm8001_ha 1119 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 1121 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1124 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2); pm8001_ha 1126 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1129 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1131 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, pm8001_ha 1133 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1135 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cr32(pm8001_ha, 0, pm8001_ha 1137 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1141 drivers/scsi/pm8001/pm8001_hwi.c pm8001_bar4_shift(pm8001_ha, 0); pm8001_ha 1142 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1144 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1149 drivers/scsi/pm8001/pm8001_hwi.c static void pm8001_hw_chip_rst(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1153 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1157 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, SPC_REG_RESET); pm8001_ha 1159 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, SPC_REG_RESET, regVal); pm8001_ha 1165 drivers/scsi/pm8001/pm8001_hwi.c regVal = pm8001_cr32(pm8001_ha, 1, SPC_REG_RESET); pm8001_ha 1167 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 1, SPC_REG_RESET, regVal); pm8001_ha 1178 drivers/scsi/pm8001/pm8001_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1186 drivers/scsi/pm8001/pm8001_hwi.c void pm8001_chip_iounmap(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1200 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->io_mem[logical].memvirtaddr) { pm8001_ha 1201 drivers/scsi/pm8001/pm8001_hwi.c iounmap(pm8001_ha->io_mem[logical].memvirtaddr); pm8001_ha 1213 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_intx_interrupt_enable(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1215 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, ODMR_CLEAR_ALL); pm8001_ha 1216 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODCR, ODCR_CLEAR_ALL); pm8001_ha 1224 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_intx_interrupt_disable(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1226 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, ODMR_MASK_ALL); pm8001_ha 1236 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_msix_interrupt_enable(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1243 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, msi_index, MSIX_INTERRUPT_ENABLE); pm8001_ha 1245 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODCR, value); pm8001_ha 1254 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_msix_interrupt_disable(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1260 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, 0, msi_index, MSIX_INTERRUPT_DISABLE); pm8001_ha 1269 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_interrupt_enable(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 1272 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_msix_interrupt_enable(pm8001_ha, 0); pm8001_ha 1274 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_intx_interrupt_enable(pm8001_ha); pm8001_ha 1283 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_interrupt_disable(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 1286 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_msix_interrupt_disable(pm8001_ha, 0); pm8001_ha 1288 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_intx_interrupt_disable(pm8001_ha); pm8001_ha 1340 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_build_cmd(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1347 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_mpi_msg_free_get(circularQ, pm8001_ha->iomb_size, pm8001_ha 1349 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1355 drivers/scsi/pm8001/pm8001_hwi.c memcpy(pMessage, payload, (pm8001_ha->iomb_size - pm8001_ha 1365 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, circularQ->pi_pci_bar, pm8001_ha 1367 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1374 drivers/scsi/pm8001/pm8001_hwi.c u32 pm8001_mpi_msg_free_set(struct pm8001_hba_info *pm8001_ha, void *pMsg, pm8001_ha 1383 drivers/scsi/pm8001/pm8001_hwi.c circularQ->consumer_idx * pm8001_ha->iomb_size); pm8001_ha 1385 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1392 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1402 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, circularQ->ci_pci_bar, circularQ->ci_offset, pm8001_ha 1407 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1421 drivers/scsi/pm8001/pm8001_hwi.c u32 pm8001_mpi_msg_consume(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1435 drivers/scsi/pm8001/pm8001_hwi.c circularQ->consumer_idx * pm8001_ha->iomb_size); pm8001_ha 1447 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1463 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, pm8001_ha 1476 drivers/scsi/pm8001/pm8001_hwi.c pm8001_cw32(pm8001_ha, circularQ->ci_pci_bar, pm8001_ha 1527 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_hba_info *pm8001_ha = pw->pm8001_ha; pm8001_ha 1534 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 1539 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1546 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[i]; pm8001_ha 1552 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1568 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("task 0x%p" pm8001_ha 1572 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 1573 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1576 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 1578 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1587 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_hba_info *pm8001_ha = pw->pm8001_ha; pm8001_ha 1591 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1596 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1611 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 1617 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1627 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[i]; pm8001_ha 1633 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1645 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1654 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1662 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1667 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1669 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1676 drivers/scsi/pm8001/pm8001_hwi.c pm8001_open_reject_retry(pm8001_ha, t, pm8001_dev); pm8001_ha 1677 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("...Complete\n")); pm8001_ha 1699 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_handle_event(struct pm8001_hba_info *pm8001_ha, void *data, pm8001_ha 1707 drivers/scsi/pm8001/pm8001_hwi.c pw->pm8001_ha = pm8001_ha; pm8001_ha 1718 drivers/scsi/pm8001/pm8001_hwi.c static void pm8001_send_abort_all(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1731 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("dev is null\n")); pm8001_ha 1738 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("cannot " pm8001_ha 1745 drivers/scsi/pm8001/pm8001_hwi.c res = pm8001_tag_alloc(pm8001_ha, &ccb_tag); pm8001_ha 1749 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[ccb_tag]; pm8001_ha 1754 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 1761 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &task_abort, 0); pm8001_ha 1763 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, ccb_tag); pm8001_ha 1767 drivers/scsi/pm8001/pm8001_hwi.c static void pm8001_send_read_log(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1783 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1789 drivers/scsi/pm8001/pm8001_hwi.c res = pm8001_tag_alloc(pm8001_ha, &ccb_tag); pm8001_ha 1792 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1803 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, ccb_tag); pm8001_ha 1804 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1811 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[ccb_tag]; pm8001_ha 1819 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 1834 drivers/scsi/pm8001/pm8001_hwi.c res = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &sata_cmd, 0); pm8001_ha 1837 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, ccb_tag); pm8001_ha 1854 drivers/scsi/pm8001/pm8001_hwi.c mpi_ssp_completion(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 1869 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 1881 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1889 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1895 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_SUCCESS" pm8001_ha 1905 drivers/scsi/pm8001/pm8001_hwi.c sas_ssp_task_response(pm8001_ha->dev, t, iu); pm8001_ha 1911 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1918 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW" pm8001_ha 1927 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1933 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1941 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1948 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1955 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1962 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1969 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1975 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 1980 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1987 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1995 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2002 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2009 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2015 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2021 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2028 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2034 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2040 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2045 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2050 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2056 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2062 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2068 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2075 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2082 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2091 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("task 0x%p done with" pm8001_ha 2095 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2098 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2105 drivers/scsi/pm8001/pm8001_hwi.c static void mpi_ssp_event(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 2119 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2123 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2128 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2133 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n");) pm8001_ha 2141 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2143 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, t, IO_XFER_ERROR_BREAK); pm8001_ha 2146 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2153 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2161 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2168 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2175 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2181 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2186 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2193 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2201 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2208 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2215 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2221 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2223 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, t, IO_XFER_OPEN_RETRY_TIMEOUT); pm8001_ha 2226 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2232 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2238 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2244 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2250 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2256 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2262 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2266 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2279 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("task 0x%p done with" pm8001_ha 2283 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2286 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2294 drivers/scsi/pm8001/pm8001_hwi.c mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 2318 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2322 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2328 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2337 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2344 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2351 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2361 drivers/scsi/pm8001/pm8001_hwi.c sata_addr_low[i] = pm8001_ha->sas_addr[j]; pm8001_ha 2363 drivers/scsi/pm8001/pm8001_hwi.c sata_addr_hi[i] = pm8001_ha->sas_addr[j]; pm8001_ha 2385 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2390 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2397 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_SUCCESS\n")); pm8001_ha 2408 drivers/scsi/pm8001/pm8001_hwi.c pm8001_send_abort_all(pm8001_ha, pm8001_dev); pm8001_ha 2410 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 2419 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2427 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2431 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2435 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2443 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2450 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2460 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2469 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2475 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2481 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2488 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2496 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2503 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2510 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2515 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2520 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2525 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2531 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2536 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2541 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2549 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2555 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2560 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2565 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2572 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2578 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2584 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2590 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2596 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2602 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2608 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2614 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2619 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_dev, pm8001_ha 2623 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2628 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2634 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2639 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_dev, pm8001_ha 2643 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2648 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2655 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2668 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2672 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2675 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2680 drivers/scsi/pm8001/pm8001_hwi.c static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 2694 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2700 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2704 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2710 drivers/scsi/pm8001/pm8001_hwi.c pm8001_dev = pm8001_find_dev(pm8001_ha, dev_id); pm8001_ha 2713 drivers/scsi/pm8001/pm8001_hwi.c pm8001_send_read_log(pm8001_ha, pm8001_dev); pm8001_ha 2717 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2721 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2726 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2731 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n")); pm8001_ha 2739 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2745 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2752 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2760 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2767 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2774 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2779 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2784 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2789 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2796 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2804 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2811 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2817 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2823 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2829 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2835 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2841 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2847 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2853 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2859 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2865 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2869 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2875 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2888 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2892 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2895 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2901 drivers/scsi/pm8001/pm8001_hwi.c mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 2916 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2921 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2928 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_SUCCESS\n")); pm8001_ha 2935 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2943 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n")); pm8001_ha 2951 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_NO_DEVICE\n")); pm8001_ha 2956 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2962 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2968 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2974 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2981 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2988 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2995 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3000 drivers/scsi/pm8001/pm8001_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 3005 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3012 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3020 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3027 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3033 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3040 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3046 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3053 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3059 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3066 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3073 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3086 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("task 0x%p done with" pm8001_ha 3090 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 3093 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 3099 drivers/scsi/pm8001/pm8001_hwi.c void pm8001_mpi_set_dev_state_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3105 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 3111 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("Set device id = 0x%x state " pm8001_ha 3117 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 3120 drivers/scsi/pm8001/pm8001_hwi.c void pm8001_mpi_set_nvmd_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3125 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 3127 drivers/scsi/pm8001/pm8001_hwi.c complete(pm8001_ha->nvmd_completion); pm8001_ha 3128 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("Set nvm data complete!\n")); pm8001_ha 3130 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3136 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 3140 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_get_nvmd_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3146 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 3150 drivers/scsi/pm8001/pm8001_hwi.c void *virt_addr = pm8001_ha->memoryMap.region[NVMD].virt_ptr; pm8001_ha 3153 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("Get nvm data complete!\n")); pm8001_ha 3155 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3157 drivers/scsi/pm8001/pm8001_hwi.c complete(pm8001_ha->nvmd_completion); pm8001_ha 3163 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3167 drivers/scsi/pm8001/pm8001_hwi.c memcpy(pm8001_ha->sas_addr, pm8001_ha 3170 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3183 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3188 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3196 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->memoryMap.region[NVMD].virt_ptr, pm8001_ha 3201 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 3202 drivers/scsi/pm8001/pm8001_hwi.c complete(pm8001_ha->nvmd_completion); pm8001_ha 3205 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_local_phy_ctl(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3215 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3219 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3222 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->phy[phy_id].reset_success = true; pm8001_ha 3224 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->phy[phy_id].enable_completion) { pm8001_ha 3225 drivers/scsi/pm8001/pm8001_hwi.c complete(pm8001_ha->phy[phy_id].enable_completion); pm8001_ha 3226 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->phy[phy_id].enable_completion = NULL; pm8001_ha 3228 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 3243 drivers/scsi/pm8001/pm8001_hwi.c void pm8001_bytes_dmaed(struct pm8001_hba_info *pm8001_ha, int i) pm8001_ha 3245 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[i]; pm8001_ha 3268 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("phy %d byte dmaded.\n", i)); pm8001_ha 3271 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->sas->notify_port_event(sas_phy, PORTE_BYTES_DMAED); pm8001_ha 3321 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_hba_info *pm8001_ha = phy->sas_phy.ha->lldd_ha; pm8001_ha 3323 drivers/scsi/pm8001/pm8001_hwi.c u64 addr = be64_to_cpu(*(__be64 *)pm8001_ha->sas_addr); pm8001_ha 3343 drivers/scsi/pm8001/pm8001_hwi.c static void pm8001_hw_event_ack_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3352 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[Qnum]; pm8001_ha 3358 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 3361 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3370 drivers/scsi/pm8001/pm8001_hwi.c hw_event_sas_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3383 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 3384 drivers/scsi/pm8001/pm8001_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 3385 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3390 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3396 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3400 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("end device.\n")); pm8001_ha 3401 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 3407 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3413 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3419 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3438 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->flags == PM8001F_RUN_TIME) pm8001_ha 3440 drivers/scsi/pm8001/pm8001_hwi.c pm8001_bytes_dmaed(pm8001_ha, phy_id); pm8001_ha 3449 drivers/scsi/pm8001/pm8001_hwi.c hw_event_sata_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3462 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 3463 drivers/scsi/pm8001/pm8001_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 3464 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3466 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3485 drivers/scsi/pm8001/pm8001_hwi.c pm8001_bytes_dmaed(pm8001_ha, phy_id); pm8001_ha 3494 drivers/scsi/pm8001/pm8001_hwi.c hw_event_phy_down(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3505 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 3506 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3516 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3518 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3521 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN, pm8001_ha 3525 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3529 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3534 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3536 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3539 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN, pm8001_ha 3544 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3562 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_reg_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3573 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[htag]; pm8001_ha 3577 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3581 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("DEVREG_SUCCESS\n")); pm8001_ha 3585 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3589 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3593 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3597 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3601 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3605 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3609 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3613 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3620 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, htag); pm8001_ha 3624 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_dereg_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3634 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3645 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_fw_flash_update_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3652 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 3656 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3660 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3664 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3668 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3672 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3676 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3680 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3684 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3688 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3692 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3699 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 3700 drivers/scsi/pm8001/pm8001_hwi.c complete(pm8001_ha->nvmd_completion); pm8001_ha 3704 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_general_event(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 3711 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3714 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3720 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_mpi_task_abort_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3736 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3742 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 3747 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3753 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3758 drivers/scsi/pm8001/pm8001_hwi.c PM8001_EH_DBG(pm8001_ha, pm8001_printk("IO_SUCCESS\n")); pm8001_ha 3763 drivers/scsi/pm8001/pm8001_hwi.c PM8001_EH_DBG(pm8001_ha, pm8001_printk("IO_NOT_VALID\n")); pm8001_ha 3772 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 3776 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 3791 drivers/scsi/pm8001/pm8001_hwi.c static int mpi_hw_event(struct pm8001_hba_info *pm8001_ha, void* piomb) pm8001_ha 3805 drivers/scsi/pm8001/pm8001_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 3806 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3808 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3812 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3817 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->flags == PM8001F_RUN_TIME && pm8001_ha 3823 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3825 drivers/scsi/pm8001/pm8001_hwi.c hw_event_sas_phy_up(pm8001_ha, piomb); pm8001_ha 3828 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3830 drivers/scsi/pm8001/pm8001_hwi.c hw_event_sata_phy_up(pm8001_ha, piomb); pm8001_ha 3833 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3840 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3845 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3850 drivers/scsi/pm8001/pm8001_hwi.c hw_event_phy_down(pm8001_ha, piomb); pm8001_ha 3853 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3862 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3864 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_BROADCAST_CHANGE, pm8001_ha 3872 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3879 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3887 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3889 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3896 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3898 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3906 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3908 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3916 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3918 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3926 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3930 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3938 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3940 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3945 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3950 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3957 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3959 drivers/scsi/pm8001/pm8001_hwi.c pm8001_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3967 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3974 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3981 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3985 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3989 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3993 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4005 drivers/scsi/pm8001/pm8001_hwi.c static void process_one_iomb(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 4010 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("process_one_iomb:")); pm8001_ha 4014 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("OPC_OUB_ECHO\n")); pm8001_ha 4017 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4019 drivers/scsi/pm8001/pm8001_hwi.c mpi_hw_event(pm8001_ha, piomb); pm8001_ha 4022 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4024 drivers/scsi/pm8001/pm8001_hwi.c mpi_ssp_completion(pm8001_ha, piomb); pm8001_ha 4027 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4029 drivers/scsi/pm8001/pm8001_hwi.c mpi_smp_completion(pm8001_ha, piomb); pm8001_ha 4032 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4034 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_local_phy_ctl(pm8001_ha, piomb); pm8001_ha 4037 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4039 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_reg_resp(pm8001_ha, piomb); pm8001_ha 4042 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4044 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_dereg_resp(pm8001_ha, piomb); pm8001_ha 4047 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4051 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4053 drivers/scsi/pm8001/pm8001_hwi.c mpi_sata_completion(pm8001_ha, piomb); pm8001_ha 4056 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4058 drivers/scsi/pm8001/pm8001_hwi.c mpi_sata_event(pm8001_ha, piomb); pm8001_ha 4061 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4063 drivers/scsi/pm8001/pm8001_hwi.c mpi_ssp_event(pm8001_ha, piomb); pm8001_ha 4066 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4071 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4076 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4080 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4082 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_fw_flash_update_resp(pm8001_ha, piomb); pm8001_ha 4085 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4089 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4093 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4095 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_general_event(pm8001_ha, piomb); pm8001_ha 4098 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4100 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_task_abort_resp(pm8001_ha, piomb); pm8001_ha 4103 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4105 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_task_abort_resp(pm8001_ha, piomb); pm8001_ha 4108 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4112 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4116 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4120 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4124 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4128 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4130 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_task_abort_resp(pm8001_ha, piomb); pm8001_ha 4133 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4135 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_get_nvmd_resp(pm8001_ha, piomb); pm8001_ha 4138 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4140 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_set_nvmd_resp(pm8001_ha, piomb); pm8001_ha 4143 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4147 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4149 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_set_dev_state_resp(pm8001_ha, piomb); pm8001_ha 4152 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4156 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4160 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4164 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4171 drivers/scsi/pm8001/pm8001_hwi.c static int process_oq(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 4179 drivers/scsi/pm8001/pm8001_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 4180 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->outbnd_q_tbl[vec]; pm8001_ha 4182 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_msg_consume(pm8001_ha, circularQ, &pMsg1, &bc); pm8001_ha 4185 drivers/scsi/pm8001/pm8001_hwi.c process_one_iomb(pm8001_ha, (void *)(pMsg1 - 4)); pm8001_ha 4187 drivers/scsi/pm8001/pm8001_hwi.c pm8001_mpi_msg_free_set(pm8001_ha, pMsg1, pm8001_ha 4200 drivers/scsi/pm8001/pm8001_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 4238 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_smp_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4256 drivers/scsi/pm8001/pm8001_hwi.c elem = dma_map_sg(pm8001_ha->dev, sg_req, 1, DMA_TO_DEVICE); pm8001_ha 4262 drivers/scsi/pm8001/pm8001_hwi.c elem = dma_map_sg(pm8001_ha->dev, sg_resp, 1, DMA_FROM_DEVICE); pm8001_ha 4275 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4286 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, pm8001_ha 4294 drivers/scsi/pm8001/pm8001_hwi.c dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_resp, 1, pm8001_ha 4297 drivers/scsi/pm8001/pm8001_hwi.c dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_req, 1, pm8001_ha 4307 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4333 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4355 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &ssp_cmd, 0); pm8001_ha 4359 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_sata_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4376 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4379 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("no data\n")); pm8001_ha 4383 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("DMA\n")); pm8001_ha 4386 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("PIO\n")); pm8001_ha 4391 drivers/scsi/pm8001/pm8001_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("FPDMA\n")); pm8001_ha 4449 drivers/scsi/pm8001/pm8001_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 4453 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free(pm8001_ha, task, ccb, tag); pm8001_ha 4457 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ccb_task_free_done(pm8001_ha, task, pm8001_ha 4464 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &sata_cmd, 0); pm8001_ha 4475 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id) pm8001_ha 4482 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4497 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->sas_addr, SAS_ADDR_SIZE); pm8001_ha 4499 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opcode, &payload, 0); pm8001_ha 4509 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_phy_stop_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4517 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4521 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opcode, &payload, 0); pm8001_ha 4528 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_reg_dev_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4543 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4546 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4549 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 4580 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4587 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_chip_dereg_dev_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4595 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4599 drivers/scsi/pm8001/pm8001_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 4601 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4612 drivers/scsi/pm8001/pm8001_hwi.c static int pm8001_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4620 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4624 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4628 drivers/scsi/pm8001/pm8001_hwi.c static u32 pm8001_chip_is_our_interrupt(struct pm8001_hba_info *pm8001_ha) pm8001_ha 4635 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_ODR); pm8001_ha 4649 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_isr(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 4651 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_interrupt_disable(pm8001_ha, vec); pm8001_ha 4652 drivers/scsi/pm8001/pm8001_hwi.c process_oq(pm8001_ha, vec); pm8001_ha 4653 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_interrupt_enable(pm8001_ha, vec); pm8001_ha 4657 drivers/scsi/pm8001/pm8001_hwi.c static int send_task_abort(struct pm8001_hba_info *pm8001_ha, u32 opc, pm8001_ha 4663 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4675 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &task_abort, 0); pm8001_ha 4684 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_chip_abort_task(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4689 drivers/scsi/pm8001/pm8001_hwi.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 4699 drivers/scsi/pm8001/pm8001_hwi.c rc = send_task_abort(pm8001_ha, opc, device_id, flag, pm8001_ha 4702 drivers/scsi/pm8001/pm8001_hwi.c PM8001_EH_DBG(pm8001_ha, pm8001_printk("rc= %d\n", rc)); pm8001_ha 4712 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_chip_ssp_tm_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4729 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->chip_id != chip_8001) pm8001_ha 4731 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4732 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &sspTMCmd, 0); pm8001_ha 4736 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_chip_get_nvmd_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4755 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4757 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4762 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 4777 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4779 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4786 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4788 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4795 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4797 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4804 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4806 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4814 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4816 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4822 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &nvmd_req, 0); pm8001_ha 4825 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 4830 drivers/scsi/pm8001/pm8001_hwi.c int pm8001_chip_set_nvmd_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4847 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4848 drivers/scsi/pm8001/pm8001_hwi.c memcpy(pm8001_ha->memoryMap.region[NVMD].virt_ptr, pm8001_ha 4852 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4857 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 4871 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4873 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4881 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4883 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4890 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4892 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4899 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_hi); pm8001_ha 4901 drivers/scsi/pm8001/pm8001_hwi.c cpu_to_le32(pm8001_ha->memoryMap.region[NVMD].phys_addr_lo); pm8001_ha 4906 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &nvmd_req, 0); pm8001_ha 4909 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 4920 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_fw_flash_update_build(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4930 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4941 drivers/scsi/pm8001/pm8001_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4946 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_fw_flash_update_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4955 drivers/scsi/pm8001/pm8001_hwi.c void *buffer = pm8001_ha->memoryMap.region[FW_FLASH].virt_ptr; pm8001_ha 4956 drivers/scsi/pm8001/pm8001_hwi.c dma_addr_t phys_addr = pm8001_ha->memoryMap.region[FW_FLASH].phys_addr; pm8001_ha 4974 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4979 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 4982 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_chip_fw_flash_update_build(pm8001_ha, &flash_update_info, pm8001_ha 4996 drivers/scsi/pm8001/pm8001_hwi.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 4999 drivers/scsi/pm8001/pm8001_hwi.c gsm_dump_offset = pm8001_ha->fatal_forensic_shift_offset; pm8001_ha 5006 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->chip_id == chip_8001) pm8001_ha 5020 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->chip_id == chip_8001) pm8001_ha 5028 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 5030 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, pm8001_ha 5035 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm80xx_bar4_shift(pm8001_ha, pm8001_ha 5044 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, bar, (work_offset + offset) & pm8001_ha 5050 drivers/scsi/pm8001/pm8001_hwi.c value = pm8001_cr32(pm8001_ha, bar, (work_offset + offset) & pm8001_ha 5056 drivers/scsi/pm8001/pm8001_hwi.c if (-1 == pm8001_bar4_shift(pm8001_ha, 0)) pm8001_ha 5058 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->fatal_forensic_shift_offset += 1024; pm8001_ha 5060 drivers/scsi/pm8001/pm8001_hwi.c if (pm8001_ha->fatal_forensic_shift_offset >= 0x100000) pm8001_ha 5061 drivers/scsi/pm8001/pm8001_hwi.c pm8001_ha->fatal_forensic_shift_offset = 0; pm8001_ha 5066 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_set_dev_state_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 5076 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 5079 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 5082 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 5086 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 5092 drivers/scsi/pm8001/pm8001_hwi.c pm8001_chip_sas_re_initialization(struct pm8001_hba_info *pm8001_ha) pm8001_ha 5101 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 5104 drivers/scsi/pm8001/pm8001_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 5106 drivers/scsi/pm8001/pm8001_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 5111 drivers/scsi/pm8001/pm8001_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 5113 drivers/scsi/pm8001/pm8001_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 119 drivers/scsi/pm8001/pm8001_init.c static void pm8001_phy_init(struct pm8001_hba_info *pm8001_ha, int phy_id) pm8001_ha 121 drivers/scsi/pm8001/pm8001_init.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 124 drivers/scsi/pm8001/pm8001_init.c phy->pm8001_ha = pm8001_ha; pm8001_ha 125 drivers/scsi/pm8001/pm8001_init.c sas_phy->enabled = (phy_id < pm8001_ha->chip->n_phy) ? 1 : 0; pm8001_ha 136 drivers/scsi/pm8001/pm8001_init.c sas_phy->ha = (struct sas_ha_struct *)pm8001_ha->shost->hostdata; pm8001_ha 145 drivers/scsi/pm8001/pm8001_init.c static void pm8001_free(struct pm8001_hba_info *pm8001_ha) pm8001_ha 149 drivers/scsi/pm8001/pm8001_init.c if (!pm8001_ha) pm8001_ha 153 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->memoryMap.region[i].virt_ptr != NULL) { pm8001_ha 154 drivers/scsi/pm8001/pm8001_init.c dma_free_coherent(&pm8001_ha->pdev->dev, pm8001_ha 155 drivers/scsi/pm8001/pm8001_init.c (pm8001_ha->memoryMap.region[i].total_len + pm8001_ha 156 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[i].alignment), pm8001_ha 157 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[i].virt_ptr, pm8001_ha 158 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[i].phys_addr); pm8001_ha 161 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->chip_iounmap(pm8001_ha); pm8001_ha 163 drivers/scsi/pm8001/pm8001_init.c kfree(pm8001_ha->tags); pm8001_ha 164 drivers/scsi/pm8001/pm8001_init.c kfree(pm8001_ha); pm8001_ha 176 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 180 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = irq_vector->drv_inst; pm8001_ha 181 drivers/scsi/pm8001/pm8001_init.c if (unlikely(!pm8001_ha)) pm8001_ha 183 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->isr(pm8001_ha, irq_vector->irq_id); pm8001_ha 197 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 200 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = irq_vector->drv_inst; pm8001_ha 202 drivers/scsi/pm8001/pm8001_init.c if (unlikely(!pm8001_ha)) pm8001_ha 204 drivers/scsi/pm8001/pm8001_init.c if (!PM8001_CHIP_DISP->is_our_interrupt(pm8001_ha)) pm8001_ha 207 drivers/scsi/pm8001/pm8001_init.c tasklet_schedule(&pm8001_ha->tasklet[irq_vector->irq_id]); pm8001_ha 209 drivers/scsi/pm8001/pm8001_init.c ret = PM8001_CHIP_DISP->isr(pm8001_ha, irq_vector->irq_id); pm8001_ha 221 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 224 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = sha->lldd_ha; pm8001_ha 225 drivers/scsi/pm8001/pm8001_init.c if (unlikely(!pm8001_ha)) pm8001_ha 227 drivers/scsi/pm8001/pm8001_init.c if (!PM8001_CHIP_DISP->is_our_interrupt(pm8001_ha)) pm8001_ha 231 drivers/scsi/pm8001/pm8001_init.c tasklet_schedule(&pm8001_ha->tasklet[0]); pm8001_ha 233 drivers/scsi/pm8001/pm8001_init.c ret = PM8001_CHIP_DISP->isr(pm8001_ha, 0); pm8001_ha 243 drivers/scsi/pm8001/pm8001_init.c static int pm8001_alloc(struct pm8001_hba_info *pm8001_ha, pm8001_ha 247 drivers/scsi/pm8001/pm8001_init.c spin_lock_init(&pm8001_ha->lock); pm8001_ha 248 drivers/scsi/pm8001/pm8001_init.c spin_lock_init(&pm8001_ha->bitmap_lock); pm8001_ha 249 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 251 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->chip->n_phy)); pm8001_ha 252 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 253 drivers/scsi/pm8001/pm8001_init.c pm8001_phy_init(pm8001_ha, i); pm8001_ha 254 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->port[i].wide_port_phymap = 0; pm8001_ha 255 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->port[i].port_attached = 0; pm8001_ha 256 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->port[i].port_state = 0; pm8001_ha 257 drivers/scsi/pm8001/pm8001_init.c INIT_LIST_HEAD(&pm8001_ha->port[i].list); pm8001_ha 260 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->tags = kzalloc(PM8001_MAX_CCB, GFP_KERNEL); pm8001_ha 261 drivers/scsi/pm8001/pm8001_init.c if (!pm8001_ha->tags) pm8001_ha 264 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[AAP1].num_elements = 1; pm8001_ha 265 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[AAP1].element_size = PM8001_EVENT_LOG_SIZE; pm8001_ha 266 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[AAP1].total_len = PM8001_EVENT_LOG_SIZE; pm8001_ha 267 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[AAP1].alignment = 32; pm8001_ha 270 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IOP].num_elements = 1; pm8001_ha 271 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IOP].element_size = PM8001_EVENT_LOG_SIZE; pm8001_ha 272 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IOP].total_len = PM8001_EVENT_LOG_SIZE; pm8001_ha 273 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IOP].alignment = 32; pm8001_ha 277 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CI+i].num_elements = 1; pm8001_ha 278 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CI+i].element_size = 4; pm8001_ha 279 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CI+i].total_len = 4; pm8001_ha 280 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CI+i].alignment = 4; pm8001_ha 284 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].num_elements = pm8001_ha 286 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].element_size = 128; pm8001_ha 287 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].total_len = pm8001_ha 289 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].alignment = 128; pm8001_ha 291 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].num_elements = pm8001_ha 293 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].element_size = 64; pm8001_ha 294 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].total_len = pm8001_ha 296 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[IB+i].alignment = 64; pm8001_ha 302 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[PI+i].num_elements = 1; pm8001_ha 303 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[PI+i].element_size = 4; pm8001_ha 304 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[PI+i].total_len = 4; pm8001_ha 305 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[PI+i].alignment = 4; pm8001_ha 309 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].num_elements = pm8001_ha 311 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].element_size = 128; pm8001_ha 312 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].total_len = pm8001_ha 314 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].alignment = 128; pm8001_ha 317 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].num_elements = pm8001_ha 319 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].element_size = 64; pm8001_ha 320 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].total_len = pm8001_ha 322 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[OB+i].alignment = 64; pm8001_ha 327 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[NVMD].num_elements = 1; pm8001_ha 328 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[NVMD].element_size = 4096; pm8001_ha 329 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[NVMD].total_len = 4096; pm8001_ha 331 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[DEV_MEM].num_elements = 1; pm8001_ha 332 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[DEV_MEM].element_size = PM8001_MAX_DEVICES * pm8001_ha 334 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[DEV_MEM].total_len = PM8001_MAX_DEVICES * pm8001_ha 338 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CCB_MEM].num_elements = 1; pm8001_ha 339 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CCB_MEM].element_size = PM8001_MAX_CCB * pm8001_ha 341 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CCB_MEM].total_len = PM8001_MAX_CCB * pm8001_ha 345 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[FW_FLASH].total_len = 4096; pm8001_ha 347 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[FORENSIC_MEM].num_elements = 1; pm8001_ha 348 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[FORENSIC_MEM].total_len = 0x10000; pm8001_ha 349 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[FORENSIC_MEM].element_size = 0x10000; pm8001_ha 350 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[FORENSIC_MEM].alignment = 0x10000; pm8001_ha 352 drivers/scsi/pm8001/pm8001_init.c if (pm8001_mem_alloc(pm8001_ha->pdev, pm8001_ha 353 drivers/scsi/pm8001/pm8001_init.c &pm8001_ha->memoryMap.region[i].virt_ptr, pm8001_ha 354 drivers/scsi/pm8001/pm8001_init.c &pm8001_ha->memoryMap.region[i].phys_addr, pm8001_ha 355 drivers/scsi/pm8001/pm8001_init.c &pm8001_ha->memoryMap.region[i].phys_addr_hi, pm8001_ha 356 drivers/scsi/pm8001/pm8001_init.c &pm8001_ha->memoryMap.region[i].phys_addr_lo, pm8001_ha 357 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[i].total_len, pm8001_ha 358 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[i].alignment) != 0) { pm8001_ha 359 drivers/scsi/pm8001/pm8001_init.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 366 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->devices = pm8001_ha->memoryMap.region[DEV_MEM].virt_ptr; pm8001_ha 368 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->devices[i].dev_type = SAS_PHY_UNUSED; pm8001_ha 369 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->devices[i].id = i; pm8001_ha 370 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->devices[i].device_id = PM8001_MAX_DEVICES; pm8001_ha 371 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->devices[i].running_req = 0; pm8001_ha 373 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->ccb_info = pm8001_ha->memoryMap.region[CCB_MEM].virt_ptr; pm8001_ha 375 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->ccb_info[i].ccb_dma_handle = pm8001_ha 376 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->memoryMap.region[CCB_MEM].phys_addr + pm8001_ha 378 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->ccb_info[i].task = NULL; pm8001_ha 379 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->ccb_info[i].ccb_tag = 0xffffffff; pm8001_ha 380 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->ccb_info[i].device = NULL; pm8001_ha 381 drivers/scsi/pm8001/pm8001_init.c ++pm8001_ha->tags_num; pm8001_ha 383 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->flags = PM8001F_INIT_TIME; pm8001_ha 385 drivers/scsi/pm8001/pm8001_init.c pm8001_tag_init(pm8001_ha); pm8001_ha 396 drivers/scsi/pm8001/pm8001_init.c static int pm8001_ioremap(struct pm8001_hba_info *pm8001_ha) pm8001_ha 402 drivers/scsi/pm8001/pm8001_init.c pdev = pm8001_ha->pdev; pm8001_ha 416 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].membase = pm8001_ha 418 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memsize = pm8001_ha 420 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memvirtaddr = pm8001_ha 421 drivers/scsi/pm8001/pm8001_init.c ioremap(pm8001_ha->io_mem[logicalBar].membase, pm8001_ha 422 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memsize); pm8001_ha 423 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 426 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 428 drivers/scsi/pm8001/pm8001_init.c (u64)pm8001_ha->io_mem[logicalBar].membase, pm8001_ha 430 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memvirtaddr, pm8001_ha 431 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memsize)); pm8001_ha 433 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].membase = 0; pm8001_ha 434 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memsize = 0; pm8001_ha 435 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->io_mem[logicalBar].memvirtaddr = 0; pm8001_ha 453 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 457 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = sha->lldd_ha; pm8001_ha 458 drivers/scsi/pm8001/pm8001_init.c if (!pm8001_ha) pm8001_ha 461 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->pdev = pdev; pm8001_ha 462 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->dev = &pdev->dev; pm8001_ha 463 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->chip_id = ent->driver_data; pm8001_ha 464 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->chip = &pm8001_chips[pm8001_ha->chip_id]; pm8001_ha 465 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->irq = pdev->irq; pm8001_ha 466 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->sas = sha; pm8001_ha 467 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->shost = shost; pm8001_ha 468 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->id = pm8001_id++; pm8001_ha 469 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->logging_level = 0x01; pm8001_ha 470 drivers/scsi/pm8001/pm8001_init.c sprintf(pm8001_ha->name, "%s%d", DRV_NAME, pm8001_ha->id); pm8001_ha 472 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id != chip_8001) pm8001_ha 473 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->iomb_size = IOMB_SIZE_SPCV; pm8001_ha 475 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->iomb_size = IOMB_SIZE_SPC; pm8001_ha 480 drivers/scsi/pm8001/pm8001_init.c || (pm8001_ha->chip_id == chip_8001)) pm8001_ha 481 drivers/scsi/pm8001/pm8001_init.c tasklet_init(&pm8001_ha->tasklet[0], pm8001_tasklet, pm8001_ha 482 drivers/scsi/pm8001/pm8001_init.c (unsigned long)&(pm8001_ha->irq_vector[0])); pm8001_ha 485 drivers/scsi/pm8001/pm8001_init.c tasklet_init(&pm8001_ha->tasklet[j], pm8001_tasklet, pm8001_ha 486 drivers/scsi/pm8001/pm8001_init.c (unsigned long)&(pm8001_ha->irq_vector[j])); pm8001_ha 488 drivers/scsi/pm8001/pm8001_init.c pm8001_ioremap(pm8001_ha); pm8001_ha 489 drivers/scsi/pm8001/pm8001_init.c if (!pm8001_alloc(pm8001_ha, ent)) pm8001_ha 490 drivers/scsi/pm8001/pm8001_init.c return pm8001_ha; pm8001_ha 491 drivers/scsi/pm8001/pm8001_init.c pm8001_free(pm8001_ha); pm8001_ha 568 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 571 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = sha->lldd_ha; pm8001_ha 573 drivers/scsi/pm8001/pm8001_init.c sha->sas_phy[i] = &pm8001_ha->phy[i].sas_phy; pm8001_ha 574 drivers/scsi/pm8001/pm8001_init.c sha->sas_port[i] = &pm8001_ha->port[i].sas_port; pm8001_ha 576 drivers/scsi/pm8001/pm8001_init.c (u8 *)&pm8001_ha->phy[i].dev_sas_addr; pm8001_ha 579 drivers/scsi/pm8001/pm8001_init.c sha->dev = pm8001_ha->dev; pm8001_ha 582 drivers/scsi/pm8001/pm8001_init.c sha->sas_addr = &pm8001_ha->sas_addr[0]; pm8001_ha 594 drivers/scsi/pm8001/pm8001_init.c static void pm8001_init_sas_add(struct pm8001_hba_info *pm8001_ha) pm8001_ha 608 drivers/scsi/pm8001/pm8001_init.c pci_read_config_word(pm8001_ha->pdev, PCI_DEVICE_ID, &deviceid); pm8001_ha 609 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->nvmd_completion = &completion; pm8001_ha 611 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 619 drivers/scsi/pm8001/pm8001_init.c } else if ((pm8001_ha->chip_id == chip_8070 || pm8001_ha 620 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->chip_id == chip_8072) && pm8001_ha 621 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->pdev->subsystem_vendor == PCI_VENDOR_ID_ATTO) { pm8001_ha 631 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk("mem alloc fail\n")); pm8001_ha 634 drivers/scsi/pm8001/pm8001_init.c rc = PM8001_CHIP_DISP->get_nvmd_req(pm8001_ha, &payload); pm8001_ha 637 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk("nvmd failed\n")); pm8001_ha 643 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 645 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->sas_addr[j] = pm8001_ha 648 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->sas_addr[j] = pm8001_ha 650 drivers/scsi/pm8001/pm8001_init.c } else if ((pm8001_ha->chip_id == chip_8070 || pm8001_ha 651 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->chip_id == chip_8072) && pm8001_ha 652 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->pdev->subsystem_vendor == PCI_VENDOR_ID_ATTO) { pm8001_ha 653 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->sas_addr[j] = pm8001_ha 656 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->sas_addr[j] = pm8001_ha 659 drivers/scsi/pm8001/pm8001_init.c memcpy(sas_add, pm8001_ha->sas_addr, SAS_ADDR_SIZE); pm8001_ha 660 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 663 drivers/scsi/pm8001/pm8001_init.c memcpy(&pm8001_ha->phy[i].dev_sas_addr, pm8001_ha 665 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 667 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->phy[i].dev_sas_addr)); pm8001_ha 671 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 672 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->phy[i].dev_sas_addr = 0x50010c600047f9d0ULL; pm8001_ha 673 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->phy[i].dev_sas_addr = pm8001_ha 675 drivers/scsi/pm8001/pm8001_init.c (*(u64 *)&pm8001_ha->phy[i].dev_sas_addr)); pm8001_ha 677 drivers/scsi/pm8001/pm8001_init.c memcpy(pm8001_ha->sas_addr, &pm8001_ha->phy[0].dev_sas_addr, pm8001_ha 686 drivers/scsi/pm8001/pm8001_init.c static int pm8001_get_phy_settings_info(struct pm8001_hba_info *pm8001_ha) pm8001_ha 695 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->nvmd_completion = &completion; pm8001_ha 704 drivers/scsi/pm8001/pm8001_init.c rc = PM8001_CHIP_DISP->get_nvmd_req(pm8001_ha, &payload); pm8001_ha 707 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk("nvmd failed\n")); pm8001_ha 711 drivers/scsi/pm8001/pm8001_init.c pm8001_set_phy_profile(pm8001_ha, sizeof(u8), payload.func_specific); pm8001_ha 735 drivers/scsi/pm8001/pm8001_init.c void pm8001_get_internal_phy_settings(struct pm8001_hba_info *pm8001_ha, pm8001_ha 755 drivers/scsi/pm8001/pm8001_init.c void pm8001_get_external_phy_settings(struct pm8001_hba_info *pm8001_ha, pm8001_ha 775 drivers/scsi/pm8001/pm8001_init.c void pm8001_get_phy_mask(struct pm8001_hba_info *pm8001_ha, int *phymask) pm8001_ha 777 drivers/scsi/pm8001/pm8001_init.c switch (pm8001_ha->pdev->subsystem_device) { pm8001_ha 801 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 803 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->pdev->subsystem_device)); pm8001_ha 812 drivers/scsi/pm8001/pm8001_init.c int pm8001_set_phy_settings_ven_117c_12G(struct pm8001_hba_info *pm8001_ha) pm8001_ha 822 drivers/scsi/pm8001/pm8001_init.c pm8001_get_internal_phy_settings(pm8001_ha, &phycfg_int); pm8001_ha 823 drivers/scsi/pm8001/pm8001_init.c pm8001_get_external_phy_settings(pm8001_ha, &phycfg_ext); pm8001_ha 824 drivers/scsi/pm8001/pm8001_init.c pm8001_get_phy_mask(pm8001_ha, &phymask); pm8001_ha 826 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 828 drivers/scsi/pm8001/pm8001_init.c pm8001_set_phy_profile_single(pm8001_ha, i, pm8001_ha 833 drivers/scsi/pm8001/pm8001_init.c pm8001_set_phy_profile_single(pm8001_ha, i, pm8001_ha 846 drivers/scsi/pm8001/pm8001_init.c static int pm8001_configure_phy_settings(struct pm8001_hba_info *pm8001_ha) pm8001_ha 848 drivers/scsi/pm8001/pm8001_init.c switch (pm8001_ha->pdev->subsystem_vendor) { pm8001_ha 850 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->pdev->device == 0x0042) /* 6Gb */ pm8001_ha 853 drivers/scsi/pm8001/pm8001_init.c return pm8001_set_phy_settings_ven_117c_12G(pm8001_ha); pm8001_ha 860 drivers/scsi/pm8001/pm8001_init.c return pm8001_get_phy_settings_info(pm8001_ha); pm8001_ha 870 drivers/scsi/pm8001/pm8001_init.c static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha) pm8001_ha 879 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 886 drivers/scsi/pm8001/pm8001_init.c rc = pci_alloc_irq_vectors(pm8001_ha->pdev, number_of_intr, pm8001_ha 890 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->number_of_intr = number_of_intr; pm8001_ha 892 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 894 drivers/scsi/pm8001/pm8001_init.c rc, pm8001_ha->number_of_intr)); pm8001_ha 899 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->irq_vector[i].irq_id = i; pm8001_ha 900 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->irq_vector[i].drv_inst = pm8001_ha; pm8001_ha 902 drivers/scsi/pm8001/pm8001_init.c rc = request_irq(pci_irq_vector(pm8001_ha->pdev, i), pm8001_ha 904 drivers/scsi/pm8001/pm8001_init.c intr_drvname[i], &(pm8001_ha->irq_vector[i])); pm8001_ha 907 drivers/scsi/pm8001/pm8001_init.c free_irq(pci_irq_vector(pm8001_ha->pdev, i), pm8001_ha 908 drivers/scsi/pm8001/pm8001_init.c &(pm8001_ha->irq_vector[i])); pm8001_ha 910 drivers/scsi/pm8001/pm8001_init.c pci_free_irq_vectors(pm8001_ha->pdev); pm8001_ha 923 drivers/scsi/pm8001/pm8001_init.c static u32 pm8001_request_irq(struct pm8001_hba_info *pm8001_ha) pm8001_ha 928 drivers/scsi/pm8001/pm8001_init.c pdev = pm8001_ha->pdev; pm8001_ha 932 drivers/scsi/pm8001/pm8001_init.c return pm8001_setup_msix(pm8001_ha); pm8001_ha 934 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 942 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->irq_vector[0].irq_id = 0; pm8001_ha 943 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->irq_vector[0].drv_inst = pm8001_ha; pm8001_ha 945 drivers/scsi/pm8001/pm8001_init.c DRV_NAME, SHOST_TO_SAS_HA(pm8001_ha->shost)); pm8001_ha 964 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1009 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = pm8001_pci_alloc(pdev, ent, shost); pm8001_ha 1010 drivers/scsi/pm8001/pm8001_init.c if (!pm8001_ha) { pm8001_ha 1014 drivers/scsi/pm8001/pm8001_init.c list_add_tail(&pm8001_ha->list, &hba_list); pm8001_ha 1015 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->chip_soft_rst(pm8001_ha); pm8001_ha 1016 drivers/scsi/pm8001/pm8001_init.c rc = PM8001_CHIP_DISP->chip_init(pm8001_ha); pm8001_ha 1018 drivers/scsi/pm8001/pm8001_init.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1026 drivers/scsi/pm8001/pm8001_init.c rc = pm8001_request_irq(pm8001_ha); pm8001_ha 1028 drivers/scsi/pm8001/pm8001_init.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1033 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, 0); pm8001_ha 1034 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id != chip_8001) { pm8001_ha 1035 drivers/scsi/pm8001/pm8001_init.c for (i = 1; i < pm8001_ha->number_of_intr; i++) pm8001_ha 1036 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, i); pm8001_ha 1038 drivers/scsi/pm8001/pm8001_init.c pm80xx_set_thermal_config(pm8001_ha); pm8001_ha 1041 drivers/scsi/pm8001/pm8001_init.c pm8001_init_sas_add(pm8001_ha); pm8001_ha 1043 drivers/scsi/pm8001/pm8001_init.c if (pm8001_configure_phy_settings(pm8001_ha)) pm8001_ha 1050 drivers/scsi/pm8001/pm8001_init.c scsi_scan_host(pm8001_ha->shost); pm8001_ha 1051 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->flags = PM8001F_RUN_TIME; pm8001_ha 1055 drivers/scsi/pm8001/pm8001_init.c scsi_remove_host(pm8001_ha->shost); pm8001_ha 1057 drivers/scsi/pm8001/pm8001_init.c pm8001_free(pm8001_ha); pm8001_ha 1073 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1075 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = sha->lldd_ha; pm8001_ha 1077 drivers/scsi/pm8001/pm8001_init.c sas_remove_host(pm8001_ha->shost); pm8001_ha 1078 drivers/scsi/pm8001/pm8001_init.c list_del(&pm8001_ha->list); pm8001_ha 1079 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_disable(pm8001_ha, 0xFF); pm8001_ha 1080 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->chip_soft_rst(pm8001_ha); pm8001_ha 1083 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->number_of_intr; i++) pm8001_ha 1085 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->number_of_intr; i++) pm8001_ha 1086 drivers/scsi/pm8001/pm8001_init.c free_irq(pci_irq_vector(pdev, i), &pm8001_ha->irq_vector[i]); pm8001_ha 1089 drivers/scsi/pm8001/pm8001_init.c free_irq(pm8001_ha->irq, sha); pm8001_ha 1094 drivers/scsi/pm8001/pm8001_init.c (pm8001_ha->chip_id == chip_8001)) pm8001_ha 1095 drivers/scsi/pm8001/pm8001_init.c tasklet_kill(&pm8001_ha->tasklet[0]); pm8001_ha 1098 drivers/scsi/pm8001/pm8001_init.c tasklet_kill(&pm8001_ha->tasklet[j]); pm8001_ha 1100 drivers/scsi/pm8001/pm8001_init.c scsi_host_put(pm8001_ha->shost); pm8001_ha 1101 drivers/scsi/pm8001/pm8001_init.c pm8001_free(pm8001_ha); pm8001_ha 1119 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1122 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = sha->lldd_ha; pm8001_ha 1125 drivers/scsi/pm8001/pm8001_init.c scsi_block_requests(pm8001_ha->shost); pm8001_ha 1130 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_disable(pm8001_ha, 0xFF); pm8001_ha 1131 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->chip_soft_rst(pm8001_ha); pm8001_ha 1133 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->number_of_intr; i++) pm8001_ha 1135 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->number_of_intr; i++) pm8001_ha 1136 drivers/scsi/pm8001/pm8001_init.c free_irq(pci_irq_vector(pdev, i), &pm8001_ha->irq_vector[i]); pm8001_ha 1139 drivers/scsi/pm8001/pm8001_init.c free_irq(pm8001_ha->irq, sha); pm8001_ha 1144 drivers/scsi/pm8001/pm8001_init.c (pm8001_ha->chip_id == chip_8001)) pm8001_ha 1145 drivers/scsi/pm8001/pm8001_init.c tasklet_kill(&pm8001_ha->tasklet[0]); pm8001_ha 1148 drivers/scsi/pm8001/pm8001_init.c tasklet_kill(&pm8001_ha->tasklet[j]); pm8001_ha 1153 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->name, device_state); pm8001_ha 1169 drivers/scsi/pm8001/pm8001_init.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1174 drivers/scsi/pm8001/pm8001_init.c pm8001_ha = sha->lldd_ha; pm8001_ha 1178 drivers/scsi/pm8001/pm8001_init.c "operating state [D%d]\n", pdev, pm8001_ha->name, device_state); pm8001_ha 1186 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->name); pm8001_ha 1196 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 1197 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->chip_soft_rst(pm8001_ha); pm8001_ha 1198 drivers/scsi/pm8001/pm8001_init.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1201 drivers/scsi/pm8001/pm8001_init.c rc = PM8001_CHIP_DISP->chip_init(pm8001_ha); pm8001_ha 1206 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_disable(pm8001_ha, 0xFF); pm8001_ha 1208 drivers/scsi/pm8001/pm8001_init.c rc = pm8001_request_irq(pm8001_ha); pm8001_ha 1214 drivers/scsi/pm8001/pm8001_init.c (pm8001_ha->chip_id == chip_8001)) pm8001_ha 1215 drivers/scsi/pm8001/pm8001_init.c tasklet_init(&pm8001_ha->tasklet[0], pm8001_tasklet, pm8001_ha 1216 drivers/scsi/pm8001/pm8001_init.c (unsigned long)&(pm8001_ha->irq_vector[0])); pm8001_ha 1219 drivers/scsi/pm8001/pm8001_init.c tasklet_init(&pm8001_ha->tasklet[j], pm8001_tasklet, pm8001_ha 1220 drivers/scsi/pm8001/pm8001_init.c (unsigned long)&(pm8001_ha->irq_vector[j])); pm8001_ha 1222 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, 0); pm8001_ha 1223 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id != chip_8001) { pm8001_ha 1224 drivers/scsi/pm8001/pm8001_init.c for (i = 1; i < pm8001_ha->number_of_intr; i++) pm8001_ha 1225 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, i); pm8001_ha 1233 drivers/scsi/pm8001/pm8001_init.c if (pm8001_ha->chip_id == chip_8070 || pm8001_ha 1234 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->chip_id == chip_8072) { pm8001_ha 1240 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->flags = PM8001F_RUN_TIME; pm8001_ha 1241 drivers/scsi/pm8001/pm8001_init.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 1242 drivers/scsi/pm8001/pm8001_init.c pm8001_ha->phy[i].enable_completion = &completion; pm8001_ha 1243 drivers/scsi/pm8001/pm8001_init.c PM8001_CHIP_DISP->phy_start_req(pm8001_ha, i); pm8001_ha 1250 drivers/scsi/pm8001/pm8001_init.c scsi_remove_host(pm8001_ha->shost); pm8001_ha 65 drivers/scsi/pm8001/pm8001_sas.c void pm8001_tag_free(struct pm8001_hba_info *pm8001_ha, u32 tag) pm8001_ha 67 drivers/scsi/pm8001/pm8001_sas.c void *bitmap = pm8001_ha->tags; pm8001_ha 76 drivers/scsi/pm8001/pm8001_sas.c inline int pm8001_tag_alloc(struct pm8001_hba_info *pm8001_ha, u32 *tag_out) pm8001_ha 79 drivers/scsi/pm8001/pm8001_sas.c void *bitmap = pm8001_ha->tags; pm8001_ha 82 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->bitmap_lock, flags); pm8001_ha 83 drivers/scsi/pm8001/pm8001_sas.c tag = find_first_zero_bit(bitmap, pm8001_ha->tags_num); pm8001_ha 84 drivers/scsi/pm8001/pm8001_sas.c if (tag >= pm8001_ha->tags_num) { pm8001_ha 85 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->bitmap_lock, flags); pm8001_ha 89 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->bitmap_lock, flags); pm8001_ha 94 drivers/scsi/pm8001/pm8001_sas.c void pm8001_tag_init(struct pm8001_hba_info *pm8001_ha) pm8001_ha 97 drivers/scsi/pm8001/pm8001_sas.c for (i = 0; i < pm8001_ha->tags_num; ++i) pm8001_ha 98 drivers/scsi/pm8001/pm8001_sas.c pm8001_tag_free(pm8001_ha, i); pm8001_ha 141 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 142 drivers/scsi/pm8001/pm8001_sas.c return pm8001_ha; pm8001_ha 158 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = NULL; pm8001_ha 164 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = sas_phy->ha->lldd_ha; pm8001_ha 165 drivers/scsi/pm8001/pm8001_sas.c phy = &pm8001_ha->phy[phy_id]; pm8001_ha 166 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha->phy[phy_id].enable_completion = &completion; pm8001_ha 171 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha->phy[phy_id].minimum_linkrate = pm8001_ha 175 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha->phy[phy_id].maximum_linkrate = pm8001_ha 178 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->phy[phy_id].phy_state == PHY_LINK_DISABLE) { pm8001_ha 179 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_start_req(pm8001_ha, phy_id); pm8001_ha 182 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 186 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->phy[phy_id].phy_state == PHY_LINK_DISABLE) { pm8001_ha 187 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_start_req(pm8001_ha, phy_id); pm8001_ha 190 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 194 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->phy[phy_id].phy_state == PHY_LINK_DISABLE) { pm8001_ha 195 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_start_req(pm8001_ha, phy_id); pm8001_ha 198 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 202 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 206 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->chip_id != chip_8001) { pm8001_ha 207 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->phy[phy_id].phy_state == pm8001_ha 209 drivers/scsi/pm8001/pm8001_sas.c sas_ha = pm8001_ha->sas; pm8001_ha 216 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->phy[phy_id].phy_state == pm8001_ha 218 drivers/scsi/pm8001/pm8001_sas.c sas_ha = pm8001_ha->sas; pm8001_ha 225 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_stop_req(pm8001_ha, phy_id); pm8001_ha 228 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 229 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 230 drivers/scsi/pm8001/pm8001_sas.c if (-1 == pm8001_bar4_shift(pm8001_ha, pm8001_ha 232 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 239 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha->io_mem[2].memvirtaddr) pm8001_ha 247 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->chip_id == chip_8001) pm8001_ha 248 drivers/scsi/pm8001/pm8001_sas.c pm8001_bar4_shift(pm8001_ha, 0); pm8001_ha 249 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 266 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 268 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = sha->lldd_ha; pm8001_ha 270 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->chip_id == chip_8001) pm8001_ha 271 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->sas_re_init_req(pm8001_ha); pm8001_ha 272 drivers/scsi/pm8001/pm8001_sas.c for (i = 0; i < pm8001_ha->chip->n_phy; ++i) pm8001_ha 273 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->phy_start_req(pm8001_ha, i); pm8001_ha 294 drivers/scsi/pm8001/pm8001_sas.c static int pm8001_task_prep_smp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 297 drivers/scsi/pm8001/pm8001_sas.c return PM8001_CHIP_DISP->smp_req(pm8001_ha, ccb); pm8001_ha 321 drivers/scsi/pm8001/pm8001_sas.c static int pm8001_task_prep_ata(struct pm8001_hba_info *pm8001_ha, pm8001_ha 324 drivers/scsi/pm8001/pm8001_sas.c return PM8001_CHIP_DISP->sata_req(pm8001_ha, ccb); pm8001_ha 333 drivers/scsi/pm8001/pm8001_sas.c static int pm8001_task_prep_ssp_tm(struct pm8001_hba_info *pm8001_ha, pm8001_ha 336 drivers/scsi/pm8001/pm8001_sas.c return PM8001_CHIP_DISP->ssp_tm_req(pm8001_ha, ccb, tmf); pm8001_ha 344 drivers/scsi/pm8001/pm8001_sas.c static int pm8001_task_prep_ssp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 347 drivers/scsi/pm8001/pm8001_sas.c return PM8001_CHIP_DISP->ssp_io_req(pm8001_ha, ccb); pm8001_ha 382 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 398 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = pm8001_find_ha_by_dev(task->dev); pm8001_ha 399 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->controller_fatal_error) { pm8001_ha 406 drivers/scsi/pm8001/pm8001_sas.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("pm8001_task_exec device \n ")); pm8001_ha 407 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 411 drivers/scsi/pm8001/pm8001_sas.c port = &pm8001_ha->port[sas_find_local_port_id(dev)]; pm8001_ha 418 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 420 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 430 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 433 drivers/scsi/pm8001/pm8001_sas.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 437 drivers/scsi/pm8001/pm8001_sas.c n_elem = dma_map_sg(pm8001_ha->dev, pm8001_ha 457 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_task_prep_smp(pm8001_ha, ccb); pm8001_ha 461 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_task_prep_ssp_tm(pm8001_ha, pm8001_ha 464 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_task_prep_ssp(pm8001_ha, ccb); pm8001_ha 468 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_task_prep_ata(pm8001_ha, ccb); pm8001_ha 471 drivers/scsi/pm8001/pm8001_sas.c dev_printk(KERN_ERR, pm8001_ha->dev, pm8001_ha 479 drivers/scsi/pm8001/pm8001_sas.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 493 drivers/scsi/pm8001/pm8001_sas.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 495 drivers/scsi/pm8001/pm8001_sas.c dev_printk(KERN_ERR, pm8001_ha->dev, "pm8001 exec failed[%d]!\n", rc); pm8001_ha 498 drivers/scsi/pm8001/pm8001_sas.c dma_unmap_sg(pm8001_ha->dev, t->scatter, t->num_scatter, pm8001_ha 501 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 523 drivers/scsi/pm8001/pm8001_sas.c void pm8001_ccb_task_free(struct pm8001_hba_info *pm8001_ha, pm8001_ha 530 drivers/scsi/pm8001/pm8001_sas.c dma_unmap_sg(pm8001_ha->dev, task->scatter, pm8001_ha 535 drivers/scsi/pm8001/pm8001_sas.c dma_unmap_sg(pm8001_ha->dev, &task->smp_task.smp_resp, 1, pm8001_ha 537 drivers/scsi/pm8001/pm8001_sas.c dma_unmap_sg(pm8001_ha->dev, &task->smp_task.smp_req, 1, pm8001_ha 552 drivers/scsi/pm8001/pm8001_sas.c pm8001_tag_free(pm8001_ha, ccb_idx); pm8001_ha 559 drivers/scsi/pm8001/pm8001_sas.c static struct pm8001_device *pm8001_alloc_dev(struct pm8001_hba_info *pm8001_ha) pm8001_ha 563 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->devices[dev].dev_type == SAS_PHY_UNUSED) { pm8001_ha 564 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha->devices[dev].id = dev; pm8001_ha 565 drivers/scsi/pm8001/pm8001_sas.c return &pm8001_ha->devices[dev]; pm8001_ha 569 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 579 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_device *pm8001_find_dev(struct pm8001_hba_info *pm8001_ha, pm8001_ha 584 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->devices[dev].device_id == device_id) pm8001_ha 585 drivers/scsi/pm8001/pm8001_sas.c return &pm8001_ha->devices[dev]; pm8001_ha 588 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("NO MATCHING " pm8001_ha 620 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = NULL; pm8001_ha 625 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 626 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 628 drivers/scsi/pm8001/pm8001_sas.c pm8001_device = pm8001_alloc_dev(pm8001_ha); pm8001_ha 650 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 663 drivers/scsi/pm8001/pm8001_sas.c PM8001_DISC_DBG(pm8001_ha, pm8001_printk("Found device\n")); pm8001_ha 664 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->reg_dev_req(pm8001_ha, pm8001_device, flag); pm8001_ha 665 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 669 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha->flags = PM8001F_RUN_TIME; pm8001_ha 672 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 714 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 735 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 741 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->chip_id != chip_8001) { pm8001_ha 743 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->set_dev_state_req(pm8001_ha, pm8001_ha 751 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 774 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 779 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 796 drivers/scsi/pm8001/pm8001_sas.c pm8001_exec_internal_task_abort(struct pm8001_hba_info *pm8001_ha, pm8001_ha 817 drivers/scsi/pm8001/pm8001_sas.c res = pm8001_tag_alloc(pm8001_ha, &ccb_tag); pm8001_ha 820 drivers/scsi/pm8001/pm8001_sas.c ccb = &pm8001_ha->ccb_info[ccb_tag]; pm8001_ha 826 drivers/scsi/pm8001/pm8001_sas.c res = PM8001_CHIP_DISP->task_abort(pm8001_ha, pm8001_ha 831 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 841 drivers/scsi/pm8001/pm8001_sas.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 853 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 876 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 879 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 880 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 884 drivers/scsi/pm8001/pm8001_sas.c PM8001_DISC_DBG(pm8001_ha, pm8001_ha 888 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 889 drivers/scsi/pm8001/pm8001_sas.c pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev , pm8001_ha 893 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 895 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->dereg_dev_req(pm8001_ha, device_id); pm8001_ha 898 drivers/scsi/pm8001/pm8001_sas.c PM8001_DISC_DBG(pm8001_ha, pm8001_ha 902 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 924 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha, pm8001_ha 931 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha == NULL) pm8001_ha 934 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 942 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[i]; pm8001_ha 949 drivers/scsi/pm8001/pm8001_sas.c - (uintptr_t)&pm8001_ha->devices; pm8001_ha 978 drivers/scsi/pm8001/pm8001_sas.c pm8001_ccb_task_free(pm8001_ha, task, ccb, tag); pm8001_ha 982 drivers/scsi/pm8001/pm8001_sas.c pm8001_ccb_task_free(pm8001_ha, task, ccb, tag); pm8001_ha 984 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 986 drivers/scsi/pm8001/pm8001_sas.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 990 drivers/scsi/pm8001/pm8001_sas.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 1001 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1008 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 1018 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 1025 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev , pm8001_ha 1028 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 1037 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_printk(" for device[%x]:rc=%d\n", pm8001_ha 1052 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1059 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 1061 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 1073 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev , pm8001_ha 1089 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev , pm8001_ha 1101 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_printk(" for device[%x]:rc=%d\n", pm8001_ha 1114 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 1118 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev , pm8001_ha 1123 drivers/scsi/pm8001/pm8001_sas.c rc = PM8001_CHIP_DISP->set_dev_state_req(pm8001_ha, pm8001_ha 1131 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_printk("for device[%x]:rc=%d\n", pm8001_ha 1150 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = pm8001_ha 1159 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_printk("Query:[")); pm8001_ha 1170 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 1176 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 1192 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha; pm8001_ha 1203 drivers/scsi/pm8001/pm8001_sas.c pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 1227 drivers/scsi/pm8001/pm8001_sas.c pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev, pm8001_ha 1231 drivers/scsi/pm8001/pm8001_sas.c if (pm8001_ha->chip_id == chip_8006) { pm8001_ha 1234 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_phy *phy = pm8001_ha->phy + phy_id; pm8001_ha 1238 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->set_dev_state_req(pm8001_ha, pm8001_ha 1247 drivers/scsi/pm8001/pm8001_sas.c ret = PM8001_CHIP_DISP->phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 1251 drivers/scsi/pm8001/pm8001_sas.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 1258 drivers/scsi/pm8001/pm8001_sas.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 1272 drivers/scsi/pm8001/pm8001_sas.c ret = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_ha 1285 drivers/scsi/pm8001/pm8001_sas.c PM8001_CHIP_DISP->set_dev_state_req(pm8001_ha, pm8001_ha 1289 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_ha 1295 drivers/scsi/pm8001/pm8001_sas.c rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev, pm8001_ha 1329 drivers/scsi/pm8001/pm8001_sas.c struct pm8001_hba_info *pm8001_ha = pm8001_find_ha_by_dev(dev); pm8001_ha 1331 drivers/scsi/pm8001/pm8001_sas.c PM8001_EH_DBG(pm8001_ha, pm8001_ha 193 drivers/scsi/pm8001/pm8001_sas.h int (*chip_init)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 194 drivers/scsi/pm8001/pm8001_sas.h int (*chip_soft_rst)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 195 drivers/scsi/pm8001/pm8001_sas.h void (*chip_rst)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 196 drivers/scsi/pm8001/pm8001_sas.h int (*chip_ioremap)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 197 drivers/scsi/pm8001/pm8001_sas.h void (*chip_iounmap)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 198 drivers/scsi/pm8001/pm8001_sas.h irqreturn_t (*isr)(struct pm8001_hba_info *pm8001_ha, u8 vec); pm8001_ha 199 drivers/scsi/pm8001/pm8001_sas.h u32 (*is_our_interrupt)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 200 drivers/scsi/pm8001/pm8001_sas.h int (*isr_process_oq)(struct pm8001_hba_info *pm8001_ha, u8 vec); pm8001_ha 201 drivers/scsi/pm8001/pm8001_sas.h void (*interrupt_enable)(struct pm8001_hba_info *pm8001_ha, u8 vec); pm8001_ha 202 drivers/scsi/pm8001/pm8001_sas.h void (*interrupt_disable)(struct pm8001_hba_info *pm8001_ha, u8 vec); pm8001_ha 204 drivers/scsi/pm8001/pm8001_sas.h int (*smp_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 206 drivers/scsi/pm8001/pm8001_sas.h int (*ssp_io_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 208 drivers/scsi/pm8001/pm8001_sas.h int (*sata_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 210 drivers/scsi/pm8001/pm8001_sas.h int (*phy_start_req)(struct pm8001_hba_info *pm8001_ha, u8 phy_id); pm8001_ha 211 drivers/scsi/pm8001/pm8001_sas.h int (*phy_stop_req)(struct pm8001_hba_info *pm8001_ha, u8 phy_id); pm8001_ha 212 drivers/scsi/pm8001/pm8001_sas.h int (*reg_dev_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 214 drivers/scsi/pm8001/pm8001_sas.h int (*dereg_dev_req)(struct pm8001_hba_info *pm8001_ha, u32 device_id); pm8001_ha 215 drivers/scsi/pm8001/pm8001_sas.h int (*phy_ctl_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 217 drivers/scsi/pm8001/pm8001_sas.h int (*task_abort)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 220 drivers/scsi/pm8001/pm8001_sas.h int (*ssp_tm_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 222 drivers/scsi/pm8001/pm8001_sas.h int (*get_nvmd_req)(struct pm8001_hba_info *pm8001_ha, void *payload); pm8001_ha 223 drivers/scsi/pm8001/pm8001_sas.h int (*set_nvmd_req)(struct pm8001_hba_info *pm8001_ha, void *payload); pm8001_ha 224 drivers/scsi/pm8001/pm8001_sas.h int (*fw_flash_update_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 226 drivers/scsi/pm8001/pm8001_sas.h int (*set_dev_state_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 228 drivers/scsi/pm8001/pm8001_sas.h int (*sas_diag_start_end_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 230 drivers/scsi/pm8001/pm8001_sas.h int (*sas_diag_execute_req)(struct pm8001_hba_info *pm8001_ha, pm8001_ha 232 drivers/scsi/pm8001/pm8001_sas.h int (*sas_re_init_req)(struct pm8001_hba_info *pm8001_ha); pm8001_ha 240 drivers/scsi/pm8001/pm8001_sas.h #define PM8001_CHIP_DISP (pm8001_ha->chip->dispatch) pm8001_ha 251 drivers/scsi/pm8001/pm8001_sas.h struct pm8001_hba_info *pm8001_ha; pm8001_ha 548 drivers/scsi/pm8001/pm8001_sas.h struct pm8001_hba_info *pm8001_ha; pm8001_ha 635 drivers/scsi/pm8001/pm8001_sas.h int pm8001_tag_alloc(struct pm8001_hba_info *pm8001_ha, u32 *tag_out); pm8001_ha 636 drivers/scsi/pm8001/pm8001_sas.h void pm8001_tag_init(struct pm8001_hba_info *pm8001_ha); pm8001_ha 638 drivers/scsi/pm8001/pm8001_sas.h void pm8001_ccb_task_free(struct pm8001_hba_info *pm8001_ha, pm8001_ha 656 drivers/scsi/pm8001/pm8001_sas.h struct pm8001_hba_info *pm8001_ha, pm8001_ha 663 drivers/scsi/pm8001/pm8001_sas.h void pm8001_chip_iounmap(struct pm8001_hba_info *pm8001_ha); pm8001_ha 664 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_build_cmd(struct pm8001_hba_info *pm8001_ha, pm8001_ha 669 drivers/scsi/pm8001/pm8001_sas.h u32 pm8001_mpi_msg_free_set(struct pm8001_hba_info *pm8001_ha, void *pMsg, pm8001_ha 671 drivers/scsi/pm8001/pm8001_sas.h u32 pm8001_mpi_msg_consume(struct pm8001_hba_info *pm8001_ha, pm8001_ha 674 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_set_dev_state_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 676 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_fw_flash_update_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 678 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_fw_flash_update_build(struct pm8001_hba_info *pm8001_ha, pm8001_ha 680 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_set_nvmd_req(struct pm8001_hba_info *pm8001_ha, void *payload); pm8001_ha 681 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_get_nvmd_req(struct pm8001_hba_info *pm8001_ha, void *payload); pm8001_ha 682 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_ssp_tm_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 685 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_abort_task(struct pm8001_hba_info *pm8001_ha, pm8001_ha 688 drivers/scsi/pm8001/pm8001_sas.h int pm8001_chip_dereg_dev_req(struct pm8001_hba_info *pm8001_ha, u32 device_id); pm8001_ha 691 drivers/scsi/pm8001/pm8001_sas.h int pm8001_handle_event(struct pm8001_hba_info *pm8001_ha, pm8001_ha 693 drivers/scsi/pm8001/pm8001_sas.h void pm8001_mpi_set_dev_state_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 695 drivers/scsi/pm8001/pm8001_sas.h void pm8001_mpi_set_nvmd_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 697 drivers/scsi/pm8001/pm8001_sas.h void pm8001_mpi_get_nvmd_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 699 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_local_phy_ctl(struct pm8001_hba_info *pm8001_ha, pm8001_ha 703 drivers/scsi/pm8001/pm8001_sas.h void pm8001_bytes_dmaed(struct pm8001_hba_info *pm8001_ha, int i); pm8001_ha 704 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_reg_resp(struct pm8001_hba_info *pm8001_ha, void *piomb); pm8001_ha 705 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_dereg_resp(struct pm8001_hba_info *pm8001_ha, void *piomb); pm8001_ha 706 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_fw_flash_update_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 708 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_general_event(struct pm8001_hba_info *pm8001_ha , void *piomb); pm8001_ha 709 drivers/scsi/pm8001/pm8001_sas.h int pm8001_mpi_task_abort_resp(struct pm8001_hba_info *pm8001_ha, void *piomb); pm8001_ha 713 drivers/scsi/pm8001/pm8001_sas.h void pm8001_tag_free(struct pm8001_hba_info *pm8001_ha, u32 tag); pm8001_ha 714 drivers/scsi/pm8001/pm8001_sas.h struct pm8001_device *pm8001_find_dev(struct pm8001_hba_info *pm8001_ha, pm8001_ha 716 drivers/scsi/pm8001/pm8001_sas.h int pm80xx_set_thermal_config(struct pm8001_hba_info *pm8001_ha); pm8001_ha 718 drivers/scsi/pm8001/pm8001_sas.h int pm8001_bar4_shift(struct pm8001_hba_info *pm8001_ha, u32 shiftValue); pm8001_ha 719 drivers/scsi/pm8001/pm8001_sas.h void pm8001_set_phy_profile(struct pm8001_hba_info *pm8001_ha, pm8001_ha 721 drivers/scsi/pm8001/pm8001_sas.h void pm8001_set_phy_profile_single(struct pm8001_hba_info *pm8001_ha, pm8001_ha 723 drivers/scsi/pm8001/pm8001_sas.h int pm80xx_bar4_shift(struct pm8001_hba_info *pm8001_ha, u32 shiftValue); pm8001_ha 731 drivers/scsi/pm8001/pm8001_sas.h pm8001_ccb_task_free_done(struct pm8001_hba_info *pm8001_ha, pm8001_ha 735 drivers/scsi/pm8001/pm8001_sas.h pm8001_ccb_task_free(pm8001_ha, task, ccb, ccb_idx); pm8001_ha 737 drivers/scsi/pm8001/pm8001_sas.h spin_unlock(&pm8001_ha->lock); pm8001_ha 739 drivers/scsi/pm8001/pm8001_sas.h spin_lock(&pm8001_ha->lock); pm8001_ha 50 drivers/scsi/pm8001/pm80xx_hwi.c int pm80xx_bar4_shift(struct pm8001_hba_info *pm8001_ha, u32 shift_value) pm8001_ha 54 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MEMBASE_II_SHIFT_REGISTER, shift_value); pm8001_ha 58 drivers/scsi/pm8001/pm80xx_hwi.c reg_val = pm8001_cr32(pm8001_ha, 0, MEMBASE_II_SHIFT_REGISTER); pm8001_ha 61 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 69 drivers/scsi/pm8001/pm80xx_hwi.c void pm80xx_pci_mem_copy(struct pm8001_hba_info *pm8001_ha, u32 soffset, pm8001_ha 80 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, bus_base_number, offset); pm8001_ha 92 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_hba_info *pm8001_ha = sha->lldd_ha; pm8001_ha 93 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *fatal_table_address = pm8001_ha->fatal_tbl_addr; pm8001_ha 99 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data = buf; pm8001_ha 100 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->chip_id == chip_8001) { pm8001_ha 101 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 102 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha->forensic_info.data_buf.direct_data, pm8001_ha 104 drivers/scsi/pm8001/pm80xx_hwi.c return (char *)pm8001_ha->forensic_info.data_buf.direct_data - pm8001_ha 107 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->forensic_info.data_buf.direct_offset == 0) { pm8001_ha 108 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 111 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_type = TYPE_NON_FATAL; pm8001_ha 112 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len = SYSFS_OFFSET; pm8001_ha 113 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.read_len = 0; pm8001_ha 115 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data = direct_data; pm8001_ha 119 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MEMBASE_II_SHIFT_REGISTER, pm8001_ha 120 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_forensic_shift_offset); pm8001_ha 121 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_last_offset = 0; pm8001_ha 122 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_fatal_step = 0; pm8001_ha 123 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_bar_loc = 0; pm8001_ha 129 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("accum_len 0x%x\n", pm8001_ha 132 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 138 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 139 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha->forensic_info.data_buf.direct_data, pm8001_ha 141 drivers/scsi/pm8001/pm80xx_hwi.c return (char *)pm8001_ha->forensic_info.data_buf.direct_data - pm8001_ha 144 drivers/scsi/pm8001/pm80xx_hwi.c temp = (u32 *)pm8001_ha->memoryMap.region[FORENSIC_MEM].virt_ptr; pm8001_ha 145 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->forensic_fatal_step == 0) { pm8001_ha 147 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->forensic_info.data_buf.direct_data) { pm8001_ha 149 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_pci_mem_copy(pm8001_ha, pm8001_ha->fatal_bar_loc, pm8001_ha 150 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[FORENSIC_MEM].virt_ptr, pm8001_ha 151 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len , pm8001_ha 154 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_bar_loc += pm8001_ha 155 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len; pm8001_ha 156 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_offset += pm8001_ha 157 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len; pm8001_ha 158 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_last_offset += pm8001_ha 159 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len; pm8001_ha 160 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.read_len = pm8001_ha 161 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len; pm8001_ha 163 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->forensic_last_offset >= accum_len) { pm8001_ha 164 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 165 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha->forensic_info.data_buf.direct_data, pm8001_ha 168 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 169 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha-> pm8001_ha 174 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_bar_loc = 0; pm8001_ha 175 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_fatal_step = 1; pm8001_ha 176 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_forensic_shift_offset = 0; pm8001_ha 177 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_last_offset = 0; pm8001_ha 178 drivers/scsi/pm8001/pm80xx_hwi.c return (char *)pm8001_ha-> pm8001_ha 182 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->fatal_bar_loc < (64 * 1024)) { pm8001_ha 183 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 184 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha-> pm8001_ha 188 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 189 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha-> pm8001_ha 193 drivers/scsi/pm8001/pm80xx_hwi.c return (char *)pm8001_ha-> pm8001_ha 199 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 200 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha->forensic_info.data_buf.direct_data, pm8001_ha 203 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 204 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha-> pm8001_ha 208 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_forensic_shift_offset += 0x100; pm8001_ha 209 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MEMBASE_II_SHIFT_REGISTER, pm8001_ha 210 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_forensic_shift_offset); pm8001_ha 211 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_bar_loc = 0; pm8001_ha 212 drivers/scsi/pm8001/pm80xx_hwi.c return (char *)pm8001_ha->forensic_info.data_buf.direct_data - pm8001_ha 215 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->forensic_fatal_step == 1) { pm8001_ha 216 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_forensic_shift_offset = 0; pm8001_ha 218 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MEMBASE_II_SHIFT_REGISTER, pm8001_ha 219 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_forensic_shift_offset); pm8001_ha 233 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 240 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_fatal_step = 0; pm8001_ha 248 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_data += pm8001_ha 249 drivers/scsi/pm8001/pm80xx_hwi.c sprintf(pm8001_ha-> pm8001_ha 252 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.read_len = 0xFFFFFFFF; pm8001_ha 253 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_len = 0; pm8001_ha 254 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.direct_offset = 0; pm8001_ha 255 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->forensic_info.data_buf.read_len = 0; pm8001_ha 259 drivers/scsi/pm8001/pm80xx_hwi.c return (char *)pm8001_ha->forensic_info.data_buf.direct_data - pm8001_ha 267 drivers/scsi/pm8001/pm80xx_hwi.c static void read_main_config_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 269 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->main_cfg_tbl_addr; pm8001_ha 271 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.signature = pm8001_ha 273 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.interface_rev = pm8001_ha 275 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.firmware_rev = pm8001_ha 277 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.max_out_io = pm8001_ha 279 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.max_sgl = pm8001_ha 281 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.ctrl_cap_flag = pm8001_ha 283 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.gst_offset = pm8001_ha 285 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.inbound_queue_offset = pm8001_ha 287 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.outbound_queue_offset = pm8001_ha 291 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_dump_offset0 = pm8001_ha 293 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_dump_length0 = pm8001_ha 295 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_dump_offset1 = pm8001_ha 297 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_dump_length1 = pm8001_ha 301 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.gpio_led_mapping = pm8001_ha 305 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.analog_setup_table_offset = pm8001_ha 308 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.int_vec_table_offset = pm8001_ha 310 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.phy_attr_table_offset = pm8001_ha 313 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer = pm8001_ha 316 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.ila_version = pm8001_ha 318 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.inc_fw_version = pm8001_ha 326 drivers/scsi/pm8001/pm80xx_hwi.c static void read_general_status_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 328 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->general_stat_tbl_addr; pm8001_ha 329 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.gst_len_mpistate = pm8001_ha 331 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.iq_freeze_state0 = pm8001_ha 333 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.iq_freeze_state1 = pm8001_ha 335 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.msgu_tcnt = pm8001_ha 337 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.iop_tcnt = pm8001_ha 339 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.gpio_input_val = pm8001_ha 341 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[0] = pm8001_ha 343 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[1] = pm8001_ha 345 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[2] = pm8001_ha 347 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[3] = pm8001_ha 349 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[4] = pm8001_ha 351 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[5] = pm8001_ha 353 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[6] = pm8001_ha 355 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->gs_tbl.pm80xx_tbl.recover_err_info[7] = pm8001_ha 362 drivers/scsi/pm8001/pm80xx_hwi.c static void read_phy_attr_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 364 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->pspa_q_tbl_addr; pm8001_ha 365 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[0] = pm8001_ha 367 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[1] = pm8001_ha 369 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[2] = pm8001_ha 371 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[3] = pm8001_ha 373 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[4] = pm8001_ha 375 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[5] = pm8001_ha 377 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[6] = pm8001_ha 379 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[7] = pm8001_ha 381 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[8] = pm8001_ha 383 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[9] = pm8001_ha 385 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[10] = pm8001_ha 387 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[11] = pm8001_ha 389 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[12] = pm8001_ha 391 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[13] = pm8001_ha 393 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[14] = pm8001_ha 395 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.phystart1_16[15] = pm8001_ha 398 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[0] = pm8001_ha 400 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[1] = pm8001_ha 402 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[2] = pm8001_ha 404 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[3] = pm8001_ha 406 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[4] = pm8001_ha 408 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[5] = pm8001_ha 410 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[6] = pm8001_ha 412 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[7] = pm8001_ha 414 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[8] = pm8001_ha 416 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[9] = pm8001_ha 418 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[10] = pm8001_ha 420 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[11] = pm8001_ha 422 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[12] = pm8001_ha 424 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[13] = pm8001_ha 426 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[14] = pm8001_ha 428 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy_attr_table.outbound_hw_event_pid1_16[15] = pm8001_ha 437 drivers/scsi/pm8001/pm80xx_hwi.c static void read_inbnd_queue_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 440 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->inbnd_q_tbl_addr; pm8001_ha 443 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_pci_bar = pm8001_ha 446 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_offset = pm8001_ha 455 drivers/scsi/pm8001/pm80xx_hwi.c static void read_outbnd_queue_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 458 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->outbnd_q_tbl_addr; pm8001_ha 461 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_pci_bar = pm8001_ha 464 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_offset = pm8001_ha 473 drivers/scsi/pm8001/pm80xx_hwi.c static void init_default_table_values(struct pm8001_hba_info *pm8001_ha) pm8001_ha 477 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *addressib = pm8001_ha->inbnd_q_tbl_addr; pm8001_ha 478 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *addressob = pm8001_ha->outbnd_q_tbl_addr; pm8001_ha 480 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.upper_event_log_addr = pm8001_ha 481 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[AAP1].phys_addr_hi; pm8001_ha 482 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.lower_event_log_addr = pm8001_ha 483 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[AAP1].phys_addr_lo; pm8001_ha 484 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.event_log_size = pm8001_ha 486 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.event_log_severity = 0x01; pm8001_ha 487 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.upper_pcs_event_log_addr = pm8001_ha 488 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[IOP].phys_addr_hi; pm8001_ha 489 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.lower_pcs_event_log_addr = pm8001_ha 490 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[IOP].phys_addr_lo; pm8001_ha 491 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_size = pm8001_ha 493 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity = 0x01; pm8001_ha 494 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt = 0x01; pm8001_ha 497 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump = (0x1 << 16); pm8001_ha 500 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].element_pri_size_cnt = pm8001_ha 501 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MPI_QUEUE | (pm8001_ha->iomb_size << 16) | (0x00<<30); pm8001_ha 502 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].upper_base_addr = pm8001_ha 503 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[IB + i].phys_addr_hi; pm8001_ha 504 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].lower_base_addr = pm8001_ha 505 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[IB + i].phys_addr_lo; pm8001_ha 506 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].base_virt = pm8001_ha 507 drivers/scsi/pm8001/pm80xx_hwi.c (u8 *)pm8001_ha->memoryMap.region[IB + i].virt_ptr; pm8001_ha 508 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].total_length = pm8001_ha 509 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[IB + i].total_len; pm8001_ha 510 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].ci_upper_base_addr = pm8001_ha 511 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[CI + i].phys_addr_hi; pm8001_ha 512 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].ci_lower_base_addr = pm8001_ha 513 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[CI + i].phys_addr_lo; pm8001_ha 514 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].ci_virt = pm8001_ha 515 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[CI + i].virt_ptr; pm8001_ha 517 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_pci_bar = pm8001_ha 520 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].pi_offset = pm8001_ha 522 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].producer_idx = 0; pm8001_ha 523 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[i].consumer_index = 0; pm8001_ha 526 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].element_size_cnt = pm8001_ha 527 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MPI_QUEUE | (pm8001_ha->iomb_size << 16) | (0x01<<30); pm8001_ha 528 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].upper_base_addr = pm8001_ha 529 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[OB + i].phys_addr_hi; pm8001_ha 530 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].lower_base_addr = pm8001_ha 531 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[OB + i].phys_addr_lo; pm8001_ha 532 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].base_virt = pm8001_ha 533 drivers/scsi/pm8001/pm80xx_hwi.c (u8 *)pm8001_ha->memoryMap.region[OB + i].virt_ptr; pm8001_ha 534 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].total_length = pm8001_ha 535 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[OB + i].total_len; pm8001_ha 536 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].pi_upper_base_addr = pm8001_ha 537 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[PI + i].phys_addr_hi; pm8001_ha 538 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].pi_lower_base_addr = pm8001_ha 539 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[PI + i].phys_addr_lo; pm8001_ha 541 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].interrup_vec_cnt_delay = (i << 24); pm8001_ha 542 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].pi_virt = pm8001_ha 543 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->memoryMap.region[PI + i].virt_ptr; pm8001_ha 545 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_pci_bar = pm8001_ha 548 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].ci_offset = pm8001_ha 550 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].consumer_idx = 0; pm8001_ha 551 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[i].producer_index = 0; pm8001_ha 559 drivers/scsi/pm8001/pm80xx_hwi.c static void update_main_config_table(struct pm8001_hba_info *pm8001_ha) pm8001_ha 561 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->main_cfg_tbl_addr; pm8001_ha 563 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.inbound_q_nppd_hppd); pm8001_ha 565 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.upper_event_log_addr); pm8001_ha 567 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.lower_event_log_addr); pm8001_ha 569 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.event_log_size); pm8001_ha 571 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.event_log_severity); pm8001_ha 573 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.upper_pcs_event_log_addr); pm8001_ha 575 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.lower_pcs_event_log_addr); pm8001_ha 577 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_size); pm8001_ha 579 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity); pm8001_ha 581 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt |= pm8001_ha 582 drivers/scsi/pm8001/pm80xx_hwi.c ((pm8001_ha->number_of_intr - 1) << 8); pm8001_ha 584 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt); pm8001_ha 586 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump); pm8001_ha 589 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.gpio_led_mapping &= 0xCFFFFFFF; pm8001_ha 591 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.gpio_led_mapping |= 0x20000000; pm8001_ha 593 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.gpio_led_mapping); pm8001_ha 596 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer); pm8001_ha 598 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.interrupt_reassertion_delay); pm8001_ha 600 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer &= 0xffff0000; pm8001_ha 601 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer |= pm8001_ha 603 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->chip_id == chip_8006) { pm8001_ha 604 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer &= pm8001_ha 606 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer |= pm8001_ha 610 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl.pm80xx_tbl.port_recovery_timer); pm8001_ha 617 drivers/scsi/pm8001/pm80xx_hwi.c static void update_inbnd_queue_table(struct pm8001_hba_info *pm8001_ha, pm8001_ha 620 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->inbnd_q_tbl_addr; pm8001_ha 623 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[number].element_pri_size_cnt); pm8001_ha 625 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[number].upper_base_addr); pm8001_ha 627 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[number].lower_base_addr); pm8001_ha 629 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[number].ci_upper_base_addr); pm8001_ha 631 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl[number].ci_lower_base_addr); pm8001_ha 638 drivers/scsi/pm8001/pm80xx_hwi.c static void update_outbnd_queue_table(struct pm8001_hba_info *pm8001_ha, pm8001_ha 641 drivers/scsi/pm8001/pm80xx_hwi.c void __iomem *address = pm8001_ha->outbnd_q_tbl_addr; pm8001_ha 644 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[number].element_size_cnt); pm8001_ha 646 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[number].upper_base_addr); pm8001_ha 648 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[number].lower_base_addr); pm8001_ha 650 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[number].pi_upper_base_addr); pm8001_ha 652 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[number].pi_lower_base_addr); pm8001_ha 654 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl[number].interrup_vec_cnt_delay); pm8001_ha 661 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_init_check(struct pm8001_hba_info *pm8001_ha) pm8001_ha 669 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_IBDB_SET, SPCv_MSGU_CFG_TABLE_UPDATE); pm8001_ha 671 drivers/scsi/pm8001/pm80xx_hwi.c if (IS_SPCV_12G(pm8001_ha->pdev)) { pm8001_ha 678 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_IBDB_SET); pm8001_ha 689 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mr32(pm8001_ha->general_stat_tbl_addr, pm8001_ha 708 drivers/scsi/pm8001/pm80xx_hwi.c static int check_fw_ready(struct pm8001_hba_info *pm8001_ha) pm8001_ha 719 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 726 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 732 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 741 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 747 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 756 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 762 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 768 drivers/scsi/pm8001/pm80xx_hwi.c if ((pm8001_ha->chip_id != chip_8008) && pm8001_ha 769 drivers/scsi/pm8001/pm80xx_hwi.c (pm8001_ha->chip_id != chip_8009)) { pm8001_ha 774 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 780 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 789 drivers/scsi/pm8001/pm80xx_hwi.c static void init_pci_device_addresses(struct pm8001_hba_info *pm8001_ha) pm8001_ha 797 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_0); pm8001_ha 800 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 805 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 807 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl_addr = base_addr = pm8001_ha 808 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->io_mem[pcibar].memvirtaddr + offset; pm8001_ha 809 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->general_stat_tbl_addr = pm8001_ha 810 drivers/scsi/pm8001/pm80xx_hwi.c base_addr + (pm8001_cr32(pm8001_ha, pcibar, offset + 0x18) & pm8001_ha 812 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl_addr = pm8001_ha 813 drivers/scsi/pm8001/pm80xx_hwi.c base_addr + (pm8001_cr32(pm8001_ha, pcibar, offset + 0x1C) & pm8001_ha 815 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl_addr = pm8001_ha 816 drivers/scsi/pm8001/pm80xx_hwi.c base_addr + (pm8001_cr32(pm8001_ha, pcibar, offset + 0x20) & pm8001_ha 818 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->ivt_tbl_addr = pm8001_ha 819 drivers/scsi/pm8001/pm80xx_hwi.c base_addr + (pm8001_cr32(pm8001_ha, pcibar, offset + 0x8C) & pm8001_ha 821 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->pspa_q_tbl_addr = pm8001_ha 822 drivers/scsi/pm8001/pm80xx_hwi.c base_addr + (pm8001_cr32(pm8001_ha, pcibar, offset + 0x90) & pm8001_ha 824 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->fatal_tbl_addr = pm8001_ha 825 drivers/scsi/pm8001/pm80xx_hwi.c base_addr + (pm8001_cr32(pm8001_ha, pcibar, offset + 0xA0) & pm8001_ha 828 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 830 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, pcibar, offset + 0x18))); pm8001_ha 831 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 833 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, pcibar, offset + 0x1C))); pm8001_ha 834 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 836 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, pcibar, offset + 0x20))); pm8001_ha 837 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 839 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, pcibar, offset + 0x8C))); pm8001_ha 840 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 842 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, pcibar, offset + 0x90))); pm8001_ha 843 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 845 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->main_cfg_tbl_addr, pm8001_ha 846 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->general_stat_tbl_addr)); pm8001_ha 847 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 849 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->inbnd_q_tbl_addr, pm8001_ha 850 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->outbnd_q_tbl_addr)); pm8001_ha 851 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 853 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->pspa_q_tbl_addr, pm8001_ha 854 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->ivt_tbl_addr)); pm8001_ha 862 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_set_thermal_config(struct pm8001_hba_info *pm8001_ha) pm8001_ha 872 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 876 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 879 drivers/scsi/pm8001/pm80xx_hwi.c if (IS_SPCV_12G(pm8001_ha->pdev)) pm8001_ha 888 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 890 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 901 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_set_sas_protocol_timer_config(struct pm8001_hba_info *pm8001_ha) pm8001_ha 913 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 918 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 940 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 943 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 946 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 949 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 952 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 955 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 958 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 961 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 964 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk("SASConfigPage.MAX_AIP " pm8001_ha 970 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 972 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 982 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_get_encrypt_info(struct pm8001_hba_info *pm8001_ha) pm8001_ha 988 drivers/scsi/pm8001/pm80xx_hwi.c scratch3_value = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_3); pm8001_ha 993 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.cipher_mode = CIPHER_MODE_XTS; pm8001_ha 996 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMF; pm8001_ha 999 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMA; pm8001_ha 1002 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMB; pm8001_ha 1003 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status = 0; pm8001_ha 1004 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1007 drivers/scsi/pm8001/pm80xx_hwi.c scratch3_value, pm8001_ha->encrypt_info.cipher_mode, pm8001_ha 1008 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode, pm8001_ha 1009 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status)); pm8001_ha 1013 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1016 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status = 0xFFFFFFFF; pm8001_ha 1017 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.cipher_mode = 0; pm8001_ha 1018 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = 0; pm8001_ha 1022 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status = pm8001_ha 1025 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.cipher_mode = CIPHER_MODE_XTS; pm8001_ha 1028 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMF; pm8001_ha 1031 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMA; pm8001_ha 1034 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMB; pm8001_ha 1035 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1038 drivers/scsi/pm8001/pm80xx_hwi.c scratch3_value, pm8001_ha->encrypt_info.cipher_mode, pm8001_ha 1039 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode, pm8001_ha 1040 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status)); pm8001_ha 1044 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status = pm8001_ha 1047 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.cipher_mode = CIPHER_MODE_XTS; pm8001_ha 1050 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMF; pm8001_ha 1053 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMA; pm8001_ha 1056 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode = SEC_MODE_SMB; pm8001_ha 1058 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1061 drivers/scsi/pm8001/pm80xx_hwi.c scratch3_value, pm8001_ha->encrypt_info.cipher_mode, pm8001_ha 1062 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.sec_mode, pm8001_ha 1063 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->encrypt_info.status)); pm8001_ha 1072 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_encrypt_update(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1081 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 1085 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 1093 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 1095 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 1104 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_init(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1110 drivers/scsi/pm8001/pm80xx_hwi.c if (-1 == check_fw_ready(pm8001_ha)) { pm8001_ha 1111 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1117 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->controller_fatal_error = false; pm8001_ha 1120 drivers/scsi/pm8001/pm80xx_hwi.c init_pci_device_addresses(pm8001_ha); pm8001_ha 1121 drivers/scsi/pm8001/pm80xx_hwi.c init_default_table_values(pm8001_ha); pm8001_ha 1122 drivers/scsi/pm8001/pm80xx_hwi.c read_main_config_table(pm8001_ha); pm8001_ha 1123 drivers/scsi/pm8001/pm80xx_hwi.c read_general_status_table(pm8001_ha); pm8001_ha 1124 drivers/scsi/pm8001/pm80xx_hwi.c read_inbnd_queue_table(pm8001_ha); pm8001_ha 1125 drivers/scsi/pm8001/pm80xx_hwi.c read_outbnd_queue_table(pm8001_ha); pm8001_ha 1126 drivers/scsi/pm8001/pm80xx_hwi.c read_phy_attr_table(pm8001_ha); pm8001_ha 1129 drivers/scsi/pm8001/pm80xx_hwi.c update_main_config_table(pm8001_ha); pm8001_ha 1131 drivers/scsi/pm8001/pm80xx_hwi.c update_inbnd_queue_table(pm8001_ha, i); pm8001_ha 1133 drivers/scsi/pm8001/pm80xx_hwi.c update_outbnd_queue_table(pm8001_ha, i); pm8001_ha 1136 drivers/scsi/pm8001/pm80xx_hwi.c if (0 == mpi_init_check(pm8001_ha)) { pm8001_ha 1137 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1143 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm80xx_set_sas_protocol_timer_config(pm8001_ha); pm8001_ha 1146 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->chip->encrypt) { pm8001_ha 1147 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1149 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm80xx_get_encrypt_info(pm8001_ha); pm8001_ha 1151 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1153 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->encrypt_info.status == 0x81) { pm8001_ha 1154 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1157 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_encrypt_update(pm8001_ha); pm8001_ha 1164 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_uninit_check(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1169 drivers/scsi/pm8001/pm80xx_hwi.c init_pci_device_addresses(pm8001_ha); pm8001_ha 1172 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_IBDB_SET, SPCv_MSGU_CFG_TABLE_RESET); pm8001_ha 1175 drivers/scsi/pm8001/pm80xx_hwi.c if (IS_SPCV_12G(pm8001_ha->pdev)) { pm8001_ha 1182 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_IBDB_SET); pm8001_ha 1187 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1198 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mr32(pm8001_ha->general_stat_tbl_addr, pm8001_ha 1205 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1221 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_soft_rst(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1228 drivers/scsi/pm8001/pm80xx_hwi.c if (!pm8001_ha->controller_fatal_error) { pm8001_ha 1230 drivers/scsi/pm8001/pm80xx_hwi.c if (mpi_uninit_check(pm8001_ha) != 0) { pm8001_ha 1231 drivers/scsi/pm8001/pm80xx_hwi.c regval = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 1232 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1239 drivers/scsi/pm8001/pm80xx_hwi.c regval = pm8001_cr32(pm8001_ha, 0, SPC_REG_SOFT_RESET); pm8001_ha 1240 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1243 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, SPC_REG_SOFT_RESET, SPCv_NORMAL_RESET_VALUE); pm8001_ha 1246 drivers/scsi/pm8001/pm80xx_hwi.c regval = pm8001_cr32(pm8001_ha, 0, SPC_REG_SOFT_RESET); pm8001_ha 1247 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1252 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 1256 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 1262 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1) & pm8001_ha 1266 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1270 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1274 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1278 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1285 drivers/scsi/pm8001/pm80xx_hwi.c if (-1 == check_fw_ready(pm8001_ha)) { pm8001_ha 1286 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1289 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->pdev->subsystem_vendor != pm8001_ha 1291 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->pdev->subsystem_vendor != pm8001_ha 1293 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->pdev->subsystem_vendor != 0) { pm8001_ha 1294 drivers/scsi/pm8001/pm80xx_hwi.c ibutton0 = pm8001_cr32(pm8001_ha, 0, pm8001_ha 1296 drivers/scsi/pm8001/pm80xx_hwi.c ibutton1 = pm8001_cr32(pm8001_ha, 0, pm8001_ha 1299 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1305 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1312 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1317 drivers/scsi/pm8001/pm80xx_hwi.c static void pm80xx_hw_chip_rst(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1321 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1325 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, SPC_REG_SOFT_RESET, 0x11); pm8001_ha 1326 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1339 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 1348 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_intx_interrupt_enable(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1350 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, ODMR_CLEAR_ALL); pm8001_ha 1351 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODCR, ODCR_CLEAR_ALL); pm8001_ha 1359 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_intx_interrupt_disable(struct pm8001_hba_info *pm8001_ha) pm8001_ha 1361 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, ODMR_MASK_ALL); pm8001_ha 1369 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_interrupt_enable(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 1375 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, (u32)(mask & 0xFFFFFFFF)); pm8001_ha 1378 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_intx_interrupt_enable(pm8001_ha); pm8001_ha 1387 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_interrupt_disable(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 1395 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, (u32)(mask & 0xFFFFFFFF)); pm8001_ha 1398 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_intx_interrupt_disable(pm8001_ha); pm8001_ha 1401 drivers/scsi/pm8001/pm80xx_hwi.c static void pm80xx_send_abort_all(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1414 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("dev is null\n")); pm8001_ha 1421 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("cannot " pm8001_ha 1428 drivers/scsi/pm8001/pm80xx_hwi.c res = pm8001_tag_alloc(pm8001_ha, &ccb_tag); pm8001_ha 1434 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[ccb_tag]; pm8001_ha 1439 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 1446 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &task_abort, 0); pm8001_ha 1449 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, ccb_tag); pm8001_ha 1453 drivers/scsi/pm8001/pm80xx_hwi.c static void pm80xx_send_read_log(struct pm8001_hba_info *pm8001_ha, pm8001_ha 1469 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1475 drivers/scsi/pm8001/pm80xx_hwi.c res = pm8001_tag_alloc(pm8001_ha, &ccb_tag); pm8001_ha 1478 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1489 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, ccb_tag); pm8001_ha 1490 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1498 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[ccb_tag]; pm8001_ha 1507 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 1522 drivers/scsi/pm8001/pm80xx_hwi.c res = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &sata_cmd, 0); pm8001_ha 1525 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, ccb_tag); pm8001_ha 1542 drivers/scsi/pm8001/pm80xx_hwi.c mpi_ssp_completion(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 1557 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 1568 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1576 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1582 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1593 drivers/scsi/pm8001/pm80xx_hwi.c sas_ssp_task_response(pm8001_ha->dev, t, iu); pm8001_ha 1599 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1606 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1616 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1622 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1630 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1637 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1644 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1651 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1658 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1670 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1676 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 1681 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1688 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1695 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1702 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1709 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1715 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1721 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1728 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1734 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1740 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1745 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 1750 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1756 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1762 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1768 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1775 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1782 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1791 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1797 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 1800 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 1807 drivers/scsi/pm8001/pm80xx_hwi.c static void mpi_ssp_event(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 1820 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 1824 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 1829 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1834 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n");) pm8001_ha 1842 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1844 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, t, IO_XFER_ERROR_BREAK); pm8001_ha 1847 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1854 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1861 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1868 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1880 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1886 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 1891 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1898 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1905 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1912 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1919 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1925 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1927 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, t, IO_XFER_OPEN_RETRY_TIMEOUT); pm8001_ha 1930 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1936 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1942 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1948 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1954 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1960 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1966 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1973 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1977 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 1990 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 1994 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 1997 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2005 drivers/scsi/pm8001/pm80xx_hwi.c mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 2028 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2032 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2038 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2047 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2054 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2061 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2071 drivers/scsi/pm8001/pm80xx_hwi.c sata_addr_low[i] = pm8001_ha->sas_addr[j]; pm8001_ha 2073 drivers/scsi/pm8001/pm80xx_hwi.c sata_addr_hi[i] = pm8001_ha->sas_addr[j]; pm8001_ha 2095 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2101 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2108 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_SUCCESS\n")); pm8001_ha 2119 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_send_abort_all(pm8001_ha, pm8001_dev); pm8001_ha 2121 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 2130 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2138 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2142 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2146 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2154 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2161 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2171 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2180 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2186 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2192 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2199 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2206 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2213 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2225 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2230 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2235 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2240 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2246 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2251 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2256 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2263 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2268 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2273 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2278 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2285 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2291 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2297 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2303 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2309 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2315 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2321 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2327 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2332 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_dev, pm8001_ha 2336 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2341 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2347 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2352 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_dev, pm8001_ha 2356 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2361 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2368 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2381 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2387 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2390 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2395 drivers/scsi/pm8001/pm80xx_hwi.c static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb) pm8001_ha 2409 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2415 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2420 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2426 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_dev = pm8001_find_dev(pm8001_ha, dev_id); pm8001_ha 2429 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_send_read_log(pm8001_ha, pm8001_dev); pm8001_ha 2434 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2440 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2445 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n")); pm8001_ha 2453 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2459 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2466 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2473 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2480 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2492 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2497 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2502 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2507 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2514 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2521 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2528 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2534 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2540 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2546 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2552 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2558 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2564 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2570 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2576 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2582 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2586 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2592 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2599 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2606 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2619 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2623 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2626 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, t, ccb, tag); pm8001_ha 2632 drivers/scsi/pm8001/pm80xx_hwi.c mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 2649 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 2655 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 2663 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_SUCCESS\n")); pm8001_ha 2668 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->smp_exp_mode == SMP_DIRECT) { pm8001_ha 2669 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2677 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2685 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2693 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n")); pm8001_ha 2701 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_NO_DEVICE\n")); pm8001_ha 2706 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2712 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2718 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2724 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2731 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2738 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2750 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2755 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_handle_event(pm8001_ha, pm8001_ha 2760 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2767 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk(\ pm8001_ha 2774 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2781 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2787 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2794 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2800 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2807 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2813 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2820 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2827 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 2840 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2844 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2847 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, t, ccb, tag); pm8001_ha 2863 drivers/scsi/pm8001/pm80xx_hwi.c static void pm80xx_hw_event_ack_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 2872 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[Qnum]; pm8001_ha 2878 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 2881 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 2884 drivers/scsi/pm8001/pm80xx_hwi.c static void hw_event_port_recover(struct pm8001_hba_info *pm8001_ha, pm8001_ha 2894 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 2896 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 2899 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 2916 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_sas_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 2931 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 2932 drivers/scsi/pm8001/pm80xx_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 2933 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 2939 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 2946 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 2950 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("end device.\n")); pm8001_ha 2951 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_phy_ctl_req(pm8001_ha, phy_id, pm8001_ha 2957 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 2963 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 2969 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 2988 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->flags == PM8001F_RUN_TIME) pm8001_ha 2990 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_bytes_dmaed(pm8001_ha, phy_id); pm8001_ha 2999 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_sata_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3014 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 3015 drivers/scsi/pm8001/pm80xx_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 3016 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3018 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3038 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_bytes_dmaed(pm8001_ha, phy_id); pm8001_ha 3047 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_phy_down(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3060 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 3061 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3070 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3072 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3077 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN, pm8001_ha 3083 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3087 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3092 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3094 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3099 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN, pm8001_ha 3106 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3113 drivers/scsi/pm8001/pm80xx_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 3119 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_phy_start_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3127 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3129 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 3134 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->flags == PM8001F_RUN_TIME && pm8001_ha 3147 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_thermal_hw_event(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3156 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3158 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3163 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3165 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3177 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_hw_event(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3192 drivers/scsi/pm8001/pm80xx_hwi.c struct sas_ha_struct *sas_ha = pm8001_ha->sas; pm8001_ha 3193 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phy_id]; pm8001_ha 3194 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_port *port = &pm8001_ha->port[port_id]; pm8001_ha 3196 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3203 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3205 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_sas_phy_up(pm8001_ha, piomb); pm8001_ha 3208 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3210 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_sata_phy_up(pm8001_ha, piomb); pm8001_ha 3213 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3218 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3220 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_phy_down(pm8001_ha, piomb); pm8001_ha 3221 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->reset_in_progress) { pm8001_ha 3222 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3230 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3239 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3241 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_BROADCAST_CHANGE, pm8001_ha 3249 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3256 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3264 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3266 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3270 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3272 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3277 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3279 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3284 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3286 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3291 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3295 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3303 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3305 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3310 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3315 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3322 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3324 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3332 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3334 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN, pm8001_ha 3339 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->phy[phy_id].reset_completion) { pm8001_ha 3340 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy[phy_id].port_reset_status = pm8001_ha 3342 drivers/scsi/pm8001/pm80xx_hwi.c complete(pm8001_ha->phy[phy_id].reset_completion); pm8001_ha 3343 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy[phy_id].reset_completion = NULL; pm8001_ha 3347 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3349 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_hw_event_ack_req(pm8001_ha, 0, pm8001_ha 3352 drivers/scsi/pm8001/pm80xx_hwi.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 3354 drivers/scsi/pm8001/pm80xx_hwi.c phy = &pm8001_ha->phy[i]; pm8001_ha 3362 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3364 drivers/scsi/pm8001/pm80xx_hwi.c hw_event_port_recover(pm8001_ha, piomb); pm8001_ha 3367 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3369 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->phy[phy_id].reset_completion) { pm8001_ha 3370 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy[phy_id].port_reset_status = pm8001_ha 3372 drivers/scsi/pm8001/pm80xx_hwi.c complete(pm8001_ha->phy[phy_id].reset_completion); pm8001_ha 3373 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->phy[phy_id].reset_completion = NULL; pm8001_ha 3377 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3381 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3393 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_phy_stop_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3401 drivers/scsi/pm8001/pm80xx_hwi.c struct pm8001_phy *phy = &pm8001_ha->phy[phyid]; pm8001_ha 3402 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3416 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_set_controller_config_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3424 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3436 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_get_controller_config_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3439 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3450 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_get_phy_profile_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3453 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3464 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_flash_op_ext_resp(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3466 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3477 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_set_phy_profile_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3489 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3495 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3509 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_kek_management_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3518 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3530 drivers/scsi/pm8001/pm80xx_hwi.c static int mpi_dek_management_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3533 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3544 drivers/scsi/pm8001/pm80xx_hwi.c static int ssp_coalesced_comp_resp(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3547 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3558 drivers/scsi/pm8001/pm80xx_hwi.c static void process_one_iomb(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_ha 3565 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk("OPC_OUB_ECHO\n")); pm8001_ha 3568 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3570 drivers/scsi/pm8001/pm80xx_hwi.c mpi_hw_event(pm8001_ha, piomb); pm8001_ha 3573 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3575 drivers/scsi/pm8001/pm80xx_hwi.c mpi_thermal_hw_event(pm8001_ha, piomb); pm8001_ha 3578 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3580 drivers/scsi/pm8001/pm80xx_hwi.c mpi_ssp_completion(pm8001_ha, piomb); pm8001_ha 3583 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3585 drivers/scsi/pm8001/pm80xx_hwi.c mpi_smp_completion(pm8001_ha, piomb); pm8001_ha 3588 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3590 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_local_phy_ctl(pm8001_ha, piomb); pm8001_ha 3593 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3595 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_reg_resp(pm8001_ha, piomb); pm8001_ha 3598 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3600 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_dereg_resp(pm8001_ha, piomb); pm8001_ha 3603 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3607 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3609 drivers/scsi/pm8001/pm80xx_hwi.c mpi_sata_completion(pm8001_ha, piomb); pm8001_ha 3612 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3614 drivers/scsi/pm8001/pm80xx_hwi.c mpi_sata_event(pm8001_ha, piomb); pm8001_ha 3617 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3619 drivers/scsi/pm8001/pm80xx_hwi.c mpi_ssp_event(pm8001_ha, piomb); pm8001_ha 3622 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3627 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3632 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3634 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_fw_flash_update_resp(pm8001_ha, piomb); pm8001_ha 3637 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3641 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3645 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3647 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_general_event(pm8001_ha, piomb); pm8001_ha 3650 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3652 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_task_abort_resp(pm8001_ha, piomb); pm8001_ha 3655 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3657 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_task_abort_resp(pm8001_ha, piomb); pm8001_ha 3660 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3664 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3668 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3672 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3676 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3680 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3682 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_task_abort_resp(pm8001_ha, piomb); pm8001_ha 3685 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3687 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_get_nvmd_resp(pm8001_ha, piomb); pm8001_ha 3690 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3692 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_set_nvmd_resp(pm8001_ha, piomb); pm8001_ha 3695 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3699 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3701 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_set_dev_state_resp(pm8001_ha, piomb); pm8001_ha 3704 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3708 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_ha 3713 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3715 drivers/scsi/pm8001/pm80xx_hwi.c mpi_phy_start_resp(pm8001_ha, piomb); pm8001_ha 3718 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3720 drivers/scsi/pm8001/pm80xx_hwi.c mpi_phy_stop_resp(pm8001_ha, piomb); pm8001_ha 3723 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3725 drivers/scsi/pm8001/pm80xx_hwi.c mpi_set_controller_config_resp(pm8001_ha, piomb); pm8001_ha 3728 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3730 drivers/scsi/pm8001/pm80xx_hwi.c mpi_get_controller_config_resp(pm8001_ha, piomb); pm8001_ha 3733 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3735 drivers/scsi/pm8001/pm80xx_hwi.c mpi_get_phy_profile_resp(pm8001_ha, piomb); pm8001_ha 3738 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3740 drivers/scsi/pm8001/pm80xx_hwi.c mpi_flash_op_ext_resp(pm8001_ha, piomb); pm8001_ha 3743 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3745 drivers/scsi/pm8001/pm80xx_hwi.c mpi_set_phy_profile_resp(pm8001_ha, piomb); pm8001_ha 3748 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3750 drivers/scsi/pm8001/pm80xx_hwi.c mpi_kek_management_resp(pm8001_ha, piomb); pm8001_ha 3753 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3755 drivers/scsi/pm8001/pm80xx_hwi.c mpi_dek_management_resp(pm8001_ha, piomb); pm8001_ha 3758 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3760 drivers/scsi/pm8001/pm80xx_hwi.c ssp_coalesced_comp_resp(pm8001_ha, piomb); pm8001_ha 3763 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_MSG_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3769 drivers/scsi/pm8001/pm80xx_hwi.c static void print_scratchpad_registers(struct pm8001_hba_info *pm8001_ha) pm8001_ha 3771 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3773 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_0))); pm8001_ha 3774 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3776 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1))); pm8001_ha 3777 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3779 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_2))); pm8001_ha 3780 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3782 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_3))); pm8001_ha 3783 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3785 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_0))); pm8001_ha 3786 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3788 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_1))); pm8001_ha 3789 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3791 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_2))); pm8001_ha 3792 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3794 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_3))); pm8001_ha 3795 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3797 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_4))); pm8001_ha 3798 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3800 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_5))); pm8001_ha 3801 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3803 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_6))); pm8001_ha 3804 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 3806 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_cr32(pm8001_ha, 0, MSGU_HOST_SCRATCH_PAD_7))); pm8001_ha 3809 drivers/scsi/pm8001/pm80xx_hwi.c static int process_oq(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 3818 drivers/scsi/pm8001/pm80xx_hwi.c if (vec == (pm8001_ha->number_of_intr - 1)) { pm8001_ha 3819 drivers/scsi/pm8001/pm80xx_hwi.c regval = pm8001_cr32(pm8001_ha, 0, MSGU_SCRATCH_PAD_1); pm8001_ha 3822 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->controller_fatal_error = true; pm8001_ha 3823 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3825 drivers/scsi/pm8001/pm80xx_hwi.c print_scratchpad_registers(pm8001_ha); pm8001_ha 3829 drivers/scsi/pm8001/pm80xx_hwi.c spin_lock_irqsave(&pm8001_ha->lock, flags); pm8001_ha 3830 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->outbnd_q_tbl[vec]; pm8001_ha 3838 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm8001_mpi_msg_consume(pm8001_ha, circularQ, &pMsg1, &bc); pm8001_ha 3841 drivers/scsi/pm8001/pm80xx_hwi.c process_one_iomb(pm8001_ha, (void *)(pMsg1 - 4)); pm8001_ha 3843 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_mpi_msg_free_set(pm8001_ha, pMsg1, pm8001_ha 3856 drivers/scsi/pm8001/pm80xx_hwi.c spin_unlock_irqrestore(&pm8001_ha->lock, flags); pm8001_ha 3886 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_smp_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 3907 drivers/scsi/pm8001/pm80xx_hwi.c elem = dma_map_sg(pm8001_ha->dev, sg_req, 1, DMA_TO_DEVICE); pm8001_ha 3913 drivers/scsi/pm8001/pm80xx_hwi.c elem = dma_map_sg(pm8001_ha->dev, sg_resp, 1, DMA_FROM_DEVICE); pm8001_ha 3926 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 3930 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3933 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->smp_exp_mode = SMP_DIRECT; pm8001_ha 3935 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ha->smp_exp_mode = SMP_INDIRECT; pm8001_ha 3942 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->smp_exp_mode == SMP_INDIRECT) { pm8001_ha 3943 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3975 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->smp_exp_mode == SMP_DIRECT) { pm8001_ha 3976 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_ha 3981 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3987 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 3995 drivers/scsi/pm8001/pm80xx_hwi.c &smp_cmd, pm8001_ha->smp_exp_mode, length); pm8001_ha 3996 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, pm8001_ha 4003 drivers/scsi/pm8001/pm80xx_hwi.c dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_resp, 1, pm8001_ha 4006 drivers/scsi/pm8001/pm80xx_hwi.c dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_req, 1, pm8001_ha 4049 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4081 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[q_index]; pm8001_ha 4084 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->chip->encrypt && pm8001_ha 4085 drivers/scsi/pm8001/pm80xx_hwi.c !(pm8001_ha->encrypt_info.status) && check_enc_sas_cmd(task)) { pm8001_ha 4086 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 4119 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 4151 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 4178 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 4204 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, pm8001_ha 4209 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_sata_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4229 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[q_index]; pm8001_ha 4233 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("no data\n")); pm8001_ha 4237 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("DMA\n")); pm8001_ha 4240 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("PIO\n")); pm8001_ha 4245 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk("FPDMA\n")); pm8001_ha 4263 drivers/scsi/pm8001/pm80xx_hwi.c if (pm8001_ha->chip->encrypt && pm8001_ha 4264 drivers/scsi/pm8001/pm80xx_hwi.c !(pm8001_ha->encrypt_info.status) && check_enc_sat_cmd(task)) { pm8001_ha 4265 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 4296 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 4333 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_IO_DBG(pm8001_ha, pm8001_printk( pm8001_ha 4362 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 4429 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_ha 4433 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free(pm8001_ha, task, ccb, tag); pm8001_ha 4438 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_ccb_task_free_done(pm8001_ha, task, pm8001_ha 4445 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, pm8001_ha 4457 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id) pm8001_ha 4464 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4468 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 4477 drivers/scsi/pm8001/pm80xx_hwi.c if (!IS_SPCV_12G(pm8001_ha->pdev)) pm8001_ha 4499 drivers/scsi/pm8001/pm80xx_hwi.c &pm8001_ha->phy[phy_id].dev_sas_addr, SAS_ADDR_SIZE); pm8001_ha 4501 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opcode, &payload, 0); pm8001_ha 4511 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_phy_stop_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4519 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4523 drivers/scsi/pm8001/pm80xx_hwi.c ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opcode, &payload, 0); pm8001_ha 4530 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_reg_dev_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4545 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4548 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4551 drivers/scsi/pm8001/pm80xx_hwi.c ccb = &pm8001_ha->ccb_info[tag]; pm8001_ha 4589 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4591 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 4603 drivers/scsi/pm8001/pm80xx_hwi.c static int pm80xx_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4612 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4615 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4619 drivers/scsi/pm8001/pm80xx_hwi.c return pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4622 drivers/scsi/pm8001/pm80xx_hwi.c static u32 pm80xx_chip_is_our_interrupt(struct pm8001_hba_info *pm8001_ha) pm8001_ha 4629 drivers/scsi/pm8001/pm80xx_hwi.c value = pm8001_cr32(pm8001_ha, 0, MSGU_ODR); pm8001_ha 4643 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_isr(struct pm8001_hba_info *pm8001_ha, u8 vec) pm8001_ha 4645 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_interrupt_disable(pm8001_ha, vec); pm8001_ha 4646 drivers/scsi/pm8001/pm80xx_hwi.c process_oq(pm8001_ha, vec); pm8001_ha 4647 drivers/scsi/pm8001/pm80xx_hwi.c pm80xx_chip_interrupt_enable(pm8001_ha, vec); pm8001_ha 4651 drivers/scsi/pm8001/pm80xx_hwi.c void mpi_set_phy_profile_req(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4661 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4663 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("Invalid tag\n")); pm8001_ha 4664 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4667 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_ha 4674 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4676 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 4679 drivers/scsi/pm8001/pm80xx_hwi.c void pm8001_set_phy_profile(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4684 drivers/scsi/pm8001/pm80xx_hwi.c for (i = 0; i < pm8001_ha->chip->n_phy; i++) { pm8001_ha 4685 drivers/scsi/pm8001/pm80xx_hwi.c mpi_set_phy_profile_req(pm8001_ha, pm8001_ha 4689 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk("phy settings completed\n")); pm8001_ha 4692 drivers/scsi/pm8001/pm80xx_hwi.c void pm8001_set_phy_profile_single(struct pm8001_hba_info *pm8001_ha, pm8001_ha 4702 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_tag_alloc(pm8001_ha, &tag); pm8001_ha 4704 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha, pm8001_printk("Invalid tag")); pm8001_ha 4706 drivers/scsi/pm8001/pm80xx_hwi.c circularQ = &pm8001_ha->inbnd_q_tbl[0]; pm8001_ha 4716 drivers/scsi/pm8001/pm80xx_hwi.c rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0); pm8001_ha 4718 drivers/scsi/pm8001/pm80xx_hwi.c pm8001_tag_free(pm8001_ha, tag); pm8001_ha 4720 drivers/scsi/pm8001/pm80xx_hwi.c PM8001_INIT_DBG(pm8001_ha,