Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40e4d191 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "disp: msm: sde: log intf framecount in event logs"

parents 3a81fc37 c6092f3e
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -243,8 +243,10 @@ static void sde_encoder_phys_cmd_te_rd_ptr_irq(void *arg, int irq_idx)


	sde_encoder_helper_get_pp_line_count(phys_enc->parent, info);
	sde_encoder_helper_get_pp_line_count(phys_enc->parent, info);
	SDE_EVT32_IRQ(DRMID(phys_enc->parent),
	SDE_EVT32_IRQ(DRMID(phys_enc->parent),
		info[0].pp_idx, info[0].intf_idx, info[0].wr_ptr_line_count,
		info[0].pp_idx, info[0].intf_idx,
		info[1].pp_idx, info[1].intf_idx, info[1].wr_ptr_line_count,
		info[0].wr_ptr_line_count, info[0].intf_frame_count,
		info[1].pp_idx, info[1].intf_idx,
		info[1].wr_ptr_line_count, info[1].intf_frame_count,
		scheduler_status);
		scheduler_status);


	if (phys_enc->parent_ops.handle_vblank_virt)
	if (phys_enc->parent_ops.handle_vblank_virt)
+7 −1
Original line number Original line Diff line number Diff line
@@ -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_encoder_phys *phys_enc = arg;
	struct sde_hw_ctl *hw_ctl;
	struct sde_hw_ctl *hw_ctl;
	struct intf_status intf_status = {0};
	unsigned long lock_flags;
	unsigned long lock_flags;
	u32 flush_register = ~0;
	u32 flush_register = ~0;
	u32 reset_status = 0;
	u32 reset_status = 0;
@@ -530,11 +531,16 @@ static void sde_encoder_phys_vid_vblank_irq(void *arg, int irq_idx)
		phys_enc->parent_ops.handle_vblank_virt(phys_enc->parent,
		phys_enc->parent_ops.handle_vblank_virt(phys_enc->parent,
				phys_enc);
				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,
	SDE_EVT32_IRQ(DRMID(phys_enc->parent), phys_enc->hw_intf->idx - INTF_0,
			old_cnt, atomic_read(&phys_enc->pending_kickoff_cnt),
			old_cnt, atomic_read(&phys_enc->pending_kickoff_cnt),
			reset_status ? SDE_EVTLOG_ERROR : 0,
			reset_status ? SDE_EVTLOG_ERROR : 0,
			flush_register, event,
			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 */
	/* Signal any waiting atomic commit thread */
	wake_up_all(&phys_enc->pending_kickoff_wq);
	wake_up_all(&phys_enc->pending_kickoff_wq);
+3 −0
Original line number Original line Diff line number Diff line
@@ -628,6 +628,9 @@ static int sde_hw_intf_get_vsync_info(struct sde_hw_intf *intf,
	val = SDE_REG_READ(c, INTF_TEAR_LINE_COUNT);
	val = SDE_REG_READ(c, INTF_TEAR_LINE_COUNT);
	info->wr_ptr_line_count = val & 0xffff;
	info->wr_ptr_line_count = val & 0xffff;


	val = SDE_REG_READ(c, INTF_FRAME_COUNT);
	info->intf_frame_count = val;

	return 0;
	return 0;
}
}


+2 −0
Original line number Original line Diff line number Diff line
@@ -680,6 +680,7 @@ struct sde_hw_autorefresh {
 * @rd_ptr_frame_count:	num frames sent since enabling interface
 * @rd_ptr_frame_count:	num frames sent since enabling interface
 * @rd_ptr_line_count:	current line on panel (rd ptr)
 * @rd_ptr_line_count:	current line on panel (rd ptr)
 * @wr_ptr_line_count:	current line within pp fifo (wr ptr)
 * @wr_ptr_line_count:	current line within pp fifo (wr ptr)
 * @intf_frame_count:	num frames read from intf
 */
 */
struct sde_hw_pp_vsync_info {
struct sde_hw_pp_vsync_info {
	u32 pp_idx;
	u32 pp_idx;
@@ -688,6 +689,7 @@ struct sde_hw_pp_vsync_info {
	u32 rd_ptr_frame_count;
	u32 rd_ptr_frame_count;
	u32 rd_ptr_line_count;
	u32 rd_ptr_line_count;
	u32 wr_ptr_line_count;
	u32 wr_ptr_line_count;
	u32 intf_frame_count;
};
};


#endif  /* _SDE_HW_MDSS_H */
#endif  /* _SDE_HW_MDSS_H */