|
@@ -474,6 +474,7 @@ static void sde_encoder_phys_vid_vblank_irq(void *arg, int irq_idx)
|
|
|
{
|
|
|
struct sde_encoder_phys *phys_enc = arg;
|
|
|
struct sde_hw_ctl *hw_ctl;
|
|
|
+ struct intf_status intf_status = {0};
|
|
|
unsigned long lock_flags;
|
|
|
u32 flush_register = ~0;
|
|
|
u32 reset_status = 0;
|
|
@@ -530,11 +531,16 @@ not_flushed:
|
|
|
phys_enc->parent_ops.handle_vblank_virt(phys_enc->parent,
|
|
|
phys_enc);
|
|
|
|
|
|
+ if (phys_enc->hw_intf->ops.get_status)
|
|
|
+ phys_enc->hw_intf->ops.get_status(phys_enc->hw_intf,
|
|
|
+ &intf_status);
|
|
|
+
|
|
|
SDE_EVT32_IRQ(DRMID(phys_enc->parent), phys_enc->hw_intf->idx - INTF_0,
|
|
|
old_cnt, atomic_read(&phys_enc->pending_kickoff_cnt),
|
|
|
reset_status ? SDE_EVTLOG_ERROR : 0,
|
|
|
flush_register, event,
|
|
|
- atomic_read(&phys_enc->pending_retire_fence_cnt));
|
|
|
+ atomic_read(&phys_enc->pending_retire_fence_cnt),
|
|
|
+ intf_status.frame_count);
|
|
|
|
|
|
/* Signal any waiting atomic commit thread */
|
|
|
wake_up_all(&phys_enc->pending_kickoff_wq);
|