summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2012-12-26 02:39:39 +0100
committerAmaury Pouly <amaury.pouly@gmail.com>2012-12-26 02:39:39 +0100
commit38878020d2d9c6756286b5fbcbe49c091df68c96 (patch)
tree3d3ba04b698e2ed3250d6ca8f317398ab89b4055 /firmware/target/arm
parent7fddc2327b8cee7ad8ce1a6d53fe66cde94a0edf (diff)
downloadrockbox-38878020d2d9c6756286b5fbcbe49c091df68c96.tar.gz
rockbox-38878020d2d9c6756286b5fbcbe49c091df68c96.zip
fuze+: make sure lcd is ready before chaning a register
The lcd driver does not wait for the refresh to be done to return from lcd_update(). This means that changing a register is unsafe if done in the middle of the redraw. This could happen when disabling the lcd for example. Make sure it doesn't happen by waiting for the lcdif to be ready. Change-Id: I43ec62a637dd61c3b2a3a6e131c1a9e8035524b1
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
index 85ab6cd365..9997deb270 100644
--- a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
+++ b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
@@ -208,6 +208,7 @@ static uint32_t i80_read_register(uint32_t data_out)
208static void lcd_write_reg(uint32_t reg, uint32_t data) 208static void lcd_write_reg(uint32_t reg, uint32_t data)
209{ 209{
210 uint32_t old_reg = reg; 210 uint32_t old_reg = reg;
211 imx233_lcdif_wait_ready();
211 /* get back to 18-bit word length */ 212 /* get back to 18-bit word length */
212 imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_18_BIT); 213 imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_18_BIT);
213 reg = encode_16_to_18(reg); 214 reg = encode_16_to_18(reg);