struct rsp_que *rsp;
        unsigned long   flags;
        uint32_t clr_intr = 0;
+       uint32_t intr_stat = 0;
 
        rsp = (struct rsp_que *) dev_id;
        if (!rsp) {
                stat = QLAFX00_RD_INTR_REG(ha);
                if (qla2x00_check_reg_for_disconnect(vha, stat))
                        break;
-               if ((stat & QLAFX00_HST_INT_STS_BITS) == 0)
+               intr_stat = stat & QLAFX00_HST_INT_STS_BITS;
+               if (!intr_stat)
                        break;
 
-               switch (stat & QLAFX00_HST_INT_STS_BITS) {
-               case QLAFX00_INTR_MB_CMPLT:
-               case QLAFX00_INTR_MB_RSP_CMPLT:
-               case QLAFX00_INTR_MB_ASYNC_CMPLT:
-               case QLAFX00_INTR_ALL_CMPLT:
+               if (stat & QLAFX00_INTR_MB_CMPLT) {
                        mb[0] = RD_REG_WORD(®->mailbox16);
                        qlafx00_mbx_completion(vha, mb[0]);
                        status |= MBX_INTERRUPT;
                        clr_intr |= QLAFX00_INTR_MB_CMPLT;
-                       break;
-               case QLAFX00_INTR_ASYNC_CMPLT:
-               case QLAFX00_INTR_RSP_ASYNC_CMPLT:
+               }
+               if (intr_stat & QLAFX00_INTR_ASYNC_CMPLT) {
                        ha->aenmb[0] = RD_REG_WORD(®->aenmailbox0);
                        qlafx00_async_event(vha);
                        clr_intr |= QLAFX00_INTR_ASYNC_CMPLT;
-                       break;
-               case QLAFX00_INTR_RSP_CMPLT:
+               }
+               if (intr_stat & QLAFX00_INTR_RSP_CMPLT) {
                        qlafx00_process_response_queue(vha, rsp);
                        clr_intr |= QLAFX00_INTR_RSP_CMPLT;
-                       break;
-               default:
-                       ql_dbg(ql_dbg_async, vha, 0x507a,
-                           "Unrecognized interrupt type (%d).\n", stat);
-                       break;
                }
+
                QLAFX00_CLR_INTR_REG(ha, clr_intr);
                QLAFX00_RD_INTR_REG(ha);
        }
 
 
 #define QLAFX00_INTR_MB_CMPLT          0x1
 #define QLAFX00_INTR_RSP_CMPLT         0x2
-#define QLAFX00_INTR_MB_RSP_CMPLT      0x3
 #define QLAFX00_INTR_ASYNC_CMPLT       0x4
-#define QLAFX00_INTR_MB_ASYNC_CMPLT    0x5
-#define QLAFX00_INTR_RSP_ASYNC_CMPLT   0x6
-#define QLAFX00_INTR_ALL_CMPLT         0x7
 
 #define QLAFX00_MBA_SYSTEM_ERR         0x8002
 #define QLAFX00_MBA_TEMP_OVER          0x8005