// SPDX-License-Identifier: GPL-2.0-only /* * QLogic iSCSI HBA Driver * Copyright (c) 2003-2013 QLogic Corporation */ #include "ql4_def.h" #include "ql4_glbl.h" #include "ql4_dbg.h" #include "ql4_inline.h" /** * qla4xxx_copy_sense - copy sense data into cmd sense buffer * @ha: Pointer to host adapter structure. * @sts_entry: Pointer to status entry structure. * @srb: Pointer to srb structure. **/ static void qla4xxx_copy_sense(struct scsi_qla_host *ha, struct status_entry *sts_entry, struct srb *srb) { … } /** * qla4xxx_status_cont_entry - Process a Status Continuations entry. * @ha: SCSI driver HA context * @sts_cont: Entry pointer * * Extended sense data. */ static void qla4xxx_status_cont_entry(struct scsi_qla_host *ha, struct status_cont_entry *sts_cont) { … } /** * qla4xxx_status_entry - processes status IOCBs * @ha: Pointer to host adapter structure. * @sts_entry: Pointer to status entry structure. **/ static void qla4xxx_status_entry(struct scsi_qla_host *ha, struct status_entry *sts_entry) { … } /** * qla4xxx_passthru_status_entry - processes passthru status IOCBs (0x3C) * @ha: Pointer to host adapter structure. * @sts_entry: Pointer to status entry structure. **/ static void qla4xxx_passthru_status_entry(struct scsi_qla_host *ha, struct passthru_status *sts_entry) { … } static struct mrb *qla4xxx_del_mrb_from_active_array(struct scsi_qla_host *ha, uint32_t index) { … } static void qla4xxx_mbox_status_entry(struct scsi_qla_host *ha, struct mbox_status_iocb *mbox_sts_entry) { … } /** * qla4xxx_process_response_queue - process response queue completions * @ha: Pointer to host adapter structure. * * This routine process response queue completions in interrupt context. * Hardware_lock locked upon entry **/ void qla4xxx_process_response_queue(struct scsi_qla_host *ha) { … } /** * qla4_83xx_loopback_in_progress: Is loopback in progress? * @ha: Pointer to host adapter structure. * returns: 1 = loopback in progress, 0 = loopback not in progress **/ static int qla4_83xx_loopback_in_progress(struct scsi_qla_host *ha) { … } static void qla4xxx_update_ipaddr_state(struct scsi_qla_host *ha, uint32_t ipaddr_idx, uint32_t ipaddr_fw_state) { … } static void qla4xxx_default_router_changed(struct scsi_qla_host *ha, uint32_t *mbox_sts) { … } /** * qla4xxx_isr_decode_mailbox - decodes mailbox status * @ha: Pointer to host adapter structure. * @mbox_status: Mailbox status. * * This routine decodes the mailbox status during the ISR. * Hardware_lock locked upon entry. runs in interrupt context. **/ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha, uint32_t mbox_status) { … } void qla4_83xx_interrupt_service_routine(struct scsi_qla_host *ha, uint32_t intr_status) { … } /** * qla4_82xx_interrupt_service_routine - isr * @ha: pointer to host adapter structure. * @intr_status: Local interrupt status/type. * * This is the main interrupt service routine. * hardware_lock locked upon entry. runs in interrupt context. **/ void qla4_82xx_interrupt_service_routine(struct scsi_qla_host *ha, uint32_t intr_status) { … } /** * qla4xxx_interrupt_service_routine - isr * @ha: pointer to host adapter structure. * @intr_status: Local interrupt status/type. * * This is the main interrupt service routine. * hardware_lock locked upon entry. runs in interrupt context. **/ void qla4xxx_interrupt_service_routine(struct scsi_qla_host * ha, uint32_t intr_status) { … } /** * qla4_82xx_spurious_interrupt - processes spurious interrupt * @ha: pointer to host adapter structure. * @reqs_count: . * **/ static void qla4_82xx_spurious_interrupt(struct scsi_qla_host *ha, uint8_t reqs_count) { … } /** * qla4xxx_intr_handler - hardware interrupt handler. * @irq: Unused * @dev_id: Pointer to host adapter structure **/ irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id) { … } /** * qla4_82xx_intr_handler - hardware interrupt handler. * @irq: Unused * @dev_id: Pointer to host adapter structure **/ irqreturn_t qla4_82xx_intr_handler(int irq, void *dev_id) { … } #define LEG_INT_PTR_B31 … #define LEG_INT_PTR_B30 … #define PF_BITS_MASK … /** * qla4_83xx_intr_handler - hardware interrupt handler. * @irq: Unused * @dev_id: Pointer to host adapter structure **/ irqreturn_t qla4_83xx_intr_handler(int irq, void *dev_id) { … } irqreturn_t qla4_8xxx_msi_handler(int irq, void *dev_id) { … } static irqreturn_t qla4_83xx_mailbox_intr_handler(int irq, void *dev_id) { … } /** * qla4_8xxx_default_intr_handler - hardware interrupt handler. * @irq: Unused * @dev_id: Pointer to host adapter structure * * This interrupt handler is called directly for MSI-X, and * called indirectly for MSI. **/ irqreturn_t qla4_8xxx_default_intr_handler(int irq, void *dev_id) { … } irqreturn_t qla4_8xxx_msix_rsp_q(int irq, void *dev_id) { … } /** * qla4xxx_process_aen - processes AENs generated by firmware * @ha: pointer to host adapter structure. * @process_aen: type of AENs to process * * Processes specific types of Asynchronous Events generated by firmware. * The type of AENs to process is specified by process_aen and can be * PROCESS_ALL_AENS 0 * FLUSH_DDB_CHANGED_AENS 1 * RELOGIN_DDB_CHANGED_AENS 2 **/ void qla4xxx_process_aen(struct scsi_qla_host * ha, uint8_t process_aen) { … } int qla4xxx_request_irqs(struct scsi_qla_host *ha) { … } void qla4xxx_free_irqs(struct scsi_qla_host *ha) { … }