diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2013-01-12 18:58:19 +0000 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2013-01-12 18:58:19 +0000 |
commit | 0946a1e0f2c7c6491f87276cfadab5e9492313c6 (patch) | |
tree | 42a6b389fd3e444c9a4544ecd13bff8da50cbb62 /firmware/target/arm/imx233/lcdif-imx233.c | |
parent | 2ef7a549d57c984fee2cd26fbaa70bbfa054dfb4 (diff) | |
download | rockbox-0946a1e0f2c7c6491f87276cfadab5e9492313c6.tar.gz rockbox-0946a1e0f2c7c6491f87276cfadab5e9492313c6.zip |
imx233: enable underflow recovery in lcdif (needed for freq scale)
When chaging the cpu and memory frequency we need to disable the
external memory interface (EMI) for a small time. This can
underflow the dma and cause some breakage. Hopefully the SSP
controller handles this gracefully by stopping the clock and the
I2C probably handles this naturally because the clock can be
streched anyway. However the LCDIF has a special setting for this
which needs to be enable, otherwise it will send garbage to the
LCD. No other block is known to suffer from this currently but
this issue might have more unexpected consequences.
Change-Id: Ide154cad87929f2bf6cc419ac1d2ff33e30eec66
Diffstat (limited to 'firmware/target/arm/imx233/lcdif-imx233.c')
-rw-r--r-- | firmware/target/arm/imx233/lcdif-imx233.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/lcdif-imx233.c b/firmware/target/arm/imx233/lcdif-imx233.c index 285c2801ad..ad0931de40 100644 --- a/firmware/target/arm/imx233/lcdif-imx233.c +++ b/firmware/target/arm/imx233/lcdif-imx233.c | |||
@@ -23,6 +23,14 @@ | |||
23 | static unsigned lcdif_word_length = 0; | 23 | static unsigned lcdif_word_length = 0; |
24 | static unsigned lcdif_byte_packing = 0; | 24 | static unsigned lcdif_byte_packing = 0; |
25 | 25 | ||
26 | void imx233_lcdif_enable_underflow_recover(bool enable) | ||
27 | { | ||
28 | if(enable) | ||
29 | __REG_SET(HW_LCDIF_CTRL1) = HW_LCDIF_CTRL1__RECOVER_ON_UNDERFLOW; | ||
30 | else | ||
31 | __REG_CLR(HW_LCDIF_CTRL1) = HW_LCDIF_CTRL1__RECOVER_ON_UNDERFLOW; | ||
32 | } | ||
33 | |||
26 | void imx233_lcdif_enable_bus_master(bool enable) | 34 | void imx233_lcdif_enable_bus_master(bool enable) |
27 | { | 35 | { |
28 | if(enable) | 36 | if(enable) |