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/samsung/yh920/lcd-yh920.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/samsung/yh920/lcd-yh920.c')
-rw-r--r-- | firmware/target/arm/samsung/yh920/lcd-yh920.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/firmware/target/arm/samsung/yh920/lcd-yh920.c b/firmware/target/arm/samsung/yh920/lcd-yh920.c index 06aa3d718d..6a579f382a 100644 --- a/firmware/target/arm/samsung/yh920/lcd-yh920.c +++ b/firmware/target/arm/samsung/yh920/lcd-yh920.c | |||
@@ -253,13 +253,14 @@ void lcd_update_rect(int x, int y, int width, int height) | |||
253 | if(ymax >= LCD_FBHEIGHT) | 253 | if(ymax >= LCD_FBHEIGHT) |
254 | ymax = LCD_FBHEIGHT-1; | 254 | ymax = LCD_FBHEIGHT-1; |
255 | 255 | ||
256 | void* (*fbaddr)(int x, int y) = FB_CURRENTVP_BUFFER->get_address_fn; | ||
256 | /* Copy specified rectange bitmap to hardware */ | 257 | /* Copy specified rectange bitmap to hardware */ |
257 | for (; y <= ymax; y++) | 258 | for (; y <= ymax; y++) |
258 | { | 259 | { |
259 | lcd_write_reg(LCD_CNTL_PAGE, y); | 260 | lcd_write_reg(LCD_CNTL_PAGE, y); |
260 | lcd_write_reg(LCD_CNTL_COLUMN, x); | 261 | lcd_write_reg(LCD_CNTL_COLUMN, x); |
261 | 262 | ||
262 | addr = FBADDR(x,y); | 263 | addr = fbaddr(x,y); |
263 | 264 | ||
264 | lcd_send_cmd(LCD_CNTL_DATA_WRITE); | 265 | lcd_send_cmd(LCD_CNTL_DATA_WRITE); |
265 | lcd_write_data(addr, width); | 266 | lcd_write_data(addr, width); |