mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 05:05:20 -05:00
Samsung YH920 LCD
Remove unused lcd_mono_data Replace a loop in partial update function by asm lcd_write_data() Remove a variable only used in this loop (x) and rename x0 to x git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22888 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
22933cc19c
commit
fcc6a68c6e
2 changed files with 4 additions and 41 deletions
|
|
@ -56,41 +56,6 @@ lcd_write_data:
|
|||
.size lcd_write_data,.-lcd_write_data
|
||||
|
||||
|
||||
.global lcd_mono_data
|
||||
.type lcd_mono_data,%function
|
||||
|
||||
lcd_mono_data:
|
||||
stmfd sp!, {r4, lr}
|
||||
ldr lr, =LCD1_BASE
|
||||
ldr r12, =lcd_dibits
|
||||
|
||||
.mloop:
|
||||
ldrb r2, [r0], #1
|
||||
mov r3, r2, lsr #4
|
||||
ldrb r4, [r12, r3]
|
||||
|
||||
1:
|
||||
ldr r3, [lr]
|
||||
tst r3, #LCD1_BUSY_MASK
|
||||
bne 1b
|
||||
str r4, [lr, #0x10]
|
||||
|
||||
and r3, r2, #0x0f
|
||||
ldrb r4, [r12, r3]
|
||||
1:
|
||||
ldr r3, [lr]
|
||||
tst r3, #LCD1_BUSY_MASK
|
||||
bne 1b
|
||||
str r4, [lr, #0x10]
|
||||
|
||||
subs r1, r1, #1
|
||||
bne .mloop
|
||||
|
||||
ldmfd sp!, {r4, pc}
|
||||
|
||||
.size lcd_mono_data,.-lcd_mono_data
|
||||
|
||||
|
||||
.global lcd_grey_data
|
||||
.type lcd_grey_data,%function
|
||||
|
||||
|
|
|
|||
|
|
@ -237,11 +237,10 @@ void lcd_blit_grey_phase(unsigned char *values, unsigned char *phases,
|
|||
|
||||
/* Update a fraction of the display. */
|
||||
/* void lcd_update_rect(int, int, int, int) ICODE_ATTR; */
|
||||
void lcd_update_rect(int x0, int y, int width, int height)
|
||||
void lcd_update_rect(int x, int y, int width, int height)
|
||||
{
|
||||
const fb_data *addr;
|
||||
int ymax;
|
||||
int x = x0;
|
||||
|
||||
/* The Y coordinates have to work on even 8 pixel rows */
|
||||
ymax = (y + height-1) >> 2;
|
||||
|
|
@ -258,13 +257,12 @@ void lcd_update_rect(int x0, int y, int width, int height)
|
|||
for (; y <= ymax; y++)
|
||||
{
|
||||
lcd_write_reg(LCD_CNTL_PAGE, y);
|
||||
lcd_write_reg(LCD_CNTL_COLUMN, x0);
|
||||
lcd_write_reg(LCD_CNTL_COLUMN, x);
|
||||
|
||||
addr = &lcd_framebuffer[y][x0];
|
||||
addr = &lcd_framebuffer[y][x];
|
||||
|
||||
lcd_send_cmd(LCD_CNTL_DATA_WRITE);
|
||||
for (x = 0; x < width; x++)
|
||||
lcd_send_data(*addr++);
|
||||
lcd_write_data(addr, width);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue