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/rk27xx | |
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/rk27xx')
-rw-r--r-- | firmware/target/arm/rk27xx/lcdif-rk27xx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/firmware/target/arm/rk27xx/lcdif-rk27xx.c b/firmware/target/arm/rk27xx/lcdif-rk27xx.c index e6af0d978a..618b476480 100644 --- a/firmware/target/arm/rk27xx/lcdif-rk27xx.c +++ b/firmware/target/arm/rk27xx/lcdif-rk27xx.c | |||
@@ -198,9 +198,10 @@ static void create_llp(int x, int y, int width, int height) | |||
198 | 198 | ||
199 | width = width>>1; | 199 | width = width>>1; |
200 | 200 | ||
201 | void* (*fbaddr)(int x, int y) = FB_CURRENTVP_BUFFER->get_address_fn; | ||
201 | /* build LLPs */ | 202 | /* build LLPs */ |
202 | for (i=0; i<height; i++) | 203 | for (i=0; i<height; i++) |
203 | llp_setup((void *)FBADDR(x,y+i), | 204 | llp_setup((void *)fbaddr(x,y+i), |
204 | (void*)(LCD_BUFF+((i%4)*4*width)), | 205 | (void*)(LCD_BUFF+((i%4)*4*width)), |
205 | &(scr_llp[i]), | 206 | &(scr_llp[i]), |
206 | width); | 207 | width); |