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

Lines Matching refs:ha

12  * @ha: SCSI driver HA context
15 static void qla4xxx_process_completed_request(struct scsi_qla_host *ha,
20 srb = qla4xxx_del_from_active_array(ha, index);
24 qla4xxx_srb_compl(ha, srb);
27 "%d\n", ha->host_no, index));
28 set_bit(DPC_RESET_HA, &ha->dpc_flags);
34 * @ha: Pointer to host adapter structure.
37 static void qla4xxx_status_entry(struct scsi_qla_host *ha,
49 qla4xxx_process_completed_request(ha,
55 srb = qla4xxx_del_from_active_array(ha, le32_to_cpu(sts_entry->handle));
60 "been completed.\n", ha->host_no, __func__,
69 ha->host_no, __func__, sts_entry->handle,
71 dev_warn(&ha->pdev->dev, "Command is NULL:"
114 "ASC/ASCQ = %02x/%02x\n", ha->host_no,
132 ha->host_no, cmd->device->channel,
140 ha->host_no, cmd->device->channel,
148 ha->host_no, cmd->device->channel,
159 qla4xxx_mark_device_missing(ha, ddb_entry);
166 "residual = 0x%x\n", ha->host_no,
183 ha->host_no, cmd->device->channel,
214 "ASC/ASCQ = %02x/%02x\n", ha->host_no,
247 "residual = 0x%x\n", ha->host_no,
268 qla4xxx_mark_device_missing(ha, ddb_entry);
280 " iResp=%02x\n", ha->host_no, cmd->device->id,
297 qla4xxx_srb_compl(ha, srb);
302 * @ha: Pointer to host adapter structure.
307 static void qla4xxx_process_response_queue(struct scsi_qla_host * ha)
314 while ((ha->response_in =
315 (uint16_t)le32_to_cpu(ha->shadow_regs->rsp_q_in)) !=
316 ha->response_out) {
317 sts_entry = (struct status_entry *) ha->response_ptr;
321 if (ha->response_out == (RESPONSE_QUEUE_DEPTH - 1)) {
322 ha->response_out = 0;
323 ha->response_ptr = ha->response_ring;
325 ha->response_out++;
326 ha->response_ptr++;
336 qla4xxx_status_entry(ha, sts_entry);
345 "- ignoring\n", ha->host_no, __func__));
353 srb = qla4xxx_del_from_active_array(ha,
360 "srb %p\n", ha->host_no, __func__, srb));
365 qla4xxx_srb_compl(ha, srb);
371 "ignoring\n", ha->host_no, __func__));
380 "response queue \n", ha->host_no,
391 writel(ha->response_out, &ha->reg->rsp_q_out);
392 readl(&ha->reg->rsp_q_out);
398 ha->host_no, __func__, srb, sts_entry->hdr.entryType,
402 writel(ha->response_out, &ha->reg->rsp_q_out);
403 readl(&ha->reg->rsp_q_out);
405 set_bit(DPC_RESET_HA, &ha->dpc_flags);
410 * @ha: Pointer to host adapter structure.
416 static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha,
424 ha->mbox_status[0] = mbox_status;
426 if (test_bit(AF_MBOX_COMMAND, &ha->flags)) {
431 for (i = 1; i < ha->mbox_status_count; i++)
432 ha->mbox_status[i] =
433 readl(&ha->reg->mailbox[i]);
435 set_bit(AF_MBOX_COMMAND_DONE, &ha->flags);
447 set_bit(AF_GET_CRASH_RECORD, &ha->flags);
448 set_bit(DPC_RESET_HA, &ha->dpc_flags);
458 "Reset HA\n", ha->host_no, mbox_status));
459 set_bit(DPC_RESET_HA, &ha->dpc_flags);
464 ha->host_no, mbox_status));
465 set_bit(AF_LINK_UP, &ha->flags);
470 ha->host_no, mbox_status));
471 clear_bit(AF_LINK_UP, &ha->flags);
475 ha->seconds_since_last_heartbeat = 0;
480 "ACQUIRED\n", ha->host_no, mbox_status));
481 set_bit(DPC_GET_DHCP_IP_ADDR, &ha->dpc_flags);
492 DEBUG2(printk("scsi%ld: AEN %04x\n", ha->host_no,
501 ha->host_no, mbox_status,
502 readl(&ha->reg->mailbox[1]),
503 readl(&ha->reg->mailbox[2])));
511 ha->host_no, mbox_status,
512 readl(&ha->reg->mailbox[1]),
513 readl(&ha->reg->mailbox[2]),
514 readl(&ha->reg->mailbox[3])));
520 if (ha->aen_q_count > 0) {
522 if (ha->aen_in == (MAX_AEN_ENTRIES - 1))
523 ha->aen_in = 0;
525 ha->aen_in++;
528 ha->aen_q_count--;
531 ha->aen_q[ha->aen_in].mbox_sts[i] =
532 readl(&ha->reg->mailbox[i]);
534 ha->aen_q[ha->aen_in].mbox_sts[0] = mbox_status;
539 ha->host_no, ha->aen_in,
541 ha->aen_q[ha->aen_in].mbox_sts[1],
542 ha->aen_q[ha->aen_in].mbox_sts[2],
543 ha->aen_q[ha->aen_in].mbox_sts[3],
544 ha->aen_q[ha->aen_in]. mbox_sts[4]));
547 set_bit(DPC_AEN, &ha->dpc_flags);
551 ha->host_no, __func__,
555 ha->host_no));
560 ha->aen_q[i].mbox_sts[0],
561 ha->aen_q[i].mbox_sts[1],
562 ha->aen_q[i].mbox_sts[2],
563 ha->aen_q[i].mbox_sts[3]));
571 ha->host_no, mbox_status));
576 ha->host_no, mbox_status));
578 ha->mbox_status[0] = mbox_status;
584 * @ha: pointer to host adapter structure.
589 void qla4xxx_interrupt_service_routine(struct scsi_qla_host * ha,
594 qla4xxx_process_response_queue(ha);
598 qla4xxx_isr_decode_mailbox(ha,
599 readl(&ha->reg->mailbox[0]));
603 &ha->reg->ctrl_status);
604 readl(&ha->reg->ctrl_status);
615 struct scsi_qla_host *ha;
620 ha = (struct scsi_qla_host *) dev_id;
621 if (!ha) {
627 spin_lock_irqsave(&ha->hardware_lock, flags);
629 ha->isr_count++;
638 if (le32_to_cpu(ha->shadow_regs->rsp_q_in) !=
639 ha->response_out)
642 intr_status = readl(&ha->reg->ctrl_status);
648 ha->spurious_int_count++;
654 "Status 0x%04x\n", ha->host_no,
655 readl(isp_port_error_status (ha))));
664 if ((readl(&ha->reg->ctrl_status) &
667 &ha->reg->ctrl_status);
668 readl(&ha->reg->ctrl_status);
672 &ha->reg->ctrl_status);
673 readl(&ha->reg->ctrl_status);
675 __qla4xxx_disable_intrs(ha);
677 set_bit(DPC_RESET_HA, &ha->dpc_flags);
681 clear_bit(AF_ONLINE, &ha->flags);
682 __qla4xxx_disable_intrs(ha);
685 &ha->reg->ctrl_status);
686 readl(&ha->reg->ctrl_status);
689 set_bit(DPC_RESET_HA_INTR, &ha->dpc_flags);
693 qla4xxx_interrupt_service_routine(ha, intr_status);
694 ha->total_io_count++;
702 spin_unlock_irqrestore(&ha->hardware_lock, flags);
709 * @ha: pointer to host adapter structure.
718 void qla4xxx_process_aen(struct scsi_qla_host * ha, uint8_t process_aen)
725 spin_lock_irqsave(&ha->hardware_lock, flags);
726 while (ha->aen_out != ha->aen_in) {
728 if (ha->aen_out == (MAX_AEN_ENTRIES - 1))
729 ha->aen_out = 0;
731 ha->aen_out++;
733 ha->aen_q_count++;
734 aen = &ha->aen_q[ha->aen_out];
740 spin_unlock_irqrestore(&ha->hardware_lock, flags);
743 "mod=%x conerr=%08x \n", ha->host_no, ha->aen_out,
752 ha->host_no, ha->aen_out,
762 qla4xxx_lookup_ddb_by_fw_index(ha,
776 ha->host_no,
784 qla4xxx_reinitialize_ddb_list(ha);
786 qla4xxx_process_ddb_changed(ha, mbox_sts[2],
791 spin_lock_irqsave(&ha->hardware_lock, flags);
793 spin_unlock_irqrestore(&ha->hardware_lock, flags);