Re: Problems with 3.4-rc5

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

-----Original Message-----
From: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
To: Joe Woodward <jw@xxxxxxxxxxxxxx>
Cc: Archit Taneja <a0393947@xxxxxx>, linux-omap@xxxxxxxxxxxxxxx
Date: Thu, 03 May 2012 11:28:41 +0300
Subject: Re: Problems with 3.4-rc5

> On Wed, 2012-05-02 at 13:46 +0100, Joe Woodward wrote:
> 
> > > > Secondly, I get the following when booted:
> > > > ...
> > > > [    4.701232] devtmpfs: mounted
> > > > [    4.704772] Freeing init memory: 168K
> > > > [    4.827301] omapdss DISPC error: FIFO UNDERFLOW on gfx,
> disabling
> > > the overlay
> > > > ...
> > > >
> > > 
> > > Could you add some dss debug prints? You can add "omapdss.debug=1
> > > debug" 
> > > in the bootargs to get that.
> > > 
> > > There was a feature called fifo merge added in 3.4, this might lead
> to 
> > > underflow, we had tested this using a DVI monitor on beagle but
> didn't 
> > > see any underflows.
> > > 
> > > Are you trying this out on 3.4 for the first time? What was the
> last 
> > > kernel revision on which you tested this and didn't see any issues?
> 
> Can you try the following changes (separately):
> 
> 
> diff --git a/drivers/video/omap2/dss/dispc.c
> b/drivers/video/omap2/dss/dispc.c
> index ee30937..aca4eb1 100644
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -1091,13 +1091,8 @@ void dispc_ovl_compute_fifo_thresholds(enum
> omap_plane plane,
>  	 * combined fifo size
>  	 */
>  
> -	if (dss_has_feature(FEAT_OMAP3_DSI_FIFO_BUG)) {
> -		*fifo_low = ovl_fifo_size - burst_size * 2;
> -		*fifo_high = total_fifo_size - burst_size;
> -	} else {
> -		*fifo_low = ovl_fifo_size - burst_size;
> -		*fifo_high = total_fifo_size - buf_unit;
> -	}
> +	*fifo_low = ovl_fifo_size - burst_size;
> +	*fifo_high = total_fifo_size - buf_unit;
>  }
>  
>  static void dispc_ovl_set_fir(enum omap_plane plane,
> 
> ---

The above patch fixes the problem (I no longer see any underflows).


> 
> diff --git a/drivers/video/omap2/dss/dispc.c
> b/drivers/video/omap2/dss/dispc.c
> index ee30937..d63f1a3 100644
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -1077,13 +1077,7 @@ void dispc_ovl_compute_fifo_thresholds(enum
> omap_plane plane,
>  	burst_size = dispc_ovl_get_burst_size(plane);
>  	ovl_fifo_size = dispc_ovl_get_fifo_size(plane);
>  
> -	if (use_fifomerge) {
> -		total_fifo_size = 0;
> -		for (i = 0; i < omap_dss_get_num_overlays(); ++i)
> -			total_fifo_size += dispc_ovl_get_fifo_size(i);
> -	} else {
> -		total_fifo_size = ovl_fifo_size;
> -	}
> +	total_fifo_size = ovl_fifo_size;
>  
>  	/*
>  	 * We use the same low threshold for both fifomerge and non-fifomerge
> 

The above patch has no effect (I still see underflows).

Both patches together results in slightly different behaviour, the display is still broken- 
it flickers on and off with occassional underflows before breaking completely.

Cheers,
Joe

>  Tomi
> 


--
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


[Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux