Lines Matching refs:ha
16 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_read_flash() local
27 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_read_flash()
30 if (ql4xxx_reset_active(ha)) { in qla4xxx_read_flash()
31 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_read_flash()
36 if (ha->flash_state != QLFLASH_WAITING) { in qla4xxx_read_flash()
37 ql4_printk(KERN_ERR, ha, "%s: another flash operation " in qla4xxx_read_flash()
43 ha->flash_state = QLFLASH_READING; in qla4xxx_read_flash()
47 flash = dma_alloc_coherent(&ha->pdev->dev, length, &flash_dma, in qla4xxx_read_flash()
50 ql4_printk(KERN_ERR, ha, "%s: dma alloc failed for flash " in qla4xxx_read_flash()
56 rval = qla4xxx_get_flash(ha, flash_dma, offset, length); in qla4xxx_read_flash()
58 ql4_printk(KERN_ERR, ha, "%s: get flash failed\n", __func__); in qla4xxx_read_flash()
71 dma_free_coherent(&ha->pdev->dev, length, flash, flash_dma); in qla4xxx_read_flash()
73 ha->flash_state = QLFLASH_WAITING; in qla4xxx_read_flash()
81 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_update_flash() local
93 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_update_flash()
96 if (ql4xxx_reset_active(ha)) { in qla4xxx_update_flash()
97 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_update_flash()
102 if (ha->flash_state != QLFLASH_WAITING) { in qla4xxx_update_flash()
103 ql4_printk(KERN_ERR, ha, "%s: another flash operation " in qla4xxx_update_flash()
109 ha->flash_state = QLFLASH_WRITING; in qla4xxx_update_flash()
114 flash = dma_alloc_coherent(&ha->pdev->dev, length, &flash_dma, in qla4xxx_update_flash()
117 ql4_printk(KERN_ERR, ha, "%s: dma alloc failed for flash " in qla4xxx_update_flash()
126 rval = qla4xxx_set_flash(ha, flash_dma, offset, length, options); in qla4xxx_update_flash()
128 ql4_printk(KERN_ERR, ha, "%s: set flash failed\n", __func__); in qla4xxx_update_flash()
136 dma_free_coherent(&ha->pdev->dev, length, flash, flash_dma); in qla4xxx_update_flash()
138 ha->flash_state = QLFLASH_WAITING; in qla4xxx_update_flash()
146 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_get_acb_state() local
156 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_get_acb_state()
160 if (is_qla4010(ha)) in qla4xxx_get_acb_state()
163 if (ql4xxx_reset_active(ha)) { in qla4xxx_get_acb_state()
164 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_get_acb_state()
170 ql4_printk(KERN_ERR, ha, "%s: invalid payload len %d\n", in qla4xxx_get_acb_state()
179 rval = qla4xxx_get_ip_state(ha, acb_idx, ip_idx, status); in qla4xxx_get_acb_state()
181 ql4_printk(KERN_ERR, ha, "%s: get ip state failed\n", in qla4xxx_get_acb_state()
203 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_read_nvram() local
215 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_read_nvram()
219 if (!(is_qla4010(ha) || is_qla4022(ha) || is_qla4032(ha))) in qla4xxx_read_nvram()
222 if (ql4xxx_reset_active(ha)) { in qla4xxx_read_nvram()
223 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_read_nvram()
233 if ((is_qla4010(ha) && total_len > QL4010_NVRAM_SIZE) || in qla4xxx_read_nvram()
234 ((is_qla4022(ha) || is_qla4032(ha)) && in qla4xxx_read_nvram()
236 ql4_printk(KERN_ERR, ha, "%s: offset+len greater than max" in qla4xxx_read_nvram()
242 nvram = dma_alloc_coherent(&ha->pdev->dev, len, &nvram_dma, in qla4xxx_read_nvram()
245 ql4_printk(KERN_ERR, ha, "%s: dma alloc failed for nvram " in qla4xxx_read_nvram()
251 rval = qla4xxx_get_nvram(ha, nvram_dma, offset, len); in qla4xxx_read_nvram()
253 ql4_printk(KERN_ERR, ha, "%s: get nvram failed\n", __func__); in qla4xxx_read_nvram()
266 dma_free_coherent(&ha->pdev->dev, len, nvram, nvram_dma); in qla4xxx_read_nvram()
275 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_update_nvram() local
287 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_update_nvram()
290 if (!(is_qla4010(ha) || is_qla4022(ha) || is_qla4032(ha))) in qla4xxx_update_nvram()
293 if (ql4xxx_reset_active(ha)) { in qla4xxx_update_nvram()
294 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_update_nvram()
304 if ((is_qla4010(ha) && total_len > QL4010_NVRAM_SIZE) || in qla4xxx_update_nvram()
305 ((is_qla4022(ha) || is_qla4032(ha)) && in qla4xxx_update_nvram()
307 ql4_printk(KERN_ERR, ha, "%s: offset+len greater than max" in qla4xxx_update_nvram()
313 nvram = dma_alloc_coherent(&ha->pdev->dev, len, &nvram_dma, in qla4xxx_update_nvram()
316 ql4_printk(KERN_ERR, ha, "%s: dma alloc failed for flash " in qla4xxx_update_nvram()
325 rval = qla4xxx_set_nvram(ha, nvram_dma, offset, len); in qla4xxx_update_nvram()
327 ql4_printk(KERN_ERR, ha, "%s: set nvram failed\n", __func__); in qla4xxx_update_nvram()
335 dma_free_coherent(&ha->pdev->dev, len, nvram, nvram_dma); in qla4xxx_update_nvram()
344 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_restore_defaults() local
354 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_restore_defaults()
357 if (is_qla4010(ha)) in qla4xxx_restore_defaults()
360 if (ql4xxx_reset_active(ha)) { in qla4xxx_restore_defaults()
361 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_restore_defaults()
370 rval = qla4xxx_restore_factory_defaults(ha, region, field0, field1); in qla4xxx_restore_defaults()
372 ql4_printk(KERN_ERR, ha, "%s: set nvram failed\n", __func__); in qla4xxx_restore_defaults()
388 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_bsg_get_acb() local
399 if (unlikely(pci_channel_offline(ha->pdev))) in qla4xxx_bsg_get_acb()
403 if (is_qla4010(ha)) in qla4xxx_bsg_get_acb()
406 if (ql4xxx_reset_active(ha)) { in qla4xxx_bsg_get_acb()
407 ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__); in qla4xxx_bsg_get_acb()
415 ql4_printk(KERN_ERR, ha, "%s: invalid acb len %d\n", in qla4xxx_bsg_get_acb()
421 acb = dma_alloc_coherent(&ha->pdev->dev, len, &acb_dma, GFP_KERNEL); in qla4xxx_bsg_get_acb()
423 ql4_printk(KERN_ERR, ha, "%s: dma alloc failed for acb " in qla4xxx_bsg_get_acb()
429 rval = qla4xxx_get_acb(ha, acb_dma, acb_type, len); in qla4xxx_bsg_get_acb()
431 ql4_printk(KERN_ERR, ha, "%s: get acb failed\n", __func__); in qla4xxx_bsg_get_acb()
444 dma_free_coherent(&ha->pdev->dev, len, acb, acb_dma); in qla4xxx_bsg_get_acb()
452 struct scsi_qla_host *ha = to_qla_host(host); in ql4xxx_execute_diag_cmd() local
460 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: in\n", __func__)); in ql4xxx_execute_diag_cmd()
462 if (test_bit(DPC_RESET_HA, &ha->dpc_flags)) { in ql4xxx_execute_diag_cmd()
463 ql4_printk(KERN_INFO, ha, "%s: Adapter reset in progress. Invalid Request\n", in ql4xxx_execute_diag_cmd()
473 DEBUG2(ql4_printk(KERN_INFO, ha, in ql4xxx_execute_diag_cmd()
479 status = qla4xxx_mailbox_command(ha, MBOX_REG_COUNT, 8, &mbox_cmd[0], in ql4xxx_execute_diag_cmd()
482 DEBUG2(ql4_printk(KERN_INFO, ha, in ql4xxx_execute_diag_cmd()
499 DEBUG2(ql4_printk(KERN_INFO, ha, in ql4xxx_execute_diag_cmd()
507 static int qla4_83xx_wait_for_loopback_config_comp(struct scsi_qla_host *ha, in qla4_83xx_wait_for_loopback_config_comp() argument
512 if (!wait_for_completion_timeout(&ha->idc_comp, (IDC_COMP_TOV * HZ))) { in qla4_83xx_wait_for_loopback_config_comp()
513 …ql4_printk(KERN_INFO, ha, "%s: IDC Complete notification not received, Waiting for another %d time… in qla4_83xx_wait_for_loopback_config_comp()
514 __func__, ha->idc_extend_tmo); in qla4_83xx_wait_for_loopback_config_comp()
515 if (ha->idc_extend_tmo) { in qla4_83xx_wait_for_loopback_config_comp()
516 if (!wait_for_completion_timeout(&ha->idc_comp, in qla4_83xx_wait_for_loopback_config_comp()
517 (ha->idc_extend_tmo * HZ))) { in qla4_83xx_wait_for_loopback_config_comp()
518 ha->notify_idc_comp = 0; in qla4_83xx_wait_for_loopback_config_comp()
519 ha->notify_link_up_comp = 0; in qla4_83xx_wait_for_loopback_config_comp()
520 ql4_printk(KERN_WARNING, ha, "%s: Aborting: IDC Complete notification not received", in qla4_83xx_wait_for_loopback_config_comp()
525 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4_83xx_wait_for_loopback_config_comp()
531 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4_83xx_wait_for_loopback_config_comp()
535 ha->notify_idc_comp = 0; in qla4_83xx_wait_for_loopback_config_comp()
538 if (!wait_for_completion_timeout(&ha->link_up_comp, in qla4_83xx_wait_for_loopback_config_comp()
540 ha->notify_link_up_comp = 0; in qla4_83xx_wait_for_loopback_config_comp()
541 ql4_printk(KERN_WARNING, ha, "%s: Aborting: LINK UP notification not received", in qla4_83xx_wait_for_loopback_config_comp()
546 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4_83xx_wait_for_loopback_config_comp()
550 ha->notify_link_up_comp = 0; in qla4_83xx_wait_for_loopback_config_comp()
557 static int qla4_83xx_pre_loopback_config(struct scsi_qla_host *ha, in qla4_83xx_pre_loopback_config() argument
563 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: in\n", __func__)); in qla4_83xx_pre_loopback_config()
565 status = qla4_83xx_get_port_config(ha, &config); in qla4_83xx_pre_loopback_config()
569 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: Default port config=%08X\n", in qla4_83xx_pre_loopback_config()
574 ql4_printk(KERN_INFO, ha, "%s: Loopback diagnostics already in progress. Invalid request\n", in qla4_83xx_pre_loopback_config()
587 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: New port config=%08X\n", in qla4_83xx_pre_loopback_config()
590 ha->notify_idc_comp = 1; in qla4_83xx_pre_loopback_config()
591 ha->notify_link_up_comp = 1; in qla4_83xx_pre_loopback_config()
594 qla4xxx_get_firmware_state(ha); in qla4_83xx_pre_loopback_config()
596 status = qla4_83xx_set_port_config(ha, &config); in qla4_83xx_pre_loopback_config()
598 ha->notify_idc_comp = 0; in qla4_83xx_pre_loopback_config()
599 ha->notify_link_up_comp = 0; in qla4_83xx_pre_loopback_config()
603 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: status = %s\n", __func__, in qla4_83xx_pre_loopback_config()
608 static int qla4_83xx_post_loopback_config(struct scsi_qla_host *ha, in qla4_83xx_post_loopback_config() argument
614 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: in\n", __func__)); in qla4_83xx_post_loopback_config()
616 status = qla4_83xx_get_port_config(ha, &config); in qla4_83xx_post_loopback_config()
620 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: port config=%08X\n", __func__, in qla4_83xx_post_loopback_config()
630 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4_83xx_post_loopback_config()
634 ha->notify_idc_comp = 1; in qla4_83xx_post_loopback_config()
635 if (ha->addl_fw_state & FW_ADDSTATE_LINK_UP) in qla4_83xx_post_loopback_config()
636 ha->notify_link_up_comp = 1; in qla4_83xx_post_loopback_config()
638 status = qla4_83xx_set_port_config(ha, &config); in qla4_83xx_post_loopback_config()
640 ql4_printk(KERN_INFO, ha, "%s: Scheduling adapter reset\n", in qla4_83xx_post_loopback_config()
642 set_bit(DPC_RESET_HA, &ha->dpc_flags); in qla4_83xx_post_loopback_config()
643 clear_bit(AF_LOOPBACK, &ha->flags); in qla4_83xx_post_loopback_config()
648 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: status = %s\n", __func__, in qla4_83xx_post_loopback_config()
656 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_execute_diag_loopback_cmd() local
665 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: in\n", __func__)); in qla4xxx_execute_diag_loopback_cmd()
669 if (test_bit(AF_LOOPBACK, &ha->flags)) { in qla4xxx_execute_diag_loopback_cmd()
670 ql4_printk(KERN_INFO, ha, "%s: Loopback Diagnostics already in progress. Invalid Request\n", in qla4xxx_execute_diag_loopback_cmd()
676 if (test_bit(DPC_RESET_HA, &ha->dpc_flags)) { in qla4xxx_execute_diag_loopback_cmd()
677 ql4_printk(KERN_INFO, ha, "%s: Adapter reset in progress. Invalid Request\n", in qla4xxx_execute_diag_loopback_cmd()
686 if (is_qla8032(ha) || is_qla8042(ha)) { in qla4xxx_execute_diag_loopback_cmd()
687 status = qla4_83xx_pre_loopback_config(ha, mbox_cmd); in qla4xxx_execute_diag_loopback_cmd()
693 status = qla4_83xx_wait_for_loopback_config_comp(ha, in qla4xxx_execute_diag_loopback_cmd()
701 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4xxx_execute_diag_loopback_cmd()
707 status = qla4xxx_mailbox_command(ha, MBOX_REG_COUNT, 8, &mbox_cmd[0], in qla4xxx_execute_diag_loopback_cmd()
715 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4xxx_execute_diag_loopback_cmd()
726 if (is_qla8032(ha) || is_qla8042(ha)) { in qla4xxx_execute_diag_loopback_cmd()
727 status = qla4_83xx_post_loopback_config(ha, mbox_cmd); in qla4xxx_execute_diag_loopback_cmd()
735 if (!(ha->addl_fw_state & FW_ADDSTATE_LINK_UP)) in qla4xxx_execute_diag_loopback_cmd()
738 status = qla4_83xx_wait_for_loopback_config_comp(ha, in qla4xxx_execute_diag_loopback_cmd()
746 DEBUG2(ql4_printk(KERN_INFO, ha, in qla4xxx_execute_diag_loopback_cmd()
756 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_execute_diag_test() local
761 DEBUG2(ql4_printk(KERN_INFO, ha, "%s: in\n", __func__)); in qla4xxx_execute_diag_test()
790 ql4_printk(KERN_ERR, ha, "%s: Invalid diag test: 0x%x\n", in qla4xxx_execute_diag_test()
799 ql4_printk(KERN_ERR, ha, "%s: Invalid diag cmd: 0x%x\n", in qla4xxx_execute_diag_test()
815 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_process_vendor_specific() local
843 ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: " in qla4xxx_process_vendor_specific()
861 struct scsi_qla_host *ha = to_qla_host(host); in qla4xxx_bsg_request() local
868 ql4_printk(KERN_ERR, ha, "%s: invalid BSG command: 0x%x\n", in qla4xxx_bsg_request()