bool no_send_stop;
        u32 offset;
        u32 segment;
-       u32 isr;
 
        struct drm_dp_aux dp_aux;
 };
        }
 }
 
-static void dp_aux_native_handler(struct dp_aux_private *aux)
+static void dp_aux_native_handler(struct dp_aux_private *aux, u32 isr)
 {
-       u32 isr = aux->isr;
-
        if (isr & DP_INTR_AUX_I2C_DONE)
                aux->aux_error_num = DP_AUX_ERR_NONE;
        else if (isr & DP_INTR_WRONG_ADDR)
                aux->aux_error_num = DP_AUX_ERR_PHY;
                dp_catalog_aux_clear_hw_interrupts(aux->catalog);
        }
-
-       complete(&aux->comp);
 }
 
-static void dp_aux_i2c_handler(struct dp_aux_private *aux)
+static void dp_aux_i2c_handler(struct dp_aux_private *aux, u32 isr)
 {
-       u32 isr = aux->isr;
-
        if (isr & DP_INTR_AUX_I2C_DONE) {
                if (isr & (DP_INTR_I2C_NACK | DP_INTR_I2C_DEFER))
                        aux->aux_error_num = DP_AUX_ERR_NACK;
                        dp_catalog_aux_clear_hw_interrupts(aux->catalog);
                }
        }
-
-       complete(&aux->comp);
 }
 
 static void dp_aux_update_offset_and_segment(struct dp_aux_private *aux,
 
 void dp_aux_isr(struct drm_dp_aux *dp_aux)
 {
+       u32 isr;
        struct dp_aux_private *aux;
 
        if (!dp_aux) {
 
        aux = container_of(dp_aux, struct dp_aux_private, dp_aux);
 
-       aux->isr = dp_catalog_aux_get_irq(aux->catalog);
+       isr = dp_catalog_aux_get_irq(aux->catalog);
 
        if (!aux->cmd_busy)
                return;
 
        if (aux->native)
-               dp_aux_native_handler(aux);
+               dp_aux_native_handler(aux, isr);
        else
-               dp_aux_i2c_handler(aux);
+               dp_aux_i2c_handler(aux, isr);
+
+       complete(&aux->comp);
 }
 
 void dp_aux_reconfig(struct drm_dp_aux *dp_aux)
 
        dump_regs(catalog->io->dp_controller.base + offset, len);
 }
 
-int dp_catalog_aux_get_irq(struct dp_catalog *dp_catalog)
+u32 dp_catalog_aux_get_irq(struct dp_catalog *dp_catalog)
 {
        struct dp_catalog_private *catalog = container_of(dp_catalog,
                                struct dp_catalog_private, dp_catalog);
 
 void dp_catalog_aux_reset(struct dp_catalog *dp_catalog);
 void dp_catalog_aux_enable(struct dp_catalog *dp_catalog, bool enable);
 void dp_catalog_aux_update_cfg(struct dp_catalog *dp_catalog);
-int dp_catalog_aux_get_irq(struct dp_catalog *dp_catalog);
+u32 dp_catalog_aux_get_irq(struct dp_catalog *dp_catalog);
 
 /* DP Controller APIs */
 void dp_catalog_ctrl_state_ctrl(struct dp_catalog *dp_catalog, u32 state);