diff options
author | William Wilgus <wilgus.william@gmail.com> | 2022-03-21 18:54:52 -0400 |
---|---|---|
committer | William Wilgus <wilgus.william@gmail.com> | 2022-03-21 23:53:48 -0400 |
commit | cfeeb7889d5346e2abaf9b198375df62c58b098f (patch) | |
tree | f9956033372abe7d8bffa4e04bef0662dfb0da02 /firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c | |
parent | 60e5786b481a26ca7c0c810d812bf5664a58cb44 (diff) | |
download | rockbox-cfeeb7889d5346e2abaf9b198375df62c58b098f.tar.gz rockbox-cfeeb7889d5346e2abaf9b198375df62c58b098f.zip |
Lcd save function pointer to frame buffer get_address_fn before loops
Calling multiple levels of indirection in a loop slows things down
Really these need to be rewritten to take a start and end address
like most of the rest of the codebase
But this is safer without having test hardware in hand
Change-Id: Idae7b92ee779d020ed7fcc9334e2d5a9c710e64d
Diffstat (limited to 'firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c')
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c b/firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c index c1bc379a49..ab4466300b 100644 --- a/firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c +++ b/firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c | |||
@@ -149,6 +149,8 @@ void lcd_update_rect(int x, int y, int w, int h) | |||
149 | lcd_write_reg(0x17, y | (y + h - 1) << 8); | 149 | lcd_write_reg(0x17, y | (y + h - 1) << 8); |
150 | lcd_write_reg(0x21, y * LCD_WIDTH + x); | 150 | lcd_write_reg(0x21, y * LCD_WIDTH + x); |
151 | lcd_write_reg(0x22, 0); | 151 | lcd_write_reg(0x22, 0); |
152 | |||
153 | void* (*fbaddr)(int x, int y) = FB_CURRENTVP_BUFFER->get_address_fn; | ||
152 | for(int yy = y; yy < y + h; yy++) | 154 | for(int yy = y; yy < y + h; yy++) |
153 | imx233_lcdif_pio_send(true, 2 * w, FBADDR(x, yy)); | 155 | imx233_lcdif_pio_send(true, 2 * w, fbaddr(x,yy)); |
154 | } | 156 | } |