/* This function returns IRQ_HANDLED when interrupt is handled, else it returns IRQ_NONE.  */
irqreturn_t lpfc_sli4_intr_handler(int irq, void *dev_id)
/* This function returns IRQ_HANDLED when interrupt is handled, else it returns IRQ_NONE.  */
irqreturn_t lpfc_sli4_intr_handler(int irq, void *dev_id)
{
	struct lpfc_hba  *phba;
	irqreturn_t sp_irq_rc, fp_irq_rc;
	bool fp_handled = false;
	uint32_t fcp_eqidx;
	phba = (struct lpfc_hba *)dev_id;
	if (unlikely(!phba))
		return IRQ_NONE;
	sp_irq_rc = lpfc_sli4_sp_intr_handler(irq, dev_id);
	for (fcp_eqidx = 0; fcp_eqidx < phba->cfg_fcp_eq_count; fcp_eqidx++) {
		fp_irq_rc = lpfc_sli4_fp_intr_handler(irq,
					&phba->sli4_hba.fcp_eq_hdl[fcp_eqidx]);
		if (fp_irq_rc == IRQ_HANDLED)
			fp_handled |= true;
	}
	return (fp_handled == true) ? IRQ_HANDLED : sp_irq_rc;
}