kernel_optimize_test/drivers/video/omap
Janusz Krzysztofik 256a804283 OMAPFB: LCDC: change update_mode to DISABLED when going suspend
I was observing the following error messages on my OMAP1 based Amstrad Delta
board when first changing from text to graphics mode or vice versa after the
LCD display had been blanked:
	omapfb omapfb: timeout waiting for FRAME DONE
with a followup error message while unblanking it back:
	omapfb omapfb: resetting (status 0xffffffb2,reset count 1)
As a visible result, image pixels happened to be shifted by a few bits,
giving wrong colors.

Examining the code, I found that this problem occures when an OMAP1 internal
LCD controller is disabled from omap_lcdc_suspend() and then a subsequent
omap_lcdc_setup_plane() calls disable_controller() again. This potentially
error provoking behaviour is triggered by the lcdc.update_mode flag being kept
at OMAP_AUTO_UPDATE, regardless of the controller and panel being suspended.

This patch tries to correct the problem by replacing both omap_lcdc_suspend()
and omap_lcdc_resume() function bodies with single calls to
omap_lcdc_set_update_mode() with a respective OMAP_UPDATE_DISABLE or
OMAP_AUTO_UPDATE argument. As a result, exactly the same lower level
operations are performed, with addition of changing the lcdc.update_mode flag
to a value better suited for the controller state. This prevents any further
calls to disable_controller() from omap_lcdc_setup_plane() while the display
is suspended.

Created against linux-2.6.34-rc7.
Tested on Amstrad Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
2010-06-15 10:17:19 +03:00
..
blizzard.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
dispc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dispc.h omapfb: dispc: allow multiple external IRQ handlers 2009-09-23 07:39:50 -07:00
hwa742.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
Kconfig OMAP: DSS2: omapfb driver 2009-12-09 12:12:44 +02:00
lcd_2430sdp.c mfd: Rename all twl4030_i2c* 2009-12-13 21:23:33 +01:00
lcd_ams_delta.c omapfb: lcd_ams_delta: add support for contrast control 2010-02-12 12:46:07 +02:00
lcd_apollon.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_h3.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_h4.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_htcherald.c video/omap: add __init/__exit macros to drivers/video/omap/lcd_htcherald.c 2010-01-11 14:45:25 +02:00
lcd_inn1510.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_inn1610.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_ldp.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
lcd_mipid.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lcd_omap2evm.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
lcd_omap3beagle.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
lcd_omap3evm.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
lcd_osk.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_overo.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
lcd_palmte.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_palmtt.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcd_palmz71.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00
lcdc.c OMAPFB: LCDC: change update_mode to DISABLED when going suspend 2010-06-15 10:17:19 +03:00
lcdc.h [ARM] omap: fix a load of "warning: symbol 'xxx' was not declared. Should it be static?" 2008-09-05 17:02:34 +01:00
Makefile omap1: Add board support and LCD for HTC Herald 2009-11-22 10:24:33 -08:00
omapfb_main.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
omapfb.h OMAP: OMAPFB: fix clk_get for RFBI 2010-01-11 13:33:09 +02:00
rfbi.c OMAP: OMAPFB: fix clk_get for RFBI 2010-01-11 13:33:09 +02:00
sossi.c OMAP: OMAPFB: split omapfb.h 2009-12-09 12:04:06 +02:00