• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/qla2xxx/

Lines Matching defs:ha

33 	scsi_qla_host_t	*ha;
40 ha = (scsi_qla_host_t *) dev_id;
41 if (!ha) {
47 reg = &ha->iobase->isp;
50 spin_lock_irqsave(&ha->hardware_lock, flags);
60 mb[0] = RD_MAILBOX_REG(ha, reg, 0);
62 qla2x00_mbx_completion(ha, mb[0]);
65 mb[1] = RD_MAILBOX_REG(ha, reg, 1);
66 mb[2] = RD_MAILBOX_REG(ha, reg, 2);
67 mb[3] = RD_MAILBOX_REG(ha, reg, 3);
68 qla2x00_async_event(ha, mb);
73 ha->host_no, mb[0]));
79 qla2x00_process_response_queue(ha);
85 spin_unlock_irqrestore(&ha->hardware_lock, flags);
87 if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
88 (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
89 set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
90 up(&ha->mbx_intr_sem);
108 scsi_qla_host_t *ha;
117 ha = (scsi_qla_host_t *) dev_id;
118 if (!ha) {
124 reg = &ha->iobase->isp;
127 spin_lock_irqsave(&ha->hardware_lock, flags);
133 qla_printk(KERN_INFO, ha, "Parity error -- "
136 qla_printk(KERN_INFO, ha, "RISC paused -- "
147 ha->isp_ops.fw_dump(ha, 1);
148 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
158 qla2x00_mbx_completion(ha, MSW(stat));
166 mb[1] = RD_MAILBOX_REG(ha, reg, 1);
167 mb[2] = RD_MAILBOX_REG(ha, reg, 2);
168 mb[3] = RD_MAILBOX_REG(ha, reg, 3);
169 qla2x00_async_event(ha, mb);
172 qla2x00_process_response_queue(ha);
177 qla2x00_async_event(ha, mb);
182 mb[2] = RD_MAILBOX_REG(ha, reg, 2);
183 qla2x00_async_event(ha, mb);
188 ha->host_no, stat & 0xff));
194 spin_unlock_irqrestore(&ha->hardware_lock, flags);
196 if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
197 (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
198 set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
199 up(&ha->mbx_intr_sem);
207 * @ha: SCSI driver HA context
211 qla2x00_mbx_completion(scsi_qla_host_t *ha, uint16_t mb0)
215 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
218 ha->flags.mbox_int = 1;
219 ha->mailbox_out[0] = mb0;
220 wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 1);
222 for (cnt = 1; cnt < ha->mbx_count; cnt++) {
223 if (IS_QLA2200(ha) && cnt == 8)
224 wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 8);
226 ha->mailbox_out[cnt] = qla2x00_debounce_register(wptr);
228 ha->mailbox_out[cnt] = RD_REG_WORD(wptr);
233 if (ha->mcp) {
235 __func__, ha->host_no, ha->mcp->mb[0]));
238 __func__, ha->host_no));
244 * @ha: SCSI driver HA context
248 qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
256 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
289 handles[3] = (uint32_t)RD_MAILBOX_REG(ha, reg, 6);
297 handles[3] = (uint32_t)RD_MAILBOX_REG(ha, reg, 6);
298 handles[4] = (uint32_t)RD_MAILBOX_REG(ha, reg, 7);
305 ((uint32_t)(RD_MAILBOX_REG(ha, reg, 7) << 16)) |
306 RD_MAILBOX_REG(ha, reg, 6));
316 if (!ha->flags.online)
320 qla2x00_process_completed_request(ha, handles[cnt]);
324 DEBUG2(printk("scsi(%ld): Asynchronous RESET.\n", ha->host_no));
326 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
330 mb[1] = RD_MAILBOX_REG(ha, reg, 1);
331 mb[2] = RD_MAILBOX_REG(ha, reg, 2);
332 mb[3] = RD_MAILBOX_REG(ha, reg, 3);
334 qla_printk(KERN_INFO, ha,
338 ha->isp_ops.fw_dump(ha, 1);
340 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
342 qla_printk(KERN_ERR, ha,
345 ha->flags.online = 0;
347 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
349 qla_printk(KERN_INFO, ha,
352 ha->flags.online = 0;
354 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
359 ha->host_no));
360 qla_printk(KERN_WARNING, ha, "ISP Request Transfer Error.\n");
362 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
367 ha->host_no));
368 qla_printk(KERN_WARNING, ha, "ISP Response Transfer Error.\n");
370 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
375 ha->host_no));
379 DEBUG2(printk("scsi(%ld): LIP occured (%x).\n", ha->host_no,
381 qla_printk(KERN_INFO, ha, "LIP occured (%x).\n", mb[1]);
383 if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
384 atomic_set(&ha->loop_state, LOOP_DOWN);
385 atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
386 qla2x00_mark_all_devices_lost(ha, 1);
389 set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
391 ha->flags.management_server_logged_in = 0;
395 if (IS_QLA2100(ha) || IS_QLA2200(ha)) {
397 ha->link_data_rate = PORT_SPEED_1GB;
402 ha->link_data_rate = mb[1];
406 ha->host_no, link_speed));
407 qla_printk(KERN_INFO, ha, "LOOP UP detected (%s Gbps).\n",
410 ha->flags.management_server_logged_in = 0;
415 ha->host_no, mb[1]));
416 qla_printk(KERN_INFO, ha, "LOOP DOWN detected (%x).\n", mb[1]);
418 if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
419 atomic_set(&ha->loop_state, LOOP_DOWN);
420 atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
421 ha->device_flags |= DFLG_NO_CABLE;
422 qla2x00_mark_all_devices_lost(ha, 1);
425 ha->flags.management_server_logged_in = 0;
426 ha->link_data_rate = PORT_SPEED_UNKNOWN;
428 set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags);
433 ha->host_no, mb[1]));
434 qla_printk(KERN_INFO, ha,
437 if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
438 atomic_set(&ha->loop_state, LOOP_DOWN);
439 atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
440 qla2x00_mark_all_devices_lost(ha, 1);
443 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
445 ha->operating_mode = LOOP;
446 ha->flags.management_server_logged_in = 0;
450 if (IS_QLA2100(ha))
454 ha->host_no));
460 if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
461 atomic_set(&ha->loop_state, LOOP_DOWN);
462 if (!atomic_read(&ha->loop_down_timer))
463 atomic_set(&ha->loop_down_timer,
465 qla2x00_mark_all_devices_lost(ha, 1);
468 if (!(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags))) {
469 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
471 set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
473 ha->flags.gpsc_supported = 1;
477 if (IS_QLA2100(ha))
482 ha->host_no));
483 qla_printk(KERN_INFO, ha,
486 if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
487 atomic_set(&ha->loop_state, LOOP_DOWN);
488 if (!atomic_read(&ha->loop_down_timer))
489 atomic_set(&ha->loop_down_timer,
491 qla2x00_mark_all_devices_lost(ha, 1);
494 set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
495 set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
504 atomic_set(&ha->loop_down_timer, 0);
505 if (atomic_read(&ha->loop_state) != LOOP_DOWN &&
506 atomic_read(&ha->loop_state) != LOOP_DEAD) {
508 "ignored %04x/%04x/%04x.\n", ha->host_no, mb[1],
514 ha->host_no));
517 ha->host_no, mb[1], mb[2], mb[3]));
522 atomic_set(&ha->loop_state, LOOP_UP);
524 qla2x00_mark_all_devices_lost(ha, 1);
526 ha->flags.rscn_queue_overflow = 1;
528 set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
529 set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
534 ha->host_no));
537 ha->host_no, mb[1], mb[2]));
540 host_pid = (ha->d_id.b.domain << 16) | (ha->d_id.b.area << 8) |
541 ha->d_id.b.al_pa;
546 ha->host_no, host_pid));
550 rscn_queue_index = ha->rscn_in_ptr + 1;
553 if (rscn_queue_index != ha->rscn_out_ptr) {
554 ha->rscn_queue[ha->rscn_in_ptr] = rscn_entry;
555 ha->rscn_in_ptr = rscn_queue_index;
557 ha->flags.rscn_queue_overflow = 1;
560 atomic_set(&ha->loop_state, LOOP_UPDATE);
561 atomic_set(&ha->loop_down_timer, 0);
562 ha->flags.management_server_logged_in = 0;
564 set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
565 set_bit(RSCN_UPDATE, &ha->dpc_flags);
571 ha->host_no));
574 ha->host_no));
576 if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
577 qla24xx_process_response_queue(ha);
579 qla2x00_process_response_queue(ha);
584 "%04x.\n", ha->host_no, mb[1], mb[2], mb[3]));
589 ha->host_no, mb[1], mb[2]));
599 if (fcport->ha->max_q_depth <= sdev->queue_depth)
611 DEBUG2(qla_printk(KERN_INFO, fcport->ha,
613 fcport->ha->host_no, sdev->channel, sdev->id, sdev->lun,
625 DEBUG2(qla_printk(KERN_INFO, fcport->ha,
627 fcport->ha->host_no, sdev->channel, sdev->id, sdev->lun,
632 qla2x00_ramp_up_queue_depth(scsi_qla_host_t *ha, srb_t *sp)
638 if (sdev->queue_depth >= ha->max_q_depth)
655 * @ha: SCSI driver HA context
659 qla2x00_process_completed_request(struct scsi_qla_host *ha, uint32_t index)
666 ha->host_no, index));
667 qla_printk(KERN_WARNING, ha,
670 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
674 sp = ha->outstanding_cmds[index];
677 ha->outstanding_cmds[index] = NULL;
685 qla2x00_ramp_up_queue_depth(ha, sp);
686 qla2x00_sp_compl(ha, sp);
689 ha->host_no));
690 qla_printk(KERN_WARNING, ha,
693 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
699 * @ha: SCSI driver HA context
702 qla2x00_process_response_queue(struct scsi_qla_host *ha)
704 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
709 if (!ha->flags.online)
712 while (ha->response_ring_ptr->signature != RESPONSE_PROCESSED) {
713 pkt = (sts_entry_t *)ha->response_ring_ptr;
715 ha->rsp_ring_index++;
716 if (ha->rsp_ring_index == ha->response_q_length) {
717 ha->rsp_ring_index = 0;
718 ha->response_ring_ptr = ha->response_ring;
720 ha->response_ring_ptr++;
725 "scsi(%ld): Process error entry.\n", ha->host_no));
727 qla2x00_error_entry(ha, pkt);
735 qla2x00_status_entry(ha, pkt);
740 qla2x00_process_completed_request(ha,
747 qla2x00_process_completed_request(ha,
752 qla2x00_status_cont_entry(ha, (sts_cont_entry_t *)pkt);
755 qla2x00_ms_entry(ha, (ms_iocb_entry_t *)pkt);
762 ha->host_no, pkt->entry_type, pkt->entry_status));
770 WRT_REG_WORD(ISP_RSP_Q_OUT(ha, reg), ha->rsp_ring_index);
775 * @ha: SCSI driver HA context
779 qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
795 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
805 qla2x00_process_completed_request(ha, sts->handle);
812 sp = ha->outstanding_cmds[sts->handle];
813 ha->outstanding_cmds[sts->handle] = NULL;
819 ha->host_no));
820 qla_printk(KERN_WARNING, ha, "Status Entry invalid handle.\n");
822 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
823 qla2xxx_wake_dpc(ha);
829 "pkt->handle=%d sp=%p.\n", ha->host_no, sts->handle, sp));
830 qla_printk(KERN_WARNING, ha,
844 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
863 if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
868 "retrying command\n", ha->host_no,
875 qla2x00_sp_compl(ha, sp);
898 qla_printk(KERN_INFO, ha,
901 "error status.\n", ha->host_no,
915 "0x%x-0x%x.\n", ha->host_no, comp_status,
948 ha->status_srb = sp;
952 ha->host_no, cp->device->channel, cp->device->id,
962 if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
972 "os_underflow=0x%x\n", ha->host_no,
989 "0x%x-0x%x.\n", ha->host_no, comp_status,
1026 ha->status_srb = sp;
1030 __func__, ha->host_no, cp->device->channel,
1046 "retrying command.\n", ha->host_no,
1058 qla_printk(KERN_INFO, ha,
1061 "error status.\n", ha->host_no,
1078 ha->host_no, cp->device->id, cp->device->lun, comp_status,
1104 ha->host_no, cp->device->id, cp->device->lun,
1110 qla2x00_mark_device_lost(ha, fcport, 1, 1);
1117 ha->host_no, comp_status, scsi_status));
1130 ha->host_no, comp_status, scsi_status));
1138 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
1141 "0x%x-0x%x\n", ha->host_no, cp->device->channel,
1148 "sflags=%x.\n", ha->host_no, cp->device->channel,
1154 qla2x00_mark_device_lost(ha, fcport, 1, 1);
1159 "0x%x-0x%x.\n", ha->host_no, comp_status, scsi_status));
1160 qla_printk(KERN_INFO, ha,
1169 if (ha->status_srb == NULL)
1170 qla2x00_sp_compl(ha, sp);
1175 * @ha: SCSI driver HA context
1181 qla2x00_status_cont_entry(scsi_qla_host_t *ha, sts_cont_entry_t *pkt)
1184 srb_t *sp = ha->status_srb;
1192 qla_printk(KERN_INFO, ha,
1196 ha->status_srb = NULL;
1207 if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
1217 ha->status_srb = NULL;
1218 qla2x00_sp_compl(ha, sp);
1225 * @ha: SCSI driver HA context
1229 qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt)
1235 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Order\n", __func__);
1237 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Count\n", __func__);
1239 qla_printk(KERN_ERR, ha,
1242 qla_printk(KERN_ERR, ha, "%s: Invalid Entry Type\n", __func__);
1244 qla_printk(KERN_ERR, ha, "%s: Busy\n", __func__);
1246 qla_printk(KERN_ERR, ha, "%s: UNKNOWN flag error\n", __func__);
1251 sp = ha->outstanding_cmds[pkt->handle];
1257 ha->outstanding_cmds[pkt->handle] = NULL;
1269 qla2x00_sp_compl(ha, sp);
1274 ha->host_no));
1275 qla_printk(KERN_WARNING, ha,
1278 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
1279 qla2xxx_wake_dpc(ha);
1285 * @ha: SCSI driver HA context
1289 qla2x00_ms_entry(scsi_qla_host_t *ha, ms_iocb_entry_t *pkt)
1294 __func__, ha->host_no, pkt, pkt->handle1));
1298 sp = ha->outstanding_cmds[pkt->handle1];
1304 ha->host_no));
1305 qla_printk(KERN_WARNING, ha, "MS entry - invalid handle\n");
1307 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
1315 ha->outstanding_cmds[pkt->handle1] = NULL;
1317 qla2x00_sp_compl(ha, sp);
1323 * @ha: SCSI driver HA context
1327 qla24xx_mbx_completion(scsi_qla_host_t *ha, uint16_t mb0)
1331 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
1334 ha->flags.mbox_int = 1;
1335 ha->mailbox_out[0] = mb0;
1338 for (cnt = 1; cnt < ha->mbx_count; cnt++) {
1339 ha->mailbox_out[cnt] = RD_REG_WORD(wptr);
1343 if (ha->mcp) {
1345 __func__, ha->host_no, ha->mcp->mb[0]));
1348 __func__, ha->host_no));
1354 * @ha: SCSI driver HA context
1357 qla24xx_process_response_queue(struct scsi_qla_host *ha)
1359 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
1362 if (!ha->flags.online)
1365 while (ha->response_ring_ptr->signature != RESPONSE_PROCESSED) {
1366 pkt = (struct sts_entry_24xx *)ha->response_ring_ptr;
1368 ha->rsp_ring_index++;
1369 if (ha->rsp_ring_index == ha->response_q_length) {
1370 ha->rsp_ring_index = 0;
1371 ha->response_ring_ptr = ha->response_ring;
1373 ha->response_ring_ptr++;
1378 "scsi(%ld): Process error entry.\n", ha->host_no));
1380 qla2x00_error_entry(ha, (sts_entry_t *) pkt);
1388 qla2x00_status_entry(ha, pkt);
1391 qla2x00_status_cont_entry(ha, (sts_cont_entry_t *)pkt);
1394 qla24xx_ms_entry(ha, (struct ct_entry_24xx *)pkt);
1401 ha->host_no, pkt->entry_type, pkt->entry_status));
1409 WRT_REG_DWORD(&reg->rsp_q_out, ha->rsp_ring_index);
1424 scsi_qla_host_t *ha;
1433 ha = (scsi_qla_host_t *) dev_id;
1434 if (!ha) {
1440 reg = &ha->iobase->isp24;
1443 spin_lock_irqsave(&ha->hardware_lock, flags);
1449 qla_printk(KERN_INFO, ha, "RISC paused -- HCCR=%x, "
1451 ha->isp_ops.fw_dump(ha, 1);
1452 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
1462 qla24xx_mbx_completion(ha, MSW(stat));
1471 qla2x00_async_event(ha, mb);
1474 qla24xx_process_response_queue(ha);
1479 ha->host_no, stat & 0xff));
1485 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1487 if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
1488 (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
1489 set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
1490 up(&ha->mbx_intr_sem);
1498 * @ha: SCSI driver HA context
1502 qla24xx_ms_entry(scsi_qla_host_t *ha, struct ct_entry_24xx *pkt)
1507 __func__, ha->host_no, pkt, pkt->handle));
1514 sp = ha->outstanding_cmds[pkt->handle];
1520 ha->host_no));
1522 ha->host_no));
1523 qla_printk(KERN_WARNING, ha, "MS entry - invalid handle %d\n",
1526 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
1534 ha->outstanding_cmds[pkt->handle] = NULL;
1536 qla2x00_sp_compl(ha, sp);
1542 scsi_qla_host_t *ha;
1546 ha = dev_id;
1547 reg = &ha->iobase->isp24;
1549 spin_lock_irqsave(&ha->hardware_lock, flags);
1551 qla24xx_process_response_queue(ha);
1556 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1564 scsi_qla_host_t *ha;
1573 ha = dev_id;
1574 reg = &ha->iobase->isp24;
1577 spin_lock_irqsave(&ha->hardware_lock, flags);
1583 qla_printk(KERN_INFO, ha, "RISC paused -- HCCR=%x, "
1585 ha->isp_ops.fw_dump(ha, 1);
1586 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
1596 qla24xx_mbx_completion(ha, MSW(stat));
1605 qla2x00_async_event(ha, mb);
1608 qla24xx_process_response_queue(ha);
1613 ha->host_no, stat & 0xff));
1619 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1621 if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
1622 (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
1623 set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
1624 up(&ha->mbx_intr_sem);
1648 qla24xx_disable_msix(scsi_qla_host_t *ha)
1654 qentry = &ha->msix_entries[imsix_entries[i].index];
1656 free_irq(qentry->msix_vector, ha);
1658 pci_disable_msix(ha->pdev);
1662 qla24xx_enable_msix(scsi_qla_host_t *ha)
1671 ret = pci_enable_msix(ha->pdev, entries, ARRAY_SIZE(entries));
1673 qla_printk(KERN_WARNING, ha,
1678 ha->flags.msix_enabled = 1;
1681 qentry = &ha->msix_entries[imsix_entries[i].index];
1686 imsix_entries[i].handler, 0, imsix_entries[i].name, ha);
1688 qla_printk(KERN_WARNING, ha,
1691 qla24xx_disable_msix(ha);
1702 qla2x00_request_irqs(scsi_qla_host_t *ha)
1707 if (!IS_QLA2432(ha))
1710 if (ha->chip_revision < QLA_MSIX_CHIP_REV_24XX ||
1711 !QLA_MSIX_FW_MODE_1(ha->fw_attributes)) {
1712 DEBUG2(qla_printk(KERN_WARNING, ha,
1714 ha->chip_revision, ha->fw_attributes));
1719 ret = qla24xx_enable_msix(ha);
1721 DEBUG2(qla_printk(KERN_INFO, ha,
1722 "MSI-X: Enabled (0x%X, 0x%X).\n", ha->chip_revision,
1723 ha->fw_attributes));
1726 qla_printk(KERN_WARNING, ha,
1730 if (!IS_QLA24XX(ha))
1733 ret = pci_enable_msi(ha->pdev);
1735 DEBUG2(qla_printk(KERN_INFO, ha, "MSI: Enabled.\n"));
1736 ha->flags.msi_enabled = 1;
1740 ret = request_irq(ha->pdev->irq, ha->isp_ops.intr_handler,
1741 IRQF_DISABLED|IRQF_SHARED, QLA2XXX_DRIVER_NAME, ha);
1743 ha->flags.inta_enabled = 1;
1744 ha->host->irq = ha->pdev->irq;
1746 qla_printk(KERN_WARNING, ha,
1748 ha->pdev->irq);
1755 qla2x00_free_irqs(scsi_qla_host_t *ha)
1758 if (ha->flags.msix_enabled)
1759 qla24xx_disable_msix(ha);
1760 else if (ha->flags.inta_enabled) {
1761 free_irq(ha->host->irq, ha);
1762 pci_disable_msi(ha->pdev);