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

Aguirre, Sergio
2010-03-05T15:19:47Z

Hi Ville,

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of ville.syrjala@nokia.com
> Sent: Friday, March 05, 2010 7:26 AM
> To: Tomi Valkeinen
> Cc: linux-fbdev@vger.kernel.org; linux-omap@vger.kernel.org; Ville Syrjälä
> Subject: [PATCH 4/4] DSS2: clear spurious SYNC_LOST_DIGIT interrupts
>
> From: Ville Syrjälä <ville.syrjala@nokia.com>
>
> 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@nokia.com>
> ---
> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html