RE: [PATCH 4/4] DSS2: clear spurious SYNC_LOST_DIGIT interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ville,

> -----Original Message-----
> From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
> owner@xxxxxxxxxxxxxxx] On Behalf Of ville.syrjala@xxxxxxxxx
> Sent: Friday, March 05, 2010 7:26 AM
> To: Tomi Valkeinen
> Cc: linux-fbdev@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; Ville Syrjälä
> Subject: [PATCH 4/4] DSS2: clear spurious SYNC_LOST_DIGIT interrupts
> 
> From: Ville Syrjälä <ville.syrjala@xxxxxxxxx>
> 
> When DSS transitions from off mode to on VENC may generate a spurious
> SYNC_LOST_DIGIT error. Just ack it when restoring the context. Also
> restore IRQENABLE last to avoid triggering interrupts before the
> context is fully restored.

(Tomi or anyone can correct me if I'm wrong)

AFAIK, The solution for spurious interrupts is to flush posted bus writes during interrupt handling, which can be achieved by reading the same register just after you have written it.

Tomi, what do you think?

Regards,
Sergio

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxx>
> ---
>  drivers/video/omap2/dss/dispc.c |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/video/omap2/dss/dispc.c
> b/drivers/video/omap2/dss/dispc.c
> index e777e35..b8c1603 100644
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -335,7 +335,7 @@ void dispc_save_context(void)
>  void dispc_restore_context(void)
>  {
>  	RR(SYSCONFIG);
> -	RR(IRQENABLE);
> +	/*RR(IRQENABLE);*/
>  	/*RR(CONTROL);*/
>  	RR(CONFIG);
>  	RR(DEFAULT_COLOR0);
> @@ -472,6 +472,15 @@ void dispc_restore_context(void)
> 
>  	/* enable last, because LCD & DIGIT enable are here */
>  	RR(CONTROL);
> +
> +	/* clear spurious SYNC_LOST_DIGIT interrupts */
> +	dispc_write_reg(DISPC_IRQSTATUS, DISPC_IRQ_SYNC_LOST_DIGIT);
> +
> +	/*
> +	 * enable last so IRQs won't trigger before
> +	 * the context is fully restored
> +	 */
> +	RR(IRQENABLE);
>  }
> 
>  #undef SR
> --
> 1.6.4.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux