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

Commit 5bd828a5 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/sde: take spin lock around encoder vblank registration"

parents 542f9005 c5a1d2a4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -526,6 +526,7 @@ static int sde_encoder_phys_cmd_control_vblank_irq(
{
	struct sde_encoder_phys_cmd *cmd_enc =
		to_sde_encoder_phys_cmd(phys_enc);
	unsigned long lock_flags;
	int ret = 0;

	if (!phys_enc) {
@@ -541,6 +542,8 @@ static int sde_encoder_phys_cmd_control_vblank_irq(
			__builtin_return_address(0),
			enable, atomic_read(&phys_enc->vblank_refcount));

	spin_lock_irqsave(phys_enc->enc_spinlock, lock_flags);

	SDE_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0,
			enable, atomic_read(&phys_enc->vblank_refcount));

@@ -550,6 +553,8 @@ static int sde_encoder_phys_cmd_control_vblank_irq(
		ret = sde_encoder_helper_unregister_irq(phys_enc,
				INTR_IDX_RDPTR);

	spin_unlock_irqrestore(phys_enc->enc_spinlock, lock_flags);

end:
	if (ret)
		SDE_ERROR_CMDENC(cmd_enc,
+5 −0
Original line number Diff line number Diff line
@@ -476,6 +476,7 @@ static int sde_encoder_phys_vid_control_vblank_irq(
{
	int ret = 0;
	struct sde_encoder_phys_vid *vid_enc;
	unsigned long lock_flags;

	if (!phys_enc) {
		SDE_ERROR("invalid encoder\n");
@@ -492,6 +493,8 @@ static int sde_encoder_phys_vid_control_vblank_irq(
			__builtin_return_address(0),
			enable, atomic_read(&phys_enc->vblank_refcount));

	spin_lock_irqsave(phys_enc->enc_spinlock, lock_flags);

	SDE_EVT32(DRMID(phys_enc->parent), enable,
			atomic_read(&phys_enc->vblank_refcount));

@@ -501,6 +504,8 @@ static int sde_encoder_phys_vid_control_vblank_irq(
		ret = sde_encoder_helper_unregister_irq(phys_enc,
				INTR_IDX_VSYNC);

	spin_unlock_irqrestore(phys_enc->enc_spinlock, lock_flags);

	if (ret)
		SDE_ERROR_VIDENC(vid_enc,
				"control vblank irq error %d, enable %d\n",