diff options
| -rw-r--r-- | drivers/video/fbdev/omap2/dss/dispc.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/video/fbdev/omap2/dss/dispc.c b/drivers/video/fbdev/omap2/dss/dispc.c index 6b056d0ce187..f4fc77d9d3bf 100644 --- a/drivers/video/fbdev/omap2/dss/dispc.c +++ b/drivers/video/fbdev/omap2/dss/dispc.c @@ -1328,8 +1328,18 @@ static void dispc_init_mflag(void)  {  	int i; +	/* +	 * HACK: NV12 color format and MFLAG seem to have problems working +	 * together: using two displays, and having an NV12 overlay on one of +	 * the displays will cause underflows/synclosts when MFLAG_CTRL=2. +	 * Changing MFLAG thresholds and PRELOAD to certain values seem to +	 * remove the errors, but there doesn't seem to be a clear logic on +	 * which values work and which not. +	 * +	 * As a work-around, set force MFLAG to always on. +	 */  	dispc_write_reg(DISPC_GLOBAL_MFLAG_ATTRIBUTE, -		(2 << 0) |	/* MFLAG_CTRL = enable */ +		(1 << 0) |	/* MFLAG_CTRL = force always on */  		(0 << 2));	/* MFLAG_START = disable */  	for (i = 0; i < dss_feat_get_num_ovls(); ++i) {  | 
