aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/qla2xxx/qla_dbg.c130
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h42
-rw-r--r--drivers/scsi/qla2xxx/qla_fw.h3
-rw-r--r--drivers/scsi/qla2xxx/qla_gs.c6
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c56
-rw-r--r--drivers/scsi/qla2xxx/qla_inline.h86
-rw-r--r--drivers/scsi/qla2xxx/qla_iocb.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c21
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c12
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c78
-rw-r--r--drivers/scsi/qla2xxx/qla_rscn.c30
-rw-r--r--drivers/scsi/qla2xxx/qla_settings.h25
-rw-r--r--drivers/scsi/qla2xxx/qla_sup.c10
-rw-r--r--drivers/scsi/qla2xxx/qla_version.h2
14 files changed, 199 insertions, 306 deletions
diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
index 80dcc2bac6d6..d5107aa15c1e 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.c
+++ b/drivers/scsi/qla2xxx/qla_dbg.c
@@ -74,7 +74,7 @@ qla2300_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
74 fw->hccr = RD_REG_WORD(&reg->hccr); 74 fw->hccr = RD_REG_WORD(&reg->hccr);
75 75
76 /* Pause RISC. */ 76 /* Pause RISC. */
77 WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC); 77 WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC);
78 if (IS_QLA2300(ha)) { 78 if (IS_QLA2300(ha)) {
79 for (cnt = 30000; 79 for (cnt = 30000;
80 (RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) == 0 && 80 (RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) == 0 &&
@@ -91,85 +91,85 @@ qla2300_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
91 91
92 if (rval == QLA_SUCCESS) { 92 if (rval == QLA_SUCCESS) {
93 dmp_reg = (uint16_t __iomem *)(reg + 0); 93 dmp_reg = (uint16_t __iomem *)(reg + 0);
94 for (cnt = 0; cnt < sizeof(fw->pbiu_reg) / 2; cnt++) 94 for (cnt = 0; cnt < sizeof(fw->pbiu_reg) / 2; cnt++)
95 fw->pbiu_reg[cnt] = RD_REG_WORD(dmp_reg++); 95 fw->pbiu_reg[cnt] = RD_REG_WORD(dmp_reg++);
96 96
97 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x10); 97 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x10);
98 for (cnt = 0; cnt < sizeof(fw->risc_host_reg) / 2; cnt++) 98 for (cnt = 0; cnt < sizeof(fw->risc_host_reg) / 2; cnt++)
99 fw->risc_host_reg[cnt] = RD_REG_WORD(dmp_reg++); 99 fw->risc_host_reg[cnt] = RD_REG_WORD(dmp_reg++);
100 100
101 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x40); 101 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x40);
102 for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2; cnt++) 102 for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2; cnt++)
103 fw->mailbox_reg[cnt] = RD_REG_WORD(dmp_reg++); 103 fw->mailbox_reg[cnt] = RD_REG_WORD(dmp_reg++);
104 104
105 WRT_REG_WORD(&reg->ctrl_status, 0x40); 105 WRT_REG_WORD(&reg->ctrl_status, 0x40);
106 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 106 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
107 for (cnt = 0; cnt < sizeof(fw->resp_dma_reg) / 2; cnt++) 107 for (cnt = 0; cnt < sizeof(fw->resp_dma_reg) / 2; cnt++)
108 fw->resp_dma_reg[cnt] = RD_REG_WORD(dmp_reg++); 108 fw->resp_dma_reg[cnt] = RD_REG_WORD(dmp_reg++);
109 109
110 WRT_REG_WORD(&reg->ctrl_status, 0x50); 110 WRT_REG_WORD(&reg->ctrl_status, 0x50);
111 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 111 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
112 for (cnt = 0; cnt < sizeof(fw->dma_reg) / 2; cnt++) 112 for (cnt = 0; cnt < sizeof(fw->dma_reg) / 2; cnt++)
113 fw->dma_reg[cnt] = RD_REG_WORD(dmp_reg++); 113 fw->dma_reg[cnt] = RD_REG_WORD(dmp_reg++);
114 114
115 WRT_REG_WORD(&reg->ctrl_status, 0x00); 115 WRT_REG_WORD(&reg->ctrl_status, 0x00);
116 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0xA0); 116 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0xA0);
117 for (cnt = 0; cnt < sizeof(fw->risc_hdw_reg) / 2; cnt++) 117 for (cnt = 0; cnt < sizeof(fw->risc_hdw_reg) / 2; cnt++)
118 fw->risc_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++); 118 fw->risc_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++);
119 119
120 WRT_REG_WORD(&reg->pcr, 0x2000); 120 WRT_REG_WORD(&reg->pcr, 0x2000);
121 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 121 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
122 for (cnt = 0; cnt < sizeof(fw->risc_gp0_reg) / 2; cnt++) 122 for (cnt = 0; cnt < sizeof(fw->risc_gp0_reg) / 2; cnt++)
123 fw->risc_gp0_reg[cnt] = RD_REG_WORD(dmp_reg++); 123 fw->risc_gp0_reg[cnt] = RD_REG_WORD(dmp_reg++);
124 124
125 WRT_REG_WORD(&reg->pcr, 0x2200); 125 WRT_REG_WORD(&reg->pcr, 0x2200);
126 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 126 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
127 for (cnt = 0; cnt < sizeof(fw->risc_gp1_reg) / 2; cnt++) 127 for (cnt = 0; cnt < sizeof(fw->risc_gp1_reg) / 2; cnt++)
128 fw->risc_gp1_reg[cnt] = RD_REG_WORD(dmp_reg++); 128 fw->risc_gp1_reg[cnt] = RD_REG_WORD(dmp_reg++);
129 129
130 WRT_REG_WORD(&reg->pcr, 0x2400); 130 WRT_REG_WORD(&reg->pcr, 0x2400);
131 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 131 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
132 for (cnt = 0; cnt < sizeof(fw->risc_gp2_reg) / 2; cnt++) 132 for (cnt = 0; cnt < sizeof(fw->risc_gp2_reg) / 2; cnt++)
133 fw->risc_gp2_reg[cnt] = RD_REG_WORD(dmp_reg++); 133 fw->risc_gp2_reg[cnt] = RD_REG_WORD(dmp_reg++);
134 134
135 WRT_REG_WORD(&reg->pcr, 0x2600); 135 WRT_REG_WORD(&reg->pcr, 0x2600);
136 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 136 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
137 for (cnt = 0; cnt < sizeof(fw->risc_gp3_reg) / 2; cnt++) 137 for (cnt = 0; cnt < sizeof(fw->risc_gp3_reg) / 2; cnt++)
138 fw->risc_gp3_reg[cnt] = RD_REG_WORD(dmp_reg++); 138 fw->risc_gp3_reg[cnt] = RD_REG_WORD(dmp_reg++);
139 139
140 WRT_REG_WORD(&reg->pcr, 0x2800); 140 WRT_REG_WORD(&reg->pcr, 0x2800);
141 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 141 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
142 for (cnt = 0; cnt < sizeof(fw->risc_gp4_reg) / 2; cnt++) 142 for (cnt = 0; cnt < sizeof(fw->risc_gp4_reg) / 2; cnt++)
143 fw->risc_gp4_reg[cnt] = RD_REG_WORD(dmp_reg++); 143 fw->risc_gp4_reg[cnt] = RD_REG_WORD(dmp_reg++);
144 144
145 WRT_REG_WORD(&reg->pcr, 0x2A00); 145 WRT_REG_WORD(&reg->pcr, 0x2A00);
146 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 146 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
147 for (cnt = 0; cnt < sizeof(fw->risc_gp5_reg) / 2; cnt++) 147 for (cnt = 0; cnt < sizeof(fw->risc_gp5_reg) / 2; cnt++)
148 fw->risc_gp5_reg[cnt] = RD_REG_WORD(dmp_reg++); 148 fw->risc_gp5_reg[cnt] = RD_REG_WORD(dmp_reg++);
149 149
150 WRT_REG_WORD(&reg->pcr, 0x2C00); 150 WRT_REG_WORD(&reg->pcr, 0x2C00);
151 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 151 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
152 for (cnt = 0; cnt < sizeof(fw->risc_gp6_reg) / 2; cnt++) 152 for (cnt = 0; cnt < sizeof(fw->risc_gp6_reg) / 2; cnt++)
153 fw->risc_gp6_reg[cnt] = RD_REG_WORD(dmp_reg++); 153 fw->risc_gp6_reg[cnt] = RD_REG_WORD(dmp_reg++);
154 154
155 WRT_REG_WORD(&reg->pcr, 0x2E00); 155 WRT_REG_WORD(&reg->pcr, 0x2E00);
156 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 156 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
157 for (cnt = 0; cnt < sizeof(fw->risc_gp7_reg) / 2; cnt++) 157 for (cnt = 0; cnt < sizeof(fw->risc_gp7_reg) / 2; cnt++)
158 fw->risc_gp7_reg[cnt] = RD_REG_WORD(dmp_reg++); 158 fw->risc_gp7_reg[cnt] = RD_REG_WORD(dmp_reg++);
159 159
160 WRT_REG_WORD(&reg->ctrl_status, 0x10); 160 WRT_REG_WORD(&reg->ctrl_status, 0x10);
161 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 161 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
162 for (cnt = 0; cnt < sizeof(fw->frame_buf_hdw_reg) / 2; cnt++) 162 for (cnt = 0; cnt < sizeof(fw->frame_buf_hdw_reg) / 2; cnt++)
163 fw->frame_buf_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++); 163 fw->frame_buf_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++);
164 164
165 WRT_REG_WORD(&reg->ctrl_status, 0x20); 165 WRT_REG_WORD(&reg->ctrl_status, 0x20);
166 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 166 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
167 for (cnt = 0; cnt < sizeof(fw->fpm_b0_reg) / 2; cnt++) 167 for (cnt = 0; cnt < sizeof(fw->fpm_b0_reg) / 2; cnt++)
168 fw->fpm_b0_reg[cnt] = RD_REG_WORD(dmp_reg++); 168 fw->fpm_b0_reg[cnt] = RD_REG_WORD(dmp_reg++);
169 169
170 WRT_REG_WORD(&reg->ctrl_status, 0x30); 170 WRT_REG_WORD(&reg->ctrl_status, 0x30);
171 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 171 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
172 for (cnt = 0; cnt < sizeof(fw->fpm_b1_reg) / 2; cnt++) 172 for (cnt = 0; cnt < sizeof(fw->fpm_b1_reg) / 2; cnt++)
173 fw->fpm_b1_reg[cnt] = RD_REG_WORD(dmp_reg++); 173 fw->fpm_b1_reg[cnt] = RD_REG_WORD(dmp_reg++);
174 174
175 /* Reset RISC. */ 175 /* Reset RISC. */
@@ -622,7 +622,7 @@ qla2100_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
622 fw->hccr = RD_REG_WORD(&reg->hccr); 622 fw->hccr = RD_REG_WORD(&reg->hccr);
623 623
624 /* Pause RISC. */ 624 /* Pause RISC. */
625 WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC); 625 WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC);
626 for (cnt = 30000; (RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) == 0 && 626 for (cnt = 30000; (RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) == 0 &&
627 rval == QLA_SUCCESS; cnt--) { 627 rval == QLA_SUCCESS; cnt--) {
628 if (cnt) 628 if (cnt)
@@ -632,7 +632,7 @@ qla2100_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
632 } 632 }
633 if (rval == QLA_SUCCESS) { 633 if (rval == QLA_SUCCESS) {
634 dmp_reg = (uint16_t __iomem *)(reg + 0); 634 dmp_reg = (uint16_t __iomem *)(reg + 0);
635 for (cnt = 0; cnt < sizeof(fw->pbiu_reg) / 2; cnt++) 635 for (cnt = 0; cnt < sizeof(fw->pbiu_reg) / 2; cnt++)
636 fw->pbiu_reg[cnt] = RD_REG_WORD(dmp_reg++); 636 fw->pbiu_reg[cnt] = RD_REG_WORD(dmp_reg++);
637 637
638 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x10); 638 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x10);
@@ -644,67 +644,67 @@ qla2100_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
644 } 644 }
645 645
646 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x20); 646 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x20);
647 for (cnt = 0; cnt < sizeof(fw->dma_reg) / 2; cnt++) 647 for (cnt = 0; cnt < sizeof(fw->dma_reg) / 2; cnt++)
648 fw->dma_reg[cnt] = RD_REG_WORD(dmp_reg++); 648 fw->dma_reg[cnt] = RD_REG_WORD(dmp_reg++);
649 649
650 WRT_REG_WORD(&reg->ctrl_status, 0x00); 650 WRT_REG_WORD(&reg->ctrl_status, 0x00);
651 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0xA0); 651 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0xA0);
652 for (cnt = 0; cnt < sizeof(fw->risc_hdw_reg) / 2; cnt++) 652 for (cnt = 0; cnt < sizeof(fw->risc_hdw_reg) / 2; cnt++)
653 fw->risc_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++); 653 fw->risc_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++);
654 654
655 WRT_REG_WORD(&reg->pcr, 0x2000); 655 WRT_REG_WORD(&reg->pcr, 0x2000);
656 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 656 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
657 for (cnt = 0; cnt < sizeof(fw->risc_gp0_reg) / 2; cnt++) 657 for (cnt = 0; cnt < sizeof(fw->risc_gp0_reg) / 2; cnt++)
658 fw->risc_gp0_reg[cnt] = RD_REG_WORD(dmp_reg++); 658 fw->risc_gp0_reg[cnt] = RD_REG_WORD(dmp_reg++);
659 659
660 WRT_REG_WORD(&reg->pcr, 0x2100); 660 WRT_REG_WORD(&reg->pcr, 0x2100);
661 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 661 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
662 for (cnt = 0; cnt < sizeof(fw->risc_gp1_reg) / 2; cnt++) 662 for (cnt = 0; cnt < sizeof(fw->risc_gp1_reg) / 2; cnt++)
663 fw->risc_gp1_reg[cnt] = RD_REG_WORD(dmp_reg++); 663 fw->risc_gp1_reg[cnt] = RD_REG_WORD(dmp_reg++);
664 664
665 WRT_REG_WORD(&reg->pcr, 0x2200); 665 WRT_REG_WORD(&reg->pcr, 0x2200);
666 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 666 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
667 for (cnt = 0; cnt < sizeof(fw->risc_gp2_reg) / 2; cnt++) 667 for (cnt = 0; cnt < sizeof(fw->risc_gp2_reg) / 2; cnt++)
668 fw->risc_gp2_reg[cnt] = RD_REG_WORD(dmp_reg++); 668 fw->risc_gp2_reg[cnt] = RD_REG_WORD(dmp_reg++);
669 669
670 WRT_REG_WORD(&reg->pcr, 0x2300); 670 WRT_REG_WORD(&reg->pcr, 0x2300);
671 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 671 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
672 for (cnt = 0; cnt < sizeof(fw->risc_gp3_reg) / 2; cnt++) 672 for (cnt = 0; cnt < sizeof(fw->risc_gp3_reg) / 2; cnt++)
673 fw->risc_gp3_reg[cnt] = RD_REG_WORD(dmp_reg++); 673 fw->risc_gp3_reg[cnt] = RD_REG_WORD(dmp_reg++);
674 674
675 WRT_REG_WORD(&reg->pcr, 0x2400); 675 WRT_REG_WORD(&reg->pcr, 0x2400);
676 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 676 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
677 for (cnt = 0; cnt < sizeof(fw->risc_gp4_reg) / 2; cnt++) 677 for (cnt = 0; cnt < sizeof(fw->risc_gp4_reg) / 2; cnt++)
678 fw->risc_gp4_reg[cnt] = RD_REG_WORD(dmp_reg++); 678 fw->risc_gp4_reg[cnt] = RD_REG_WORD(dmp_reg++);
679 679
680 WRT_REG_WORD(&reg->pcr, 0x2500); 680 WRT_REG_WORD(&reg->pcr, 0x2500);
681 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 681 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
682 for (cnt = 0; cnt < sizeof(fw->risc_gp5_reg) / 2; cnt++) 682 for (cnt = 0; cnt < sizeof(fw->risc_gp5_reg) / 2; cnt++)
683 fw->risc_gp5_reg[cnt] = RD_REG_WORD(dmp_reg++); 683 fw->risc_gp5_reg[cnt] = RD_REG_WORD(dmp_reg++);
684 684
685 WRT_REG_WORD(&reg->pcr, 0x2600); 685 WRT_REG_WORD(&reg->pcr, 0x2600);
686 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 686 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
687 for (cnt = 0; cnt < sizeof(fw->risc_gp6_reg) / 2; cnt++) 687 for (cnt = 0; cnt < sizeof(fw->risc_gp6_reg) / 2; cnt++)
688 fw->risc_gp6_reg[cnt] = RD_REG_WORD(dmp_reg++); 688 fw->risc_gp6_reg[cnt] = RD_REG_WORD(dmp_reg++);
689 689
690 WRT_REG_WORD(&reg->pcr, 0x2700); 690 WRT_REG_WORD(&reg->pcr, 0x2700);
691 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 691 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
692 for (cnt = 0; cnt < sizeof(fw->risc_gp7_reg) / 2; cnt++) 692 for (cnt = 0; cnt < sizeof(fw->risc_gp7_reg) / 2; cnt++)
693 fw->risc_gp7_reg[cnt] = RD_REG_WORD(dmp_reg++); 693 fw->risc_gp7_reg[cnt] = RD_REG_WORD(dmp_reg++);
694 694
695 WRT_REG_WORD(&reg->ctrl_status, 0x10); 695 WRT_REG_WORD(&reg->ctrl_status, 0x10);
696 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 696 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
697 for (cnt = 0; cnt < sizeof(fw->frame_buf_hdw_reg) / 2; cnt++) 697 for (cnt = 0; cnt < sizeof(fw->frame_buf_hdw_reg) / 2; cnt++)
698 fw->frame_buf_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++); 698 fw->frame_buf_hdw_reg[cnt] = RD_REG_WORD(dmp_reg++);
699 699
700 WRT_REG_WORD(&reg->ctrl_status, 0x20); 700 WRT_REG_WORD(&reg->ctrl_status, 0x20);
701 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 701 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
702 for (cnt = 0; cnt < sizeof(fw->fpm_b0_reg) / 2; cnt++) 702 for (cnt = 0; cnt < sizeof(fw->fpm_b0_reg) / 2; cnt++)
703 fw->fpm_b0_reg[cnt] = RD_REG_WORD(dmp_reg++); 703 fw->fpm_b0_reg[cnt] = RD_REG_WORD(dmp_reg++);
704 704
705 WRT_REG_WORD(&reg->ctrl_status, 0x30); 705 WRT_REG_WORD(&reg->ctrl_status, 0x30);
706 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80); 706 dmp_reg = (uint16_t __iomem *)((uint8_t __iomem *)reg + 0x80);
707 for (cnt = 0; cnt < sizeof(fw->fpm_b1_reg) / 2; cnt++) 707 for (cnt = 0; cnt < sizeof(fw->fpm_b1_reg) / 2; cnt++)
708 fw->fpm_b1_reg[cnt] = RD_REG_WORD(dmp_reg++); 708 fw->fpm_b1_reg[cnt] = RD_REG_WORD(dmp_reg++);
709 709
710 /* Reset the ISP. */ 710 /* Reset the ISP. */
@@ -723,7 +723,7 @@ qla2100_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
723 if (rval == QLA_SUCCESS && (IS_QLA2200(ha) || (IS_QLA2100(ha) && 723 if (rval == QLA_SUCCESS && (IS_QLA2200(ha) || (IS_QLA2100(ha) &&
724 (RD_REG_WORD(&reg->mctr) & (BIT_1 | BIT_0)) != 0))) { 724 (RD_REG_WORD(&reg->mctr) & (BIT_1 | BIT_0)) != 0))) {
725 725
726 WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC); 726 WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC);
727 for (cnt = 30000; 727 for (cnt = 30000;
728 (RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) == 0 && 728 (RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) == 0 &&
729 rval == QLA_SUCCESS; cnt--) { 729 rval == QLA_SUCCESS; cnt--) {
@@ -964,7 +964,7 @@ qla_uprintf(char **uiter, char *fmt, ...)
964 int iter, len; 964 int iter, len;
965 char buf[128]; 965 char buf[128];
966 va_list args; 966 va_list args;
967 967
968 va_start(args, fmt); 968 va_start(args, fmt);
969 len = vsprintf(buf, fmt, args); 969 len = vsprintf(buf, fmt, args);
970 va_end(args); 970 va_end(args);
@@ -1913,8 +1913,8 @@ qla24xx_ascii_fw_dump(scsi_qla_host_t *ha)
1913/* Driver Debug Functions. */ 1913/* Driver Debug Functions. */
1914/****************************************************************************/ 1914/****************************************************************************/
1915 1915
1916void 1916void
1917qla2x00_dump_regs(scsi_qla_host_t *ha) 1917qla2x00_dump_regs(scsi_qla_host_t *ha)
1918{ 1918{
1919 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 1919 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
1920 1920
@@ -1935,7 +1935,7 @@ qla2x00_dump_regs(scsi_qla_host_t *ha)
1935 1935
1936 1936
1937void 1937void
1938qla2x00_dump_buffer(uint8_t * b, uint32_t size) 1938qla2x00_dump_buffer(uint8_t * b, uint32_t size)
1939{ 1939{
1940 uint32_t cnt; 1940 uint32_t cnt;
1941 uint8_t c; 1941 uint8_t c;
@@ -1961,11 +1961,11 @@ qla2x00_dump_buffer(uint8_t * b, uint32_t size)
1961/************************************************************************** 1961/**************************************************************************
1962 * qla2x00_print_scsi_cmd 1962 * qla2x00_print_scsi_cmd
1963 * Dumps out info about the scsi cmd and srb. 1963 * Dumps out info about the scsi cmd and srb.
1964 * Input 1964 * Input
1965 * cmd : struct scsi_cmnd 1965 * cmd : struct scsi_cmnd
1966 **************************************************************************/ 1966 **************************************************************************/
1967void 1967void
1968qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd) 1968qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd)
1969{ 1969{
1970 int i; 1970 int i;
1971 struct scsi_qla_host *ha; 1971 struct scsi_qla_host *ha;
@@ -1988,7 +1988,7 @@ qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd)
1988 cmd->request_buffer, cmd->request_bufflen); 1988 cmd->request_buffer, cmd->request_bufflen);
1989 printk(" tag=%d, transfersize=0x%x\n", 1989 printk(" tag=%d, transfersize=0x%x\n",
1990 cmd->tag, cmd->transfersize); 1990 cmd->tag, cmd->transfersize);
1991 printk(" serial_number=%lx, SP=%p\n", cmd->serial_number, sp); 1991 printk(" serial_number=%lx, SP=%p\n", cmd->serial_number, sp);
1992 printk(" data direction=%d\n", cmd->sc_data_direction); 1992 printk(" data direction=%d\n", cmd->sc_data_direction);
1993 1993
1994 if (!sp) 1994 if (!sp)
@@ -2025,8 +2025,8 @@ qla2x00_dump_pkt(void *pkt)
2025 * count = number of words. 2025 * count = number of words.
2026 */ 2026 */
2027void 2027void
2028qla2x00_formatted_dump_buffer(char *string, uint8_t * buffer, 2028qla2x00_formatted_dump_buffer(char *string, uint8_t * buffer,
2029 uint8_t wd_size, uint32_t count) 2029 uint8_t wd_size, uint32_t count)
2030{ 2030{
2031 uint32_t cnt; 2031 uint32_t cnt;
2032 uint16_t *buf16; 2032 uint16_t *buf16;
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 7c1618019c42..bd87d5f1ffbb 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -116,7 +116,7 @@
116 116
117#include "qla_settings.h" 117#include "qla_settings.h"
118 118
119/* 119/*
120 * Data bit definitions 120 * Data bit definitions
121 */ 121 */
122#define BIT_0 0x1 122#define BIT_0 0x1
@@ -194,8 +194,8 @@
194#define MAX_TARGETS MAX_FIBRE_DEVICES 194#define MAX_TARGETS MAX_FIBRE_DEVICES
195#define MIN_LUNS 8 195#define MIN_LUNS 8
196#define MAX_LUNS MAX_FIBRE_LUNS 196#define MAX_LUNS MAX_FIBRE_LUNS
197#define MAX_CMDS_PER_LUN 255 197#define MAX_CMDS_PER_LUN 255
198 198
199/* 199/*
200 * Fibre Channel device definitions. 200 * Fibre Channel device definitions.
201 */ 201 */
@@ -243,7 +243,7 @@
243#define RESPONSE_ENTRY_CNT_2300 512 /* Number of response entries.*/ 243#define RESPONSE_ENTRY_CNT_2300 512 /* Number of response entries.*/
244 244
245/* 245/*
246 * SCSI Request Block 246 * SCSI Request Block
247 */ 247 */
248typedef struct srb { 248typedef struct srb {
249 struct list_head list; 249 struct list_head list;
@@ -254,7 +254,7 @@ typedef struct srb {
254 struct scsi_cmnd *cmd; /* Linux SCSI command pkt */ 254 struct scsi_cmnd *cmd; /* Linux SCSI command pkt */
255 255
256 struct timer_list timer; /* Command timer */ 256 struct timer_list timer; /* Command timer */
257 atomic_t ref_count; /* Reference count for this structure */ 257 atomic_t ref_count; /* Reference count for this structure */
258 uint16_t flags; 258 uint16_t flags;
259 259
260 /* Request state */ 260 /* Request state */
@@ -312,7 +312,7 @@ struct device_reg_2xxx {
312 uint16_t flash_data; /* Flash BIOS data */ 312 uint16_t flash_data; /* Flash BIOS data */
313 uint16_t unused_1[1]; /* Gap */ 313 uint16_t unused_1[1]; /* Gap */
314 uint16_t ctrl_status; /* Control/Status */ 314 uint16_t ctrl_status; /* Control/Status */
315#define CSR_FLASH_64K_BANK BIT_3 /* Flash upper 64K bank select */ 315#define CSR_FLASH_64K_BANK BIT_3 /* Flash upper 64K bank select */
316#define CSR_FLASH_ENABLE BIT_1 /* Flash BIOS Read/Write enable */ 316#define CSR_FLASH_ENABLE BIT_1 /* Flash BIOS Read/Write enable */
317#define CSR_ISP_SOFT_RESET BIT_0 /* ISP soft reset */ 317#define CSR_ISP_SOFT_RESET BIT_0 /* ISP soft reset */
318 318
@@ -355,12 +355,12 @@ struct device_reg_2xxx {
355 uint16_t rsp_q_out; /* Out-Pointer */ 355 uint16_t rsp_q_out; /* Out-Pointer */
356 356
357 /* RISC to Host Status */ 357 /* RISC to Host Status */
358 uint32_t host_status; 358 uint32_t host_status;
359#define HSR_RISC_INT BIT_15 /* RISC interrupt */ 359#define HSR_RISC_INT BIT_15 /* RISC interrupt */
360#define HSR_RISC_PAUSED BIT_8 /* RISC Paused */ 360#define HSR_RISC_PAUSED BIT_8 /* RISC Paused */
361 361
362 /* Host to Host Semaphore */ 362 /* Host to Host Semaphore */
363 uint16_t host_semaphore; 363 uint16_t host_semaphore;
364 uint16_t unused_3[17]; /* Gap */ 364 uint16_t unused_3[17]; /* Gap */
365 uint16_t mailbox0; 365 uint16_t mailbox0;
366 uint16_t mailbox1; 366 uint16_t mailbox1;
@@ -1057,7 +1057,7 @@ typedef struct {
1057 * LSB BIT 5 = Rx Sensitivity 1G bit 1 1057 * LSB BIT 5 = Rx Sensitivity 1G bit 1
1058 * LSB BIT 6 = Rx Sensitivity 1G bit 2 1058 * LSB BIT 6 = Rx Sensitivity 1G bit 2
1059 * LSB BIT 7 = Rx Sensitivity 1G bit 3 1059 * LSB BIT 7 = Rx Sensitivity 1G bit 3
1060 * 1060 *
1061 * MSB BIT 0 = Tx Sensitivity 2G bit 0 1061 * MSB BIT 0 = Tx Sensitivity 2G bit 0
1062 * MSB BIT 1 = Tx Sensitivity 2G bit 1 1062 * MSB BIT 1 = Tx Sensitivity 2G bit 1
1063 * MSB BIT 2 = Tx Sensitivity 2G bit 2 1063 * MSB BIT 2 = Tx Sensitivity 2G bit 2
@@ -1075,7 +1075,7 @@ typedef struct {
1075 * LSB BIT 5 = Output Swing 2G bit 0 1075 * LSB BIT 5 = Output Swing 2G bit 0
1076 * LSB BIT 6 = Output Swing 2G bit 1 1076 * LSB BIT 6 = Output Swing 2G bit 1
1077 * LSB BIT 7 = Output Swing 2G bit 2 1077 * LSB BIT 7 = Output Swing 2G bit 2
1078 * 1078 *
1079 * MSB BIT 0 = Output Emphasis 2G bit 0 1079 * MSB BIT 0 = Output Emphasis 2G bit 0
1080 * MSB BIT 1 = Output Emphasis 2G bit 1 1080 * MSB BIT 1 = Output Emphasis 2G bit 1
1081 * MSB BIT 2 = Output Enable 1081 * MSB BIT 2 = Output Enable
@@ -1997,7 +1997,7 @@ struct qla_board_info {
1997struct gid_list_info { 1997struct gid_list_info {
1998 uint8_t al_pa; 1998 uint8_t al_pa;
1999 uint8_t area; 1999 uint8_t area;
2000 uint8_t domain; 2000 uint8_t domain;
2001 uint8_t loop_id_2100; /* ISP2100/ISP2200 -- 4 bytes. */ 2001 uint8_t loop_id_2100; /* ISP2100/ISP2200 -- 4 bytes. */
2002 uint16_t loop_id; /* ISP23XX -- 6 bytes. */ 2002 uint16_t loop_id; /* ISP23XX -- 6 bytes. */
2003 uint16_t reserved_1; /* ISP24XX -- 8 bytes. */ 2003 uint16_t reserved_1; /* ISP24XX -- 8 bytes. */
@@ -2111,7 +2111,7 @@ typedef struct scsi_qla_host {
2111#define ISP_ABORT_RETRY 20 /* ISP aborted. */ 2111#define ISP_ABORT_RETRY 20 /* ISP aborted. */
2112#define FCPORT_RESCAN_NEEDED 21 /* IO descriptor processing needed */ 2112#define FCPORT_RESCAN_NEEDED 21 /* IO descriptor processing needed */
2113#define IODESC_PROCESS_NEEDED 22 /* IO descriptor processing needed */ 2113#define IODESC_PROCESS_NEEDED 22 /* IO descriptor processing needed */
2114#define IOCTL_ERROR_RECOVERY 23 2114#define IOCTL_ERROR_RECOVERY 23
2115#define LOOP_RESET_NEEDED 24 2115#define LOOP_RESET_NEEDED 24
2116#define BEACON_BLINK_NEEDED 25 2116#define BEACON_BLINK_NEEDED 25
2117 2117
@@ -2126,7 +2126,7 @@ typedef struct scsi_qla_host {
2126#define SRB_MIN_REQ 128 2126#define SRB_MIN_REQ 128
2127 mempool_t *srb_mempool; 2127 mempool_t *srb_mempool;
2128 2128
2129 /* This spinlock is used to protect "io transactions", you must 2129 /* This spinlock is used to protect "io transactions", you must
2130 * aquire it before doing any IO to the card, eg with RD_REG*() and 2130 * aquire it before doing any IO to the card, eg with RD_REG*() and
2131 * WRT_REG*() for the duration of your entire commandtransaction. 2131 * WRT_REG*() for the duration of your entire commandtransaction.
2132 * 2132 *
@@ -2153,12 +2153,12 @@ typedef struct scsi_qla_host {
2153 response_t *response_ring_ptr; /* Current address. */ 2153 response_t *response_ring_ptr; /* Current address. */
2154 uint16_t rsp_ring_index; /* Current index. */ 2154 uint16_t rsp_ring_index; /* Current index. */
2155 uint16_t response_q_length; 2155 uint16_t response_q_length;
2156 2156
2157 struct isp_operations isp_ops; 2157 struct isp_operations isp_ops;
2158 2158
2159 /* Outstandings ISP commands. */ 2159 /* Outstandings ISP commands. */
2160 srb_t *outstanding_cmds[MAX_OUTSTANDING_COMMANDS]; 2160 srb_t *outstanding_cmds[MAX_OUTSTANDING_COMMANDS];
2161 uint32_t current_outstanding_cmd; 2161 uint32_t current_outstanding_cmd;
2162 srb_t *status_srb; /* Status continuation entry. */ 2162 srb_t *status_srb; /* Status continuation entry. */
2163 2163
2164 uint16_t revision; 2164 uint16_t revision;
@@ -2187,7 +2187,7 @@ typedef struct scsi_qla_host {
2187#define LOOP_P2P 2 2187#define LOOP_P2P 2
2188#define P2P_LOOP 3 2188#define P2P_LOOP 3
2189 2189
2190 uint8_t marker_needed; 2190 uint8_t marker_needed;
2191 2191
2192 uint8_t interrupts_on; 2192 uint8_t interrupts_on;
2193 2193
@@ -2208,7 +2208,7 @@ typedef struct scsi_qla_host {
2208 uint8_t mbx_count; 2208 uint8_t mbx_count;
2209 uint16_t last_loop_id; 2209 uint16_t last_loop_id;
2210 2210
2211 uint32_t login_retry_count; 2211 uint32_t login_retry_count;
2212 2212
2213 /* Fibre Channel Device List. */ 2213 /* Fibre Channel Device List. */
2214 struct list_head fcports; 2214 struct list_head fcports;
@@ -2253,7 +2253,7 @@ typedef struct scsi_qla_host {
2253 dma_addr_t rlc_rsp_dma; 2253 dma_addr_t rlc_rsp_dma;
2254 rpt_lun_cmd_rsp_t *rlc_rsp; 2254 rpt_lun_cmd_rsp_t *rlc_rsp;
2255 2255
2256 /* Small DMA pool allocations -- maximum 256 bytes in length. */ 2256 /* Small DMA pool allocations -- maximum 256 bytes in length. */
2257#define DMA_POOL_SIZE 256 2257#define DMA_POOL_SIZE 256
2258 struct dma_pool *s_dma_pool; 2258 struct dma_pool *s_dma_pool;
2259 2259
@@ -2281,10 +2281,10 @@ typedef struct scsi_qla_host {
2281 uint32_t mbx_flags; 2281 uint32_t mbx_flags;
2282#define MBX_IN_PROGRESS BIT_0 2282#define MBX_IN_PROGRESS BIT_0
2283#define MBX_BUSY BIT_1 /* Got the Access */ 2283#define MBX_BUSY BIT_1 /* Got the Access */
2284#define MBX_SLEEPING_ON_SEM BIT_2 2284#define MBX_SLEEPING_ON_SEM BIT_2
2285#define MBX_POLLING_FOR_COMP BIT_3 2285#define MBX_POLLING_FOR_COMP BIT_3
2286#define MBX_COMPLETED BIT_4 2286#define MBX_COMPLETED BIT_4
2287#define MBX_TIMEDOUT BIT_5 2287#define MBX_TIMEDOUT BIT_5
2288#define MBX_ACCESS_TIMEDOUT BIT_6 2288#define MBX_ACCESS_TIMEDOUT BIT_6
2289 2289
2290 mbx_cmd_t mc; 2290 mbx_cmd_t mc;
@@ -2345,7 +2345,7 @@ typedef struct scsi_qla_host {
2345 test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \ 2345 test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \
2346 test_bit(LOOP_RESYNC_ACTIVE, &ha->dpc_flags)) || \ 2346 test_bit(LOOP_RESYNC_ACTIVE, &ha->dpc_flags)) || \
2347 atomic_read(&ha->loop_state) == LOOP_DOWN) 2347 atomic_read(&ha->loop_state) == LOOP_DOWN)
2348 2348
2349#define LOOP_RDY(ha) (!LOOP_NOT_READY(ha)) 2349#define LOOP_RDY(ha) (!LOOP_NOT_READY(ha))
2350 2350
2351#define TGT_Q(ha, t) (ha->otgt[t]) 2351#define TGT_Q(ha, t) (ha->otgt[t])
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
index 694d09f3a43b..bebc32eb5869 100644
--- a/drivers/scsi/qla2xxx/qla_fw.h
+++ b/drivers/scsi/qla2xxx/qla_fw.h
@@ -21,8 +21,6 @@
21#ifndef __QLA_FW_H 21#ifndef __QLA_FW_H
22#define __QLA_FW_H 22#define __QLA_FW_H
23 23
24// ISP24xx
25
26#define RISC_SADDRESS 0x100000 24#define RISC_SADDRESS 0x100000
27#define MBS_CHECKSUM_ERROR 0x4010 25#define MBS_CHECKSUM_ERROR 0x4010
28 26
@@ -60,7 +58,6 @@ struct port_database_24xx {
60#define PDS_PORT_UNAVAILABLE 0x07 58#define PDS_PORT_UNAVAILABLE 0x07
61#define PDS_PRLO_PENDING 0x09 59#define PDS_PRLO_PENDING 0x09
62#define PDS_LOGO_PENDING 0x11 60#define PDS_LOGO_PENDING 0x11
63//FIXME
64#define PDS_PRLI2_PENDING 0x12 61#define PDS_PRLI2_PENDING 0x12
65 62
66 uint8_t hard_address[3]; 63 uint8_t hard_address[3];
diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index ec5ecbfbc1f6..bfebfc356975 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -317,7 +317,7 @@ qla2x00_gid_pt(scsi_qla_host_t *ha, sw_info_t *list)
317 * single call. Return a failed status, and let GA_NXT handle 317 * single call. Return a failed status, and let GA_NXT handle
318 * the overload. 318 * the overload.
319 */ 319 */
320 if (i == MAX_FIBRE_DEVICES) 320 if (i == MAX_FIBRE_DEVICES)
321 rval = QLA_FUNCTION_FAILED; 321 rval = QLA_FUNCTION_FAILED;
322 } 322 }
323 323
@@ -658,7 +658,7 @@ qla2x00_rsnn_nn(scsi_qla_host_t *ha)
658 658
659 /* Prepare CT arguments -- node_name, symbolic node_name, size */ 659 /* Prepare CT arguments -- node_name, symbolic node_name, size */
660 memcpy(ct_req->req.rsnn_nn.node_name, ha->node_name, WWN_SIZE); 660 memcpy(ct_req->req.rsnn_nn.node_name, ha->node_name, WWN_SIZE);
661 661
662 /* Prepare the Symbolic Node Name */ 662 /* Prepare the Symbolic Node Name */
663 /* Board type */ 663 /* Board type */
664 snn = ct_req->req.rsnn_nn.sym_node_name; 664 snn = ct_req->req.rsnn_nn.sym_node_name;
@@ -863,7 +863,7 @@ qla2x00_sns_gid_pt(scsi_qla_host_t *ha, sw_info_t *list)
863 * single call. Return a failed status, and let GA_NXT handle 863 * single call. Return a failed status, and let GA_NXT handle
864 * the overload. 864 * the overload.
865 */ 865 */
866 if (i == MAX_FIBRE_DEVICES) 866 if (i == MAX_FIBRE_DEVICES)
867 rval = QLA_FUNCTION_FAILED; 867 rval = QLA_FUNCTION_FAILED;
868 } 868 }
869 869
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 786f2648114d..d2a367882e8b 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -123,10 +123,10 @@ qla2x00_initialize_adapter(scsi_qla_host_t *ha)
123 (rval = qla2x00_init_rings(ha)) == QLA_SUCCESS) { 123 (rval = qla2x00_init_rings(ha)) == QLA_SUCCESS) {
124check_fw_ready_again: 124check_fw_ready_again:
125 /* 125 /*
126 * Wait for a successful LIP up to a maximum 126 * Wait for a successful LIP up to a maximum
127 * of (in seconds): RISC login timeout value, 127 * of (in seconds): RISC login timeout value,
128 * RISC retry count value, and port down retry 128 * RISC retry count value, and port down retry
129 * value OR a minimum of 4 seconds OR If no 129 * value OR a minimum of 4 seconds OR If no
130 * cable, only 5 seconds. 130 * cable, only 5 seconds.
131 */ 131 */
132 rval = qla2x00_fw_ready(ha); 132 rval = qla2x00_fw_ready(ha);
@@ -389,7 +389,7 @@ qla2x00_isp_firmware(scsi_qla_host_t *ha)
389 int rval; 389 int rval;
390 390
391 /* Assume loading risc code */ 391 /* Assume loading risc code */
392 rval = QLA_FUNCTION_FAILED; 392 rval = QLA_FUNCTION_FAILED;
393 393
394 if (ha->flags.disable_risc_code_load) { 394 if (ha->flags.disable_risc_code_load) {
395 DEBUG2(printk("scsi(%ld): RISC CODE NOT loaded\n", 395 DEBUG2(printk("scsi(%ld): RISC CODE NOT loaded\n",
@@ -417,7 +417,7 @@ qla2x00_isp_firmware(scsi_qla_host_t *ha)
417 * Returns 0 on success. 417 * Returns 0 on success.
418 */ 418 */
419void 419void
420qla2x00_reset_chip(scsi_qla_host_t *ha) 420qla2x00_reset_chip(scsi_qla_host_t *ha)
421{ 421{
422 unsigned long flags = 0; 422 unsigned long flags = 0;
423 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 423 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
@@ -673,7 +673,7 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
673 for (cnt = 6000000; cnt && (data == MBS_BUSY); cnt--) { 673 for (cnt = 6000000; cnt && (data == MBS_BUSY); cnt--) {
674 udelay(5); 674 udelay(5);
675 data = RD_MAILBOX_REG(ha, reg, 0); 675 data = RD_MAILBOX_REG(ha, reg, 0);
676 barrier(); 676 barrier();
677 } 677 }
678 } else 678 } else
679 udelay(10); 679 udelay(10);
@@ -988,7 +988,7 @@ qla2x00_update_fw_options(scsi_qla_host_t *ha)
988 emphasis = (ha->fw_seriallink_options[2] & 988 emphasis = (ha->fw_seriallink_options[2] &
989 (BIT_4 | BIT_3)) >> 3; 989 (BIT_4 | BIT_3)) >> 3;
990 tx_sens = ha->fw_seriallink_options[0] & 990 tx_sens = ha->fw_seriallink_options[0] &
991 (BIT_3 | BIT_2 | BIT_1 | BIT_0); 991 (BIT_3 | BIT_2 | BIT_1 | BIT_0);
992 rx_sens = (ha->fw_seriallink_options[0] & 992 rx_sens = (ha->fw_seriallink_options[0] &
993 (BIT_7 | BIT_6 | BIT_5 | BIT_4)) >> 4; 993 (BIT_7 | BIT_6 | BIT_5 | BIT_4)) >> 4;
994 ha->fw_options[10] = (emphasis << 14) | (swing << 8); 994 ha->fw_options[10] = (emphasis << 14) | (swing << 8);
@@ -1006,7 +1006,7 @@ qla2x00_update_fw_options(scsi_qla_host_t *ha)
1006 (BIT_7 | BIT_6 | BIT_5)) >> 5; 1006 (BIT_7 | BIT_6 | BIT_5)) >> 5;
1007 emphasis = ha->fw_seriallink_options[3] & (BIT_1 | BIT_0); 1007 emphasis = ha->fw_seriallink_options[3] & (BIT_1 | BIT_0);
1008 tx_sens = ha->fw_seriallink_options[1] & 1008 tx_sens = ha->fw_seriallink_options[1] &
1009 (BIT_3 | BIT_2 | BIT_1 | BIT_0); 1009 (BIT_3 | BIT_2 | BIT_1 | BIT_0);
1010 rx_sens = (ha->fw_seriallink_options[1] & 1010 rx_sens = (ha->fw_seriallink_options[1] &
1011 (BIT_7 | BIT_6 | BIT_5 | BIT_4)) >> 4; 1011 (BIT_7 | BIT_6 | BIT_5 | BIT_4)) >> 4;
1012 ha->fw_options[11] = (emphasis << 14) | (swing << 8); 1012 ha->fw_options[11] = (emphasis << 14) | (swing << 8);
@@ -1171,7 +1171,7 @@ qla2x00_fw_ready(scsi_qla_host_t *ha)
1171 rval = QLA_SUCCESS; 1171 rval = QLA_SUCCESS;
1172 1172
1173 /* 20 seconds for loop down. */ 1173 /* 20 seconds for loop down. */
1174 min_wait = 20; 1174 min_wait = 20;
1175 1175
1176 /* 1176 /*
1177 * Firmware should take at most one RATOV to login, plus 5 seconds for 1177 * Firmware should take at most one RATOV to login, plus 5 seconds for
@@ -1217,8 +1217,8 @@ qla2x00_fw_ready(scsi_qla_host_t *ha)
1217 (fw_state >= FSTATE_LOSS_OF_SYNC || 1217 (fw_state >= FSTATE_LOSS_OF_SYNC ||
1218 fw_state == FSTATE_WAIT_AL_PA)) { 1218 fw_state == FSTATE_WAIT_AL_PA)) {
1219 /* Loop down. Timeout on min_wait for states 1219 /* Loop down. Timeout on min_wait for states
1220 * other than Wait for Login. 1220 * other than Wait for Login.
1221 */ 1221 */
1222 if (time_after_eq(jiffies, mtime)) { 1222 if (time_after_eq(jiffies, mtime)) {
1223 qla_printk(KERN_INFO, ha, 1223 qla_printk(KERN_INFO, ha,
1224 "Cable is unplugged...\n"); 1224 "Cable is unplugged...\n");
@@ -1620,7 +1620,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
1620 * 1620 *
1621 * The driver waits for the link to come up after link down 1621 * The driver waits for the link to come up after link down
1622 * before returning I/Os to OS with "DID_NO_CONNECT". 1622 * before returning I/Os to OS with "DID_NO_CONNECT".
1623 */ 1623 */
1624 if (nv->link_down_timeout == 0) { 1624 if (nv->link_down_timeout == 0) {
1625 ha->loop_down_abort_time = 1625 ha->loop_down_abort_time =
1626 (LOOP_DOWN_TIME - LOOP_DOWN_TIMEOUT); 1626 (LOOP_DOWN_TIME - LOOP_DOWN_TIMEOUT);
@@ -1628,7 +1628,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
1628 ha->link_down_timeout = nv->link_down_timeout; 1628 ha->link_down_timeout = nv->link_down_timeout;
1629 ha->loop_down_abort_time = 1629 ha->loop_down_abort_time =
1630 (LOOP_DOWN_TIME - ha->link_down_timeout); 1630 (LOOP_DOWN_TIME - ha->link_down_timeout);
1631 } 1631 }
1632 1632
1633 /* 1633 /*
1634 * Need enough time to try and get the port back. 1634 * Need enough time to try and get the port back.
@@ -1730,7 +1730,7 @@ qla2x00_alloc_fcport(scsi_qla_host_t *ha, int flags)
1730 * 2 = database was full and device was not configured. 1730 * 2 = database was full and device was not configured.
1731 */ 1731 */
1732static int 1732static int
1733qla2x00_configure_loop(scsi_qla_host_t *ha) 1733qla2x00_configure_loop(scsi_qla_host_t *ha)
1734{ 1734{
1735 int rval; 1735 int rval;
1736 unsigned long flags, save_flags; 1736 unsigned long flags, save_flags;
@@ -1838,7 +1838,7 @@ qla2x00_configure_loop(scsi_qla_host_t *ha)
1838 * 0 = success. 1838 * 0 = success.
1839 */ 1839 */
1840static int 1840static int
1841qla2x00_configure_local_loop(scsi_qla_host_t *ha) 1841qla2x00_configure_local_loop(scsi_qla_host_t *ha)
1842{ 1842{
1843 int rval, rval2; 1843 int rval, rval2;
1844 int found_devs; 1844 int found_devs;
@@ -1993,16 +1993,16 @@ cleanup_allocation:
1993} 1993}
1994 1994
1995static void 1995static void
1996qla2x00_probe_for_all_luns(scsi_qla_host_t *ha) 1996qla2x00_probe_for_all_luns(scsi_qla_host_t *ha)
1997{ 1997{
1998 fc_port_t *fcport; 1998 fc_port_t *fcport;
1999 1999
2000 qla2x00_mark_all_devices_lost(ha); 2000 qla2x00_mark_all_devices_lost(ha);
2001 list_for_each_entry(fcport, &ha->fcports, list) { 2001 list_for_each_entry(fcport, &ha->fcports, list) {
2002 if (fcport->port_type != FCT_TARGET) 2002 if (fcport->port_type != FCT_TARGET)
2003 continue; 2003 continue;
2004 2004
2005 qla2x00_update_fcport(ha, fcport); 2005 qla2x00_update_fcport(ha, fcport);
2006 } 2006 }
2007} 2007}
2008 2008
@@ -2573,7 +2573,7 @@ qla2x00_find_new_loop_id(scsi_qla_host_t *ha, fc_port_t *dev)
2573 * Kernel context. 2573 * Kernel context.
2574 */ 2574 */
2575static int 2575static int
2576qla2x00_device_resync(scsi_qla_host_t *ha) 2576qla2x00_device_resync(scsi_qla_host_t *ha)
2577{ 2577{
2578 int rval; 2578 int rval;
2579 int rval2; 2579 int rval2;
@@ -2837,8 +2837,8 @@ qla2x00_fabric_login(scsi_qla_host_t *ha, fc_port_t *fcport,
2837 * unrecoverable / not handled error 2837 * unrecoverable / not handled error
2838 */ 2838 */
2839 DEBUG2(printk("%s(%ld): failed=%x port_id=%02x%02x%02x " 2839 DEBUG2(printk("%s(%ld): failed=%x port_id=%02x%02x%02x "
2840 "loop_id=%x jiffies=%lx.\n", 2840 "loop_id=%x jiffies=%lx.\n",
2841 __func__, ha->host_no, mb[0], 2841 __func__, ha->host_no, mb[0],
2842 fcport->d_id.b.domain, fcport->d_id.b.area, 2842 fcport->d_id.b.domain, fcport->d_id.b.area,
2843 fcport->d_id.b.al_pa, fcport->loop_id, jiffies)); 2843 fcport->d_id.b.al_pa, fcport->loop_id, jiffies));
2844 2844
@@ -2901,7 +2901,7 @@ qla2x00_local_device_login(scsi_qla_host_t *ha, uint16_t loop_id)
2901 * 0 = success 2901 * 0 = success
2902 */ 2902 */
2903int 2903int
2904qla2x00_loop_resync(scsi_qla_host_t *ha) 2904qla2x00_loop_resync(scsi_qla_host_t *ha)
2905{ 2905{
2906 int rval; 2906 int rval;
2907 uint32_t wait_time; 2907 uint32_t wait_time;
@@ -2960,7 +2960,7 @@ qla2x00_rescan_fcports(scsi_qla_host_t *ha)
2960 2960
2961 rescan_done = 1; 2961 rescan_done = 1;
2962 } 2962 }
2963 qla2x00_probe_for_all_luns(ha); 2963 qla2x00_probe_for_all_luns(ha);
2964} 2964}
2965 2965
2966/* 2966/*
@@ -3030,7 +3030,7 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
3030 3030
3031 ha->isp_ops.enable_intrs(ha); 3031 ha->isp_ops.enable_intrs(ha);
3032 3032
3033 ha->isp_abort_cnt = 0; 3033 ha->isp_abort_cnt = 0;
3034 clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags); 3034 clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
3035 } else { /* failed the ISP abort */ 3035 } else { /* failed the ISP abort */
3036 ha->flags.online = 1; 3036 ha->flags.online = 1;
@@ -3039,7 +3039,7 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
3039 qla_printk(KERN_WARNING, ha, 3039 qla_printk(KERN_WARNING, ha,
3040 "ISP error recovery failed - " 3040 "ISP error recovery failed - "
3041 "board disabled\n"); 3041 "board disabled\n");
3042 /* 3042 /*
3043 * The next call disables the board 3043 * The next call disables the board
3044 * completely. 3044 * completely.
3045 */ 3045 */
@@ -3064,7 +3064,7 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
3064 status = 1; 3064 status = 1;
3065 } 3065 }
3066 } 3066 }
3067 3067
3068 } 3068 }
3069 3069
3070 if (status) { 3070 if (status) {
@@ -3119,11 +3119,11 @@ qla2x00_restart_isp(scsi_qla_host_t *ha)
3119 } 3119 }
3120 3120
3121 spin_unlock_irqrestore(&ha->hardware_lock, flags); 3121 spin_unlock_irqrestore(&ha->hardware_lock, flags);
3122 3122
3123 status = qla2x00_setup_chip(ha); 3123 status = qla2x00_setup_chip(ha);
3124 3124
3125 spin_lock_irqsave(&ha->hardware_lock, flags); 3125 spin_lock_irqsave(&ha->hardware_lock, flags);
3126 3126
3127 if (!IS_QLA24XX(ha) && !IS_QLA25XX(ha)) { 3127 if (!IS_QLA24XX(ha) && !IS_QLA25XX(ha)) {
3128 /* Enable proper parity */ 3128 /* Enable proper parity */
3129 if (IS_QLA2300(ha)) 3129 if (IS_QLA2300(ha))
@@ -3168,7 +3168,7 @@ qla2x00_restart_isp(scsi_qla_host_t *ha)
3168 } 3168 }
3169 3169
3170 /* if no cable then assume it's good */ 3170 /* if no cable then assume it's good */
3171 if ((ha->device_flags & DFLG_NO_CABLE)) 3171 if ((ha->device_flags & DFLG_NO_CABLE))
3172 status = 0; 3172 status = 0;
3173 3173
3174 DEBUG(printk("%s(): Configure loop done, status = 0x%x\n", 3174 DEBUG(printk("%s(): Configure loop done, status = 0x%x\n",
diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h
index a4357f0aeea3..98f60bde2d4f 100644
--- a/drivers/scsi/qla2xxx/qla_inline.h
+++ b/drivers/scsi/qla2xxx/qla_inline.h
@@ -30,7 +30,7 @@ static __inline__ uint16_t qla2x00_debounce_register(volatile uint16_t __iomem *
30 * register value. 30 * register value.
31 */ 31 */
32static __inline__ uint16_t 32static __inline__ uint16_t
33qla2x00_debounce_register(volatile uint16_t __iomem *addr) 33qla2x00_debounce_register(volatile uint16_t __iomem *addr)
34{ 34{
35 volatile uint16_t first; 35 volatile uint16_t first;
36 volatile uint16_t second; 36 volatile uint16_t second;
@@ -78,7 +78,7 @@ static __inline__ int qla2x00_normalize_dma_addr(
78 * ffffabc1ffffeeee (0x100000000 + e_addr) 78 * ffffabc1ffffeeee (0x100000000 + e_addr)
79 * ffffabc100000000 (0x100000000 + e_addr) & ~(0xffffffff) 79 * ffffabc100000000 (0x100000000 + e_addr) & ~(0xffffffff)
80 * ffffabc100000000 (ne_addr) 80 * ffffabc100000000 (ne_addr)
81 * 81 *
82 * Compute length of second DMA segment: 82 * Compute length of second DMA segment:
83 * 83 *
84 * 00000000ffffeeee (e_addr & 0xffffffff) 84 * 00000000ffffeeee (e_addr & 0xffffffff)
@@ -114,48 +114,18 @@ qla2x00_normalize_dma_addr(
114} 114}
115 115
116static __inline__ void qla2x00_poll(scsi_qla_host_t *); 116static __inline__ void qla2x00_poll(scsi_qla_host_t *);
117static inline void 117static inline void
118qla2x00_poll(scsi_qla_host_t *ha) 118qla2x00_poll(scsi_qla_host_t *ha)
119{ 119{
120 ha->isp_ops.intr_handler(0, ha, NULL); 120 ha->isp_ops.intr_handler(0, ha, NULL);
121} 121}
122 122
123static __inline__ int qla2x00_is_wwn_zero(uint8_t *);
124
125/*
126 * qla2x00_is_wwn_zero - Check for zero node name
127 *
128 * Input:
129 * wwn = Pointer to WW name to check
130 *
131 * Returns:
132 * 1 if name is 0x00 else 0
133 *
134 * Context:
135 * Kernel context.
136 */
137static __inline__ int
138qla2x00_is_wwn_zero(uint8_t *wwn)
139{
140 int cnt;
141
142 for (cnt = 0; cnt < WWN_SIZE ; cnt++, wwn++) {
143 if (*wwn != 0)
144 break;
145 }
146 /* if zero return 1 */
147 if (cnt == WWN_SIZE)
148 return (1);
149 else
150 return (0);
151}
152
153static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *); 123static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *);
154/* 124/*
155 * This routine will wait for fabric devices for 125 * This routine will wait for fabric devices for
156 * the reset delay. 126 * the reset delay.
157 */ 127 */
158static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *ha) 128static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *ha)
159{ 129{
160 uint16_t fw_state; 130 uint16_t fw_state;
161 131
@@ -188,54 +158,6 @@ qla2x00_issue_marker(scsi_qla_host_t *ha, int ha_locked)
188 return (QLA_SUCCESS); 158 return (QLA_SUCCESS);
189} 159}
190 160
191static __inline__ void qla2x00_add_timer_to_cmd(srb_t *, int);
192static __inline__ void qla2x00_delete_timer_from_cmd(srb_t *);
193
194/**************************************************************************
195* qla2x00_add_timer_to_cmd
196*
197* Description:
198* Creates a timer for the specified command. The timeout is usually
199* the command time from kernel minus 2 secs.
200*
201* Input:
202* sp - pointer to validate
203*
204* Returns:
205* None.
206**************************************************************************/
207static inline void
208qla2x00_add_timer_to_cmd(srb_t *sp, int timeout)
209{
210 init_timer(&sp->timer);
211 sp->timer.expires = jiffies + timeout * HZ;
212 sp->timer.data = (unsigned long) sp;
213 sp->timer.function = (void (*) (unsigned long))qla2x00_cmd_timeout;
214 add_timer(&sp->timer);
215}
216
217/**************************************************************************
218* qla2x00_delete_timer_from_cmd
219*
220* Description:
221* Delete the timer for the specified command.
222*
223* Input:
224* sp - pointer to validate
225*
226* Returns:
227* None.
228**************************************************************************/
229static inline void
230qla2x00_delete_timer_from_cmd(srb_t *sp)
231{
232 if (sp->timer.function != NULL) {
233 del_timer(&sp->timer);
234 sp->timer.function = NULL;
235 sp->timer.data = (unsigned long) NULL;
236 }
237}
238
239static inline uint8_t *host_to_fcp_swap(uint8_t *, uint32_t); 161static inline uint8_t *host_to_fcp_swap(uint8_t *, uint32_t);
240static inline uint8_t * 162static inline uint8_t *
241host_to_fcp_swap(uint8_t *fcp, uint32_t bsize) 163host_to_fcp_swap(uint8_t *fcp, uint32_t bsize)
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 4343c65523a5..c43ca670748a 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -468,7 +468,7 @@ queuing_error:
468 * 468 *
469 * Returns non-zero if a failure occured, else zero. 469 * Returns non-zero if a failure occured, else zero.
470 */ 470 */
471int 471int
472__qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun, 472__qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
473 uint8_t type) 473 uint8_t type)
474{ 474{
@@ -504,7 +504,7 @@ __qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
504 return (QLA_SUCCESS); 504 return (QLA_SUCCESS);
505} 505}
506 506
507int 507int
508qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun, 508qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
509 uint8_t type) 509 uint8_t type)
510{ 510{
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index b960bdfe91e9..f6d94bea37f2 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -240,13 +240,13 @@ qla2x00_mbx_completion(scsi_qla_host_t *ha, uint16_t mb0)
240 wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 1); 240 wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 1);
241 241
242 for (cnt = 1; cnt < ha->mbx_count; cnt++) { 242 for (cnt = 1; cnt < ha->mbx_count; cnt++) {
243 if (IS_QLA2200(ha) && cnt == 8) 243 if (IS_QLA2200(ha) && cnt == 8)
244 wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 8); 244 wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 8);
245 if (cnt == 4 || cnt == 5) 245 if (cnt == 4 || cnt == 5)
246 ha->mailbox_out[cnt] = qla2x00_debounce_register(wptr); 246 ha->mailbox_out[cnt] = qla2x00_debounce_register(wptr);
247 else 247 else
248 ha->mailbox_out[cnt] = RD_REG_WORD(wptr); 248 ha->mailbox_out[cnt] = RD_REG_WORD(wptr);
249 249
250 wptr++; 250 wptr++;
251 } 251 }
252 252
@@ -514,7 +514,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
514 "Configuration change detected: value=%x.\n", mb[1]); 514 "Configuration change detected: value=%x.\n", mb[1]);
515 515
516 if (atomic_read(&ha->loop_state) != LOOP_DOWN) { 516 if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
517 atomic_set(&ha->loop_state, LOOP_DOWN); 517 atomic_set(&ha->loop_state, LOOP_DOWN);
518 if (!atomic_read(&ha->loop_down_timer)) 518 if (!atomic_read(&ha->loop_down_timer))
519 atomic_set(&ha->loop_down_timer, 519 atomic_set(&ha->loop_down_timer,
520 LOOP_DOWN_TIME); 520 LOOP_DOWN_TIME);
@@ -846,7 +846,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
846 qla_printk(KERN_WARNING, ha, "Status Entry invalid handle.\n"); 846 qla_printk(KERN_WARNING, ha, "Status Entry invalid handle.\n");
847 847
848 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 848 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
849 if (ha->dpc_wait && !ha->dpc_active) 849 if (ha->dpc_wait && !ha->dpc_active)
850 up(ha->dpc_wait); 850 up(ha->dpc_wait);
851 851
852 return; 852 return;
@@ -969,7 +969,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
969 } 969 }
970 970
971 /* 971 /*
972 * Check to see if SCSI Status is non zero. If so report SCSI 972 * Check to see if SCSI Status is non zero. If so report SCSI
973 * Status. 973 * Status.
974 */ 974 */
975 if (lscsi_status != 0) { 975 if (lscsi_status != 0) {
@@ -991,7 +991,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
991 sp->request_sense_length = sense_len; 991 sp->request_sense_length = sense_len;
992 sp->request_sense_ptr = cp->sense_buffer; 992 sp->request_sense_ptr = cp->sense_buffer;
993 993
994 if (sp->request_sense_length > 32) 994 if (sp->request_sense_length > 32)
995 sense_len = 32; 995 sense_len = 32;
996 996
997 memcpy(cp->sense_buffer, sense_data, sense_len); 997 memcpy(cp->sense_buffer, sense_data, sense_len);
@@ -1096,7 +1096,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
1096 break; 1096 break;
1097 1097
1098 case CS_ABORTED: 1098 case CS_ABORTED:
1099 /* 1099 /*
1100 * hv2.19.12 - DID_ABORT does not retry the request if we 1100 * hv2.19.12 - DID_ABORT does not retry the request if we
1101 * aborted this request then abort otherwise it must be a 1101 * aborted this request then abort otherwise it must be a
1102 * reset. 1102 * reset.
@@ -1137,7 +1137,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
1137 1137
1138 /* SCSI Mid-Layer handles device queue full */ 1138 /* SCSI Mid-Layer handles device queue full */
1139 1139
1140 cp->result = DID_OK << 16 | lscsi_status; 1140 cp->result = DID_OK << 16 | lscsi_status;
1141 1141
1142 break; 1142 break;
1143 1143
@@ -1178,7 +1178,7 @@ qla2x00_status_cont_entry(scsi_qla_host_t *ha, sts_cont_entry_t *pkt)
1178 "sp=%p sp->state:%d\n", __func__, sp, sp->state)); 1178 "sp=%p sp->state:%d\n", __func__, sp, sp->state));
1179 qla_printk(KERN_INFO, ha, 1179 qla_printk(KERN_INFO, ha,
1180 "cmd is NULL: already returned to OS (sp=%p)\n", 1180 "cmd is NULL: already returned to OS (sp=%p)\n",
1181 sp); 1181 sp);
1182 1182
1183 ha->status_srb = NULL; 1183 ha->status_srb = NULL;
1184 return; 1184 return;
@@ -1223,7 +1223,7 @@ qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt)
1223 else if (pkt->entry_status & RF_INV_E_COUNT) 1223 else if (pkt->entry_status & RF_INV_E_COUNT)
1224 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Count\n", __func__); 1224 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Count\n", __func__);
1225 else if (pkt->entry_status & RF_INV_E_PARAM) 1225 else if (pkt->entry_status & RF_INV_E_PARAM)
1226 qla_printk(KERN_ERR, ha, 1226 qla_printk(KERN_ERR, ha,
1227 "%s: Invalid Entry Parameter\n", __func__); 1227 "%s: Invalid Entry Parameter\n", __func__);
1228 else if (pkt->entry_status & RF_INV_E_TYPE) 1228 else if (pkt->entry_status & RF_INV_E_TYPE)
1229 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Type\n", __func__); 1229 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Type\n", __func__);
@@ -1365,7 +1365,6 @@ qla24xx_process_response_queue(struct scsi_qla_host *ha)
1365 DEBUG3(printk(KERN_INFO 1365 DEBUG3(printk(KERN_INFO
1366 "scsi(%ld): Process error entry.\n", ha->host_no)); 1366 "scsi(%ld): Process error entry.\n", ha->host_no));
1367 1367
1368 //FIXME
1369 qla2x00_error_entry(ha, (sts_entry_t *) pkt); 1368 qla2x00_error_entry(ha, (sts_entry_t *) pkt);
1370 ((response_t *)pkt)->signature = RESPONSE_PROCESSED; 1369 ((response_t *)pkt)->signature = RESPONSE_PROCESSED;
1371 wmb(); 1370 wmb();
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index ab361be003d3..2731457911bf 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -294,7 +294,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
294 "Mailbox command timeout occured. Scheduling ISP " 294 "Mailbox command timeout occured. Scheduling ISP "
295 "abort.\n"); 295 "abort.\n");
296 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 296 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
297 if (ha->dpc_wait && !ha->dpc_active) 297 if (ha->dpc_wait && !ha->dpc_active)
298 up(ha->dpc_wait); 298 up(ha->dpc_wait);
299 299
300 } else if (!abort_active) { 300 } else if (!abort_active) {
@@ -1753,18 +1753,18 @@ qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
1753/* 1753/*
1754 * qla2x00_login_local_device 1754 * qla2x00_login_local_device
1755 * Issue login loop port mailbox command. 1755 * Issue login loop port mailbox command.
1756 * 1756 *
1757 * Input: 1757 * Input:
1758 * ha = adapter block pointer. 1758 * ha = adapter block pointer.
1759 * loop_id = device loop ID. 1759 * loop_id = device loop ID.
1760 * opt = command options. 1760 * opt = command options.
1761 * 1761 *
1762 * Returns: 1762 * Returns:
1763 * Return status code. 1763 * Return status code.
1764 * 1764 *
1765 * Context: 1765 * Context:
1766 * Kernel context. 1766 * Kernel context.
1767 * 1767 *
1768 */ 1768 */
1769int 1769int
1770qla2x00_login_local_device(scsi_qla_host_t *ha, uint16_t loop_id, 1770qla2x00_login_local_device(scsi_qla_host_t *ha, uint16_t loop_id,
@@ -2070,7 +2070,7 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt,
2070 } else { 2070 } else {
2071 DEBUG11(printk("%s(%ld): done. mb1=%x mb2=%x mb3=%x mb6=%x " 2071 DEBUG11(printk("%s(%ld): done. mb1=%x mb2=%x mb3=%x mb6=%x "
2072 "mb7=%x mb10=%x.\n", __func__, ha->host_no, 2072 "mb7=%x mb10=%x.\n", __func__, ha->host_no,
2073 mcp->mb[1], mcp->mb[2], mcp->mb[3], mcp->mb[6], mcp->mb[7], 2073 mcp->mb[1], mcp->mb[2], mcp->mb[3], mcp->mb[6], mcp->mb[7],
2074 mcp->mb[10])); 2074 mcp->mb[10]));
2075 2075
2076 if (cur_xchg_cnt) 2076 if (cur_xchg_cnt)
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 072906994bf5..fd7e730bb3ba 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -64,7 +64,7 @@ MODULE_PARM_DESC(ql2xplogiabsentdevice,
64int ql2xenablezio = 0; 64int ql2xenablezio = 0;
65module_param(ql2xenablezio, int, S_IRUGO|S_IRUSR); 65module_param(ql2xenablezio, int, S_IRUGO|S_IRUSR);
66MODULE_PARM_DESC(ql2xenablezio, 66MODULE_PARM_DESC(ql2xenablezio,
67 "Option to enable ZIO:If 1 then enable it otherwise" 67 "Option to enable ZIO:If 1 then enable it otherwise"
68 " use the default set in the NVRAM." 68 " use the default set in the NVRAM."
69 " Default is 0 : disabled"); 69 " Default is 0 : disabled");
70 70
@@ -89,7 +89,7 @@ static void qla2x00_free_device(scsi_qla_host_t *);
89static void qla2x00_config_dma_addressing(scsi_qla_host_t *ha); 89static void qla2x00_config_dma_addressing(scsi_qla_host_t *ha);
90 90
91/* 91/*
92 * SCSI host template entry points 92 * SCSI host template entry points
93 */ 93 */
94static int qla2xxx_slave_configure(struct scsi_device * device); 94static int qla2xxx_slave_configure(struct scsi_device * device);
95static int qla2xxx_slave_alloc(struct scsi_device *); 95static int qla2xxx_slave_alloc(struct scsi_device *);
@@ -280,7 +280,7 @@ char *
280qla2x00_fw_version_str(struct scsi_qla_host *ha, char *str) 280qla2x00_fw_version_str(struct scsi_qla_host *ha, char *str)
281{ 281{
282 char un_str[10]; 282 char un_str[10];
283 283
284 sprintf(str, "%d.%02d.%02d ", ha->fw_major_version, 284 sprintf(str, "%d.%02d.%02d ", ha->fw_major_version,
285 ha->fw_minor_version, 285 ha->fw_minor_version,
286 ha->fw_subminor_version); 286 ha->fw_subminor_version);
@@ -504,14 +504,14 @@ qla2x00_eh_wait_on_command(scsi_qla_host_t *ha, struct scsi_cmnd *cmd)
504 504
505/* 505/*
506 * qla2x00_wait_for_hba_online 506 * qla2x00_wait_for_hba_online
507 * Wait till the HBA is online after going through 507 * Wait till the HBA is online after going through
508 * <= MAX_RETRIES_OF_ISP_ABORT or 508 * <= MAX_RETRIES_OF_ISP_ABORT or
509 * finally HBA is disabled ie marked offline 509 * finally HBA is disabled ie marked offline
510 * 510 *
511 * Input: 511 * Input:
512 * ha - pointer to host adapter structure 512 * ha - pointer to host adapter structure
513 * 513 *
514 * Note: 514 * Note:
515 * Does context switching-Release SPIN_LOCK 515 * Does context switching-Release SPIN_LOCK
516 * (if any) before calling this routine. 516 * (if any) before calling this routine.
517 * 517 *
@@ -519,13 +519,13 @@ qla2x00_eh_wait_on_command(scsi_qla_host_t *ha, struct scsi_cmnd *cmd)
519 * Success (Adapter is online) : 0 519 * Success (Adapter is online) : 0
520 * Failed (Adapter is offline/disabled) : 1 520 * Failed (Adapter is offline/disabled) : 1
521 */ 521 */
522static int 522static int
523qla2x00_wait_for_hba_online(scsi_qla_host_t *ha) 523qla2x00_wait_for_hba_online(scsi_qla_host_t *ha)
524{ 524{
525 int return_status; 525 int return_status;
526 unsigned long wait_online; 526 unsigned long wait_online;
527 527
528 wait_online = jiffies + (MAX_LOOP_TIMEOUT * HZ); 528 wait_online = jiffies + (MAX_LOOP_TIMEOUT * HZ);
529 while (((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) || 529 while (((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) ||
530 test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) || 530 test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
531 test_bit(ISP_ABORT_RETRY, &ha->dpc_flags) || 531 test_bit(ISP_ABORT_RETRY, &ha->dpc_flags) ||
@@ -533,8 +533,8 @@ qla2x00_wait_for_hba_online(scsi_qla_host_t *ha)
533 533
534 msleep(1000); 534 msleep(1000);
535 } 535 }
536 if (ha->flags.online) 536 if (ha->flags.online)
537 return_status = QLA_SUCCESS; 537 return_status = QLA_SUCCESS;
538 else 538 else
539 return_status = QLA_FUNCTION_FAILED; 539 return_status = QLA_FUNCTION_FAILED;
540 540
@@ -546,27 +546,27 @@ qla2x00_wait_for_hba_online(scsi_qla_host_t *ha)
546/* 546/*
547 * qla2x00_wait_for_loop_ready 547 * qla2x00_wait_for_loop_ready
548 * Wait for MAX_LOOP_TIMEOUT(5 min) value for loop 548 * Wait for MAX_LOOP_TIMEOUT(5 min) value for loop
549 * to be in LOOP_READY state. 549 * to be in LOOP_READY state.
550 * Input: 550 * Input:
551 * ha - pointer to host adapter structure 551 * ha - pointer to host adapter structure
552 * 552 *
553 * Note: 553 * Note:
554 * Does context switching-Release SPIN_LOCK 554 * Does context switching-Release SPIN_LOCK
555 * (if any) before calling this routine. 555 * (if any) before calling this routine.
556 * 556 *
557 * 557 *
558 * Return: 558 * Return:
559 * Success (LOOP_READY) : 0 559 * Success (LOOP_READY) : 0
560 * Failed (LOOP_NOT_READY) : 1 560 * Failed (LOOP_NOT_READY) : 1
561 */ 561 */
562static inline int 562static inline int
563qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha) 563qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha)
564{ 564{
565 int return_status = QLA_SUCCESS; 565 int return_status = QLA_SUCCESS;
566 unsigned long loop_timeout ; 566 unsigned long loop_timeout ;
567 567
568 /* wait for 5 min at the max for loop to be ready */ 568 /* wait for 5 min at the max for loop to be ready */
569 loop_timeout = jiffies + (MAX_LOOP_TIMEOUT * HZ); 569 loop_timeout = jiffies + (MAX_LOOP_TIMEOUT * HZ);
570 570
571 while ((!atomic_read(&ha->loop_down_timer) && 571 while ((!atomic_read(&ha->loop_down_timer) &&
572 atomic_read(&ha->loop_state) == LOOP_DOWN) || 572 atomic_read(&ha->loop_state) == LOOP_DOWN) ||
@@ -577,7 +577,7 @@ qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha)
577 break; 577 break;
578 } 578 }
579 } 579 }
580 return (return_status); 580 return (return_status);
581} 581}
582 582
583/************************************************************************** 583/**************************************************************************
@@ -647,13 +647,13 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
647 /* Wait for the command to be returned. */ 647 /* Wait for the command to be returned. */
648 if (ret == SUCCESS) { 648 if (ret == SUCCESS) {
649 if (qla2x00_eh_wait_on_command(ha, cmd) != QLA_SUCCESS) { 649 if (qla2x00_eh_wait_on_command(ha, cmd) != QLA_SUCCESS) {
650 qla_printk(KERN_ERR, ha, 650 qla_printk(KERN_ERR, ha,
651 "scsi(%ld:%d:%d): Abort handler timed out -- %lx " 651 "scsi(%ld:%d:%d): Abort handler timed out -- %lx "
652 "%x.\n", ha->host_no, id, lun, serial, ret); 652 "%x.\n", ha->host_no, id, lun, serial, ret);
653 } 653 }
654 } 654 }
655 655
656 qla_printk(KERN_INFO, ha, 656 qla_printk(KERN_INFO, ha,
657 "scsi(%ld:%d:%d): Abort command issued -- %lx %x.\n", ha->host_no, 657 "scsi(%ld:%d:%d): Abort command issued -- %lx %x.\n", ha->host_no,
658 id, lun, serial, ret); 658 id, lun, serial, ret);
659 659
@@ -668,7 +668,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
668* 668*
669* Input: 669* Input:
670* ha - pointer to scsi_qla_host structure. 670* ha - pointer to scsi_qla_host structure.
671* t - target 671* t - target
672* Returns: 672* Returns:
673* Either SUCCESS or FAILED. 673* Either SUCCESS or FAILED.
674* 674*
@@ -717,7 +717,7 @@ qla2x00_eh_wait_for_pending_target_commands(scsi_qla_host_t *ha, unsigned int t)
717* executing commands. 717* executing commands.
718* 718*
719* NOTE: The use of SP is undefined within this context. Do *NOT* 719* NOTE: The use of SP is undefined within this context. Do *NOT*
720* attempt to use this value, even if you determine it is 720* attempt to use this value, even if you determine it is
721* non-null. 721* non-null.
722* 722*
723* Input: 723* Input:
@@ -793,7 +793,7 @@ qla2xxx_eh_device_reset(struct scsi_cmnd *cmd)
793 "commands\n", __func__, ha->host_no)); 793 "commands\n", __func__, ha->host_no));
794 qla_printk(KERN_INFO, ha, 794 qla_printk(KERN_INFO, ha,
795 "%s: failed while waiting for commands\n", 795 "%s: failed while waiting for commands\n",
796 __func__); 796 __func__);
797 797
798 goto eh_dev_reset_done; 798 goto eh_dev_reset_done;
799 } 799 }
@@ -959,7 +959,7 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd)
959 959
960 /* 960 /*
961 * Fixme-may be dpc thread is active and processing 961 * Fixme-may be dpc thread is active and processing
962 * loop_resync,so wait a while for it to 962 * loop_resync,so wait a while for it to
963 * be completed and then issue big hammer.Otherwise 963 * be completed and then issue big hammer.Otherwise
964 * it may cause I/O failure as big hammer marks the 964 * it may cause I/O failure as big hammer marks the
965 * devices as lost kicking of the port_down_timer 965 * devices as lost kicking of the port_down_timer
@@ -974,7 +974,7 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd)
974 974
975 if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS) 975 if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS)
976 goto eh_host_reset_lock; 976 goto eh_host_reset_lock;
977 } 977 }
978 clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags); 978 clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
979 979
980 /* Waiting for our command in done_queue to be returned to OS.*/ 980 /* Waiting for our command in done_queue to be returned to OS.*/
@@ -1020,7 +1020,7 @@ qla2x00_loop_reset(scsi_qla_host_t *ha)
1020 } 1020 }
1021 1021
1022 if (status == QLA_SUCCESS && 1022 if (status == QLA_SUCCESS &&
1023 ((!ha->flags.enable_target_reset && 1023 ((!ha->flags.enable_target_reset &&
1024 !ha->flags.enable_lip_reset) || 1024 !ha->flags.enable_lip_reset) ||
1025 ha->flags.enable_lip_full_login)) { 1025 ha->flags.enable_lip_full_login)) {
1026 1026
@@ -1139,7 +1139,7 @@ qla2x00_config_dma_addressing(scsi_qla_host_t *ha)
1139 1139
1140 if (pci_set_consistent_dma_mask(ha->pdev, 1140 if (pci_set_consistent_dma_mask(ha->pdev,
1141 DMA_64BIT_MASK)) { 1141 DMA_64BIT_MASK)) {
1142 qla_printk(KERN_DEBUG, ha, 1142 qla_printk(KERN_DEBUG, ha,
1143 "Failed to set 64 bit PCI consistent mask; " 1143 "Failed to set 64 bit PCI consistent mask; "
1144 "using 32 bit.\n"); 1144 "using 32 bit.\n");
1145 pci_set_consistent_dma_mask(ha->pdev, 1145 pci_set_consistent_dma_mask(ha->pdev,
@@ -1666,7 +1666,7 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *ha, fc_port_t *fcport,
1666{ 1666{
1667 if (atomic_read(&fcport->state) == FCS_ONLINE && fcport->rport) 1667 if (atomic_read(&fcport->state) == FCS_ONLINE && fcport->rport)
1668 fc_remote_port_block(fcport->rport); 1668 fc_remote_port_block(fcport->rport);
1669 /* 1669 /*
1670 * We may need to retry the login, so don't change the state of the 1670 * We may need to retry the login, so don't change the state of the
1671 * port but do the retries. 1671 * port but do the retries.
1672 */ 1672 */
@@ -1711,7 +1711,7 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *ha, fc_port_t *fcport,
1711 * Context: 1711 * Context:
1712 */ 1712 */
1713void 1713void
1714qla2x00_mark_all_devices_lost(scsi_qla_host_t *ha) 1714qla2x00_mark_all_devices_lost(scsi_qla_host_t *ha)
1715{ 1715{
1716 fc_port_t *fcport; 1716 fc_port_t *fcport;
1717 1717
@@ -2061,11 +2061,11 @@ qla2x00_mem_free(scsi_qla_host_t *ha)
2061 * 2061 *
2062 * Context: 2062 * Context:
2063 * Kernel context. 2063 * Kernel context.
2064 * 2064 *
2065 * Note: Sets the ref_count for non Null sp to one. 2065 * Note: Sets the ref_count for non Null sp to one.
2066 */ 2066 */
2067static int 2067static int
2068qla2x00_allocate_sp_pool(scsi_qla_host_t *ha) 2068qla2x00_allocate_sp_pool(scsi_qla_host_t *ha)
2069{ 2069{
2070 int rval; 2070 int rval;
2071 2071
@@ -2081,10 +2081,10 @@ qla2x00_allocate_sp_pool(scsi_qla_host_t *ha)
2081 2081
2082/* 2082/*
2083 * This routine frees all adapter allocated memory. 2083 * This routine frees all adapter allocated memory.
2084 * 2084 *
2085 */ 2085 */
2086static void 2086static void
2087qla2x00_free_sp_pool( scsi_qla_host_t *ha) 2087qla2x00_free_sp_pool( scsi_qla_host_t *ha)
2088{ 2088{
2089 if (ha->srb_mempool) { 2089 if (ha->srb_mempool) {
2090 mempool_destroy(ha->srb_mempool); 2090 mempool_destroy(ha->srb_mempool);
@@ -2223,7 +2223,7 @@ qla2x00_do_dpc(void *data)
2223 2223
2224 DEBUG(printk("scsi(%ld): port login OK: logged in ID 0x%x\n", 2224 DEBUG(printk("scsi(%ld): port login OK: logged in ID 0x%x\n",
2225 ha->host_no, fcport->loop_id)); 2225 ha->host_no, fcport->loop_id));
2226 2226
2227 fcport->port_login_retry_count = 2227 fcport->port_login_retry_count =
2228 ha->port_down_retry_count * PORT_RETRY_TIME; 2228 ha->port_down_retry_count * PORT_RETRY_TIME;
2229 atomic_set(&fcport->state, FCS_ONLINE); 2229 atomic_set(&fcport->state, FCS_ONLINE);
@@ -2254,7 +2254,7 @@ qla2x00_do_dpc(void *data)
2254 clear_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags); 2254 clear_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags);
2255 DEBUG(printk("scsi(%ld): qla2x00_login_retry()\n", 2255 DEBUG(printk("scsi(%ld): qla2x00_login_retry()\n",
2256 ha->host_no)); 2256 ha->host_no));
2257 2257
2258 set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags); 2258 set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
2259 2259
2260 DEBUG(printk("scsi(%ld): qla2x00_login_retry - end\n", 2260 DEBUG(printk("scsi(%ld): qla2x00_login_retry - end\n",
@@ -2315,7 +2315,7 @@ qla2x00_do_dpc(void *data)
2315* ha = adapter block pointer. 2315* ha = adapter block pointer.
2316*/ 2316*/
2317static void 2317static void
2318qla2x00_rst_aen(scsi_qla_host_t *ha) 2318qla2x00_rst_aen(scsi_qla_host_t *ha)
2319{ 2319{
2320 if (ha->flags.online && !ha->flags.reset_active && 2320 if (ha->flags.online && !ha->flags.reset_active &&
2321 !atomic_read(&ha->loop_down_timer) && 2321 !atomic_read(&ha->loop_down_timer) &&
@@ -2386,7 +2386,7 @@ qla2x00_timer(scsi_qla_host_t *ha)
2386 * 2386 *
2387 * Whenever, a port is in the LOST state we start decrementing its port 2387 * Whenever, a port is in the LOST state we start decrementing its port
2388 * down timer every second until it reaches zero. Once it reaches zero 2388 * down timer every second until it reaches zero. Once it reaches zero
2389 * the port it marked DEAD. 2389 * the port it marked DEAD.
2390 */ 2390 */
2391 t = 0; 2391 t = 0;
2392 list_for_each_entry(fcport, &ha->fcports, list) { 2392 list_for_each_entry(fcport, &ha->fcports, list) {
@@ -2398,9 +2398,9 @@ qla2x00_timer(scsi_qla_host_t *ha)
2398 if (atomic_read(&fcport->port_down_timer) == 0) 2398 if (atomic_read(&fcport->port_down_timer) == 0)
2399 continue; 2399 continue;
2400 2400
2401 if (atomic_dec_and_test(&fcport->port_down_timer) != 0) 2401 if (atomic_dec_and_test(&fcport->port_down_timer) != 0)
2402 atomic_set(&fcport->state, FCS_DEVICE_DEAD); 2402 atomic_set(&fcport->state, FCS_DEVICE_DEAD);
2403 2403
2404 DEBUG(printk("scsi(%ld): fcport-%d - port retry count: " 2404 DEBUG(printk("scsi(%ld): fcport-%d - port retry count: "
2405 "%d remaining\n", 2405 "%d remaining\n",
2406 ha->host_no, 2406 ha->host_no,
@@ -2422,7 +2422,7 @@ qla2x00_timer(scsi_qla_host_t *ha)
2422 ha->host_no)); 2422 ha->host_no));
2423 2423
2424 if (!IS_QLA2100(ha) && ha->link_down_timeout) 2424 if (!IS_QLA2100(ha) && ha->link_down_timeout)
2425 atomic_set(&ha->loop_state, LOOP_DEAD); 2425 atomic_set(&ha->loop_state, LOOP_DEAD);
2426 2426
2427 /* Schedule an ISP abort to return any tape commands. */ 2427 /* Schedule an ISP abort to return any tape commands. */
2428 spin_lock_irqsave(&ha->hardware_lock, cpu_flags); 2428 spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
diff --git a/drivers/scsi/qla2xxx/qla_rscn.c b/drivers/scsi/qla2xxx/qla_rscn.c
index 416fb7308e87..af68590c3d11 100644
--- a/drivers/scsi/qla2xxx/qla_rscn.c
+++ b/drivers/scsi/qla2xxx/qla_rscn.c
@@ -82,7 +82,7 @@ static int qla2x00_send_login_iocb(scsi_qla_host_t *, struct io_descriptor *,
82static int qla2x00_send_login_iocb_cb(scsi_qla_host_t *, struct io_descriptor *, 82static int qla2x00_send_login_iocb_cb(scsi_qla_host_t *, struct io_descriptor *,
83 struct mbx_entry *); 83 struct mbx_entry *);
84 84
85/** 85/**
86 * Mailbox IOCB callback array. 86 * Mailbox IOCB callback array.
87 **/ 87 **/
88static int (*iocb_function_cb_list[LAST_IOCB_CB]) 88static int (*iocb_function_cb_list[LAST_IOCB_CB])
@@ -95,7 +95,7 @@ static int (*iocb_function_cb_list[LAST_IOCB_CB])
95}; 95};
96 96
97 97
98/** 98/**
99 * Generic IO descriptor handle routines. 99 * Generic IO descriptor handle routines.
100 **/ 100 **/
101 101
@@ -169,7 +169,7 @@ qla2x00_handle_to_iodesc(scsi_qla_host_t *ha, uint32_t handle)
169} 169}
170 170
171 171
172/** 172/**
173 * IO descriptor allocation routines. 173 * IO descriptor allocation routines.
174 **/ 174 **/
175 175
@@ -248,7 +248,7 @@ qla2x00_init_io_descriptors(scsi_qla_host_t *ha)
248} 248}
249 249
250 250
251/** 251/**
252 * IO descriptor timer routines. 252 * IO descriptor timer routines.
253 **/ 253 **/
254 254
@@ -299,7 +299,7 @@ qla2x00_add_iodesc_timer(struct io_descriptor *iodesc)
299 add_timer(&iodesc->timer); 299 add_timer(&iodesc->timer);
300} 300}
301 301
302/** 302/**
303 * IO descriptor support routines. 303 * IO descriptor support routines.
304 **/ 304 **/
305 305
@@ -333,7 +333,7 @@ qla2x00_update_login_fcport(scsi_qla_host_t *ha, struct mbx_entry *mbxstat,
333} 333}
334 334
335 335
336/** 336/**
337 * Mailbox IOCB commands. 337 * Mailbox IOCB commands.
338 **/ 338 **/
339 339
@@ -383,7 +383,7 @@ qla2x00_get_mbx_iocb_entry(scsi_qla_host_t *ha, uint32_t handle)
383 * Returns QLA_SUCCESS if the IOCB was issued. 383 * Returns QLA_SUCCESS if the IOCB was issued.
384 */ 384 */
385static int 385static int
386qla2x00_send_abort_iocb(scsi_qla_host_t *ha, struct io_descriptor *iodesc, 386qla2x00_send_abort_iocb(scsi_qla_host_t *ha, struct io_descriptor *iodesc,
387 uint32_t handle_to_abort, int ha_locked) 387 uint32_t handle_to_abort, int ha_locked)
388{ 388{
389 unsigned long flags = 0; 389 unsigned long flags = 0;
@@ -720,7 +720,7 @@ qla2x00_send_login_iocb_cb(scsi_qla_host_t *ha, struct io_descriptor *iodesc,
720 /* Only process the last command. */ 720 /* Only process the last command. */
721 if (remote_fcport->iodesc_idx_sent != iodesc->idx) { 721 if (remote_fcport->iodesc_idx_sent != iodesc->idx) {
722 DEBUG14(printk("scsi(%ld): Login IOCB -- ignoring, sent to " 722 DEBUG14(printk("scsi(%ld): Login IOCB -- ignoring, sent to "
723 "[%02x%02x%02x], expected %x, received %x.\n", 723 "[%02x%02x%02x], expected %x, received %x.\n",
724 ha->host_no, iodesc->d_id.b.domain, iodesc->d_id.b.area, 724 ha->host_no, iodesc->d_id.b.domain, iodesc->d_id.b.area,
725 iodesc->d_id.b.al_pa, remote_fcport->iodesc_idx_sent, 725 iodesc->d_id.b.al_pa, remote_fcport->iodesc_idx_sent,
726 iodesc->idx)); 726 iodesc->idx));
@@ -754,9 +754,9 @@ qla2x00_send_login_iocb_cb(scsi_qla_host_t *ha, struct io_descriptor *iodesc,
754 754
755 DEBUG14(printk("scsi(%ld): Login IOCB -- status=%x mb1=%x pn=" 755 DEBUG14(printk("scsi(%ld): Login IOCB -- status=%x mb1=%x pn="
756 "%02x%02x%02x%02x%02x%02x%02x%02x.\n", ha->host_no, status, 756 "%02x%02x%02x%02x%02x%02x%02x%02x.\n", ha->host_no, status,
757 mb[1], mbxstat->port_name[0], mbxstat->port_name[1], 757 mb[1], mbxstat->port_name[0], mbxstat->port_name[1],
758 mbxstat->port_name[2], mbxstat->port_name[3], 758 mbxstat->port_name[2], mbxstat->port_name[3],
759 mbxstat->port_name[4], mbxstat->port_name[5], 759 mbxstat->port_name[4], mbxstat->port_name[5],
760 mbxstat->port_name[6], mbxstat->port_name[7])); 760 mbxstat->port_name[6], mbxstat->port_name[7]));
761 761
762 memcpy(remote_fcport->node_name, mbxstat->node_name, WWN_SIZE); 762 memcpy(remote_fcport->node_name, mbxstat->node_name, WWN_SIZE);
@@ -1052,7 +1052,7 @@ qla2x00_send_login_iocb_cb(scsi_qla_host_t *ha, struct io_descriptor *iodesc,
1052} 1052}
1053 1053
1054 1054
1055/** 1055/**
1056 * IO descriptor processing routines. 1056 * IO descriptor processing routines.
1057 **/ 1057 **/
1058 1058
@@ -1136,7 +1136,7 @@ qla2x00_handle_port_rscn(scsi_qla_host_t *ha, uint32_t rscn_entry,
1136 remote_fcport = rscn_fcport; 1136 remote_fcport = rscn_fcport;
1137 } 1137 }
1138 1138
1139 /* 1139 /*
1140 * If the port is already in our fcport list and online, send an ADISC 1140 * If the port is already in our fcport list and online, send an ADISC
1141 * to see if it's still alive. Issue login if a new fcport or the known 1141 * to see if it's still alive. Issue login if a new fcport or the known
1142 * fcport is currently offline. 1142 * fcport is currently offline.
@@ -1191,7 +1191,7 @@ qla2x00_handle_port_rscn(scsi_qla_host_t *ha, uint32_t rscn_entry,
1191 } 1191 }
1192 return (QLA_SUCCESS); 1192 return (QLA_SUCCESS);
1193 } 1193 }
1194 1194
1195 /* Send ADISC if the fcport is online */ 1195 /* Send ADISC if the fcport is online */
1196 if (atomic_read(&remote_fcport->state) == FCS_ONLINE || 1196 if (atomic_read(&remote_fcport->state) == FCS_ONLINE ||
1197 remote_fcport->iodesc_idx_sent == IODESC_ADISC_NEEDED) { 1197 remote_fcport->iodesc_idx_sent == IODESC_ADISC_NEEDED) {
@@ -1229,7 +1229,7 @@ qla2x00_handle_port_rscn(scsi_qla_host_t *ha, uint32_t rscn_entry,
1229 * abort. 1229 * abort.
1230 */ 1230 */
1231 uint32_t handle_to_abort; 1231 uint32_t handle_to_abort;
1232 1232
1233 iodesc = &ha->io_descriptors[ 1233 iodesc = &ha->io_descriptors[
1234 remote_fcport->iodesc_idx_sent]; 1234 remote_fcport->iodesc_idx_sent];
1235 qla2x00_remove_iodesc_timer(iodesc); 1235 qla2x00_remove_iodesc_timer(iodesc);
diff --git a/drivers/scsi/qla2xxx/qla_settings.h b/drivers/scsi/qla2xxx/qla_settings.h
index c58f5faad9e1..a7d8ed08e06b 100644
--- a/drivers/scsi/qla2xxx/qla_settings.h
+++ b/drivers/scsi/qla2xxx/qla_settings.h
@@ -22,33 +22,8 @@
22 */ 22 */
23#define DEBUG_QLA2100 0 /* For Debug of qla2x00 */ 23#define DEBUG_QLA2100 0 /* For Debug of qla2x00 */
24 24
25#define STOP_ON_RESET 0
26#define USE_ABORT_TGT 1 /* Use Abort Target mbx cmd */ 25#define USE_ABORT_TGT 1 /* Use Abort Target mbx cmd */
27 26
28#define VSA 0 /* Volume Set Addressing */
29
30/* Failover options */
31#define MAX_RECOVERYTIME 10 /*
32 * Max suspend time for a lun recovery
33 * time
34 */
35#define MAX_FAILBACKTIME 5 /* Max suspend time before fail back */
36
37#define QLA_CMD_TIMER_DELTA 3
38
39/*
40 * When a lun is suspended for the "Not Ready" condition then it will suspend
41 * the lun for increments of 6 sec delays. SUSPEND_COUNT is that count.
42 */
43#define SUSPEND_COUNT 10 /* 6 secs * 10 retries = 60 secs */
44
45/*
46 * Defines the time in seconds that the driver extends the command timeout to
47 * get around the problem where the mid-layer only allows 5 retries for
48 * commands that return BUS_BUSY
49 */
50#define EXTEND_CMD_TIMEOUT 60
51
52#define MAX_RETRIES_OF_ISP_ABORT 5 27#define MAX_RETRIES_OF_ISP_ABORT 5
53 28
54/* Max time to wait for the loop to be in LOOP_READY state */ 29/* Max time to wait for the loop to be in LOOP_READY state */
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index c95ef2bb089a..9cfac8c184de 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -31,7 +31,7 @@ static void qla2x00_nv_write(scsi_qla_host_t *, uint16_t);
31 */ 31 */
32 32
33/** 33/**
34 * qla2x00_lock_nvram_access() - 34 * qla2x00_lock_nvram_access() -
35 * @ha: HA context 35 * @ha: HA context
36 */ 36 */
37void 37void
@@ -64,7 +64,7 @@ qla2x00_lock_nvram_access(scsi_qla_host_t *ha)
64} 64}
65 65
66/** 66/**
67 * qla2x00_unlock_nvram_access() - 67 * qla2x00_unlock_nvram_access() -
68 * @ha: HA context 68 * @ha: HA context
69 */ 69 */
70void 70void
@@ -542,18 +542,18 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr,
542 542
543 conf_addr = flash_conf_to_access_addr(0x03d8); 543 conf_addr = flash_conf_to_access_addr(0x03d8);
544 switch (man_id) { 544 switch (man_id) {
545 case 0xbf: // STT flash 545 case 0xbf: /* STT flash. */
546 rest_addr = 0x1fff; 546 rest_addr = 0x1fff;
547 sec_mask = 0x3e000; 547 sec_mask = 0x3e000;
548 if (flash_id == 0x80) 548 if (flash_id == 0x80)
549 conf_addr = flash_conf_to_access_addr(0x0352); 549 conf_addr = flash_conf_to_access_addr(0x0352);
550 break; 550 break;
551 case 0x13: // ST M25P80 551 case 0x13: /* ST M25P80. */
552 rest_addr = 0x3fff; 552 rest_addr = 0x3fff;
553 sec_mask = 0x3c000; 553 sec_mask = 0x3c000;
554 break; 554 break;
555 default: 555 default:
556 // Default to 64 kb sector size 556 /* Default to 64 kb sector size. */
557 rest_addr = 0x3fff; 557 rest_addr = 0x3fff;
558 sec_mask = 0x3c000; 558 sec_mask = 0x3c000;
559 break; 559 break;
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h
index 98e68867261a..232369d156c9 100644
--- a/drivers/scsi/qla2xxx/qla_version.h
+++ b/drivers/scsi/qla2xxx/qla_version.h
@@ -17,7 +17,7 @@
17 * 17 *
18 ******************************************************************************/ 18 ******************************************************************************/
19/* 19/*
20 * Driver version 20 * Driver version
21 */ 21 */
22#define QLA2XXX_VERSION "8.00.02b5-k" 22#define QLA2XXX_VERSION "8.00.02b5-k"
23 23