);
 
 DECLARE_EVENT_CLASS(dpu_irq_template,
-       TP_PROTO(int irq_idx),
-       TP_ARGS(irq_idx),
+       TP_PROTO(unsigned int irq_reg, unsigned int irq_bit),
+       TP_ARGS(irq_reg, irq_bit),
        TP_STRUCT__entry(
-               __field(        int,                    irq_idx         )
+               __field(        unsigned int,           irq_reg         )
+               __field(        unsigned int,           irq_bit         )
        ),
        TP_fast_assign(
-               __entry->irq_idx = irq_idx;
+               __entry->irq_reg = irq_reg;
+               __entry->irq_bit = irq_bit;
        ),
-       TP_printk("irq=%d", __entry->irq_idx)
+       TP_printk("IRQ=[%d, %d]", __entry->irq_reg, __entry->irq_bit)
 );
 DEFINE_EVENT(dpu_irq_template, dpu_irq_register_success,
-       TP_PROTO(int irq_idx),
-       TP_ARGS(irq_idx)
+       TP_PROTO(unsigned int irq_reg, unsigned int irq_bit),
+       TP_ARGS(irq_reg, irq_bit)
 );
 DEFINE_EVENT(dpu_irq_template, dpu_irq_unregister_success,
-       TP_PROTO(int irq_idx),
-       TP_ARGS(irq_idx)
+       TP_PROTO(unsigned int irq_reg, unsigned int irq_bit),
+       TP_ARGS(irq_reg, irq_bit)
 );
 
 TRACE_EVENT(dpu_enc_irq_wait_success,
        TP_PROTO(uint32_t drm_id, void *func,
-                int irq_idx, enum dpu_pingpong pp_idx, int atomic_cnt),
-       TP_ARGS(drm_id, func, irq_idx, pp_idx, atomic_cnt),
+                unsigned int irq_reg, unsigned int irq_bit, enum dpu_pingpong pp_idx, int atomic_cnt),
+       TP_ARGS(drm_id, func, irq_reg, irq_bit, pp_idx, atomic_cnt),
        TP_STRUCT__entry(
                __field(        uint32_t,               drm_id          )
                __field(        void *,                 func            )
-               __field(        int,                    irq_idx         )
+               __field(        unsigned int,           irq_reg         )
+               __field(        unsigned int,           irq_bit         )
                __field(        enum dpu_pingpong,      pp_idx          )
                __field(        int,                    atomic_cnt      )
        ),
        TP_fast_assign(
                __entry->drm_id = drm_id;
                __entry->func = func;
-               __entry->irq_idx = irq_idx;
+               __entry->irq_reg = irq_reg;
+               __entry->irq_bit = irq_bit;
                __entry->pp_idx = pp_idx;
                __entry->atomic_cnt = atomic_cnt;
        ),
-       TP_printk("id=%u, callback=%ps, irq=%d, pp=%d, atomic_cnt=%d",
+       TP_printk("id=%u, callback=%ps, IRQ=[%d, %d], pp=%d, atomic_cnt=%d",
                  __entry->drm_id, __entry->func,
-                 __entry->irq_idx, __entry->pp_idx, __entry->atomic_cnt)
+                 __entry->irq_reg, __entry->irq_bit, __entry->pp_idx, __entry->atomic_cnt)
 );
 
 DECLARE_EVENT_CLASS(dpu_drm_obj_template,
 );
 
 TRACE_EVENT(dpu_enc_wait_event_timeout,
-       TP_PROTO(uint32_t drm_id, int irq_idx, int rc, s64 time,
+       TP_PROTO(uint32_t drm_id, unsigned int irq_reg, unsigned int irq_bit, int rc, s64 time,
                 s64 expected_time, int atomic_cnt),
-       TP_ARGS(drm_id, irq_idx, rc, time, expected_time, atomic_cnt),
+       TP_ARGS(drm_id, irq_reg, irq_bit, rc, time, expected_time, atomic_cnt),
        TP_STRUCT__entry(
                __field(        uint32_t,       drm_id          )
-               __field(        int,            irq_idx         )
+               __field(        unsigned int,   irq_reg         )
+               __field(        unsigned int,   irq_bit         )
                __field(        int,            rc              )
                __field(        s64,            time            )
                __field(        s64,            expected_time   )
        ),
        TP_fast_assign(
                __entry->drm_id = drm_id;
-               __entry->irq_idx = irq_idx;
+               __entry->irq_reg = irq_reg;
+               __entry->irq_bit = irq_bit;
                __entry->rc = rc;
                __entry->time = time;
                __entry->expected_time = expected_time;
                __entry->atomic_cnt = atomic_cnt;
        ),
-       TP_printk("id=%u, irq_idx=%d, rc=%d, time=%lld, expected=%lld cnt=%d",
-                 __entry->drm_id, __entry->irq_idx, __entry->rc, __entry->time,
+       TP_printk("id=%u, IRQ=[%d, %d], rc=%d, time=%lld, expected=%lld cnt=%d",
+                 __entry->drm_id, __entry->irq_reg, __entry->irq_bit, __entry->rc, __entry->time,
                  __entry->expected_time, __entry->atomic_cnt)
 );
 
 );
 
 TRACE_EVENT(dpu_core_irq_register_callback,
-       TP_PROTO(int irq_idx, void *callback),
-       TP_ARGS(irq_idx, callback),
+       TP_PROTO(unsigned int irq_reg, unsigned int irq_bit, void *callback),
+       TP_ARGS(irq_reg, irq_bit, callback),
        TP_STRUCT__entry(
-               __field(        int,                            irq_idx )
+               __field(        unsigned int,                   irq_reg )
+               __field(        unsigned int,                   irq_bit )
                __field(        void *,                         callback)
        ),
        TP_fast_assign(
-               __entry->irq_idx = irq_idx;
+               __entry->irq_reg = irq_reg;
+               __entry->irq_bit = irq_bit;
                __entry->callback = callback;
        ),
-       TP_printk("irq_idx:%d callback:%ps", __entry->irq_idx,
+       TP_printk("IRQ=[%d, %d] callback:%ps", __entry->irq_reg, __entry->irq_bit,
                  __entry->callback)
 );
 
 TRACE_EVENT(dpu_core_irq_unregister_callback,
-       TP_PROTO(int irq_idx),
-       TP_ARGS(irq_idx),
+       TP_PROTO(unsigned int irq_reg, unsigned int irq_bit),
+       TP_ARGS(irq_reg, irq_bit),
        TP_STRUCT__entry(
-               __field(        int,                            irq_idx )
+               __field(        unsigned int,                   irq_reg )
+               __field(        unsigned int,                   irq_bit )
        ),
        TP_fast_assign(
-               __entry->irq_idx = irq_idx;
+               __entry->irq_reg = irq_reg;
+               __entry->irq_bit = irq_bit;
        ),
-       TP_printk("irq_idx:%d", __entry->irq_idx)
+       TP_printk("IRQ=[%d, %d]", __entry->irq_reg, __entry->irq_bit)
 );
 
 TRACE_EVENT(dpu_core_perf_update_clk,