summaryrefslogtreecommitdiff
path: root/firmware/target/arm/iriver/h10/lcd-h10_5gb.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/iriver/h10/lcd-h10_5gb.c')
-rw-r--r--firmware/target/arm/iriver/h10/lcd-h10_5gb.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/firmware/target/arm/iriver/h10/lcd-h10_5gb.c b/firmware/target/arm/iriver/h10/lcd-h10_5gb.c
index 7555c566f0..8972fd1e9c 100644
--- a/firmware/target/arm/iriver/h10/lcd-h10_5gb.c
+++ b/firmware/target/arm/iriver/h10/lcd-h10_5gb.c
@@ -74,6 +74,13 @@ static inline void lcd_send_data(unsigned v)
74 LCD2_PORT = LCD2_DATA_MASK | (v & 0xff); 74 LCD2_PORT = LCD2_DATA_MASK | (v & 0xff);
75} 75}
76 76
77/* Write value to register */
78static void lcd_write_reg(int reg, int val)
79{
80 lcd_send_cmd(reg);
81 lcd_send_data(val);
82}
83
77 84
78/*** hardware configuration ***/ 85/*** hardware configuration ***/
79 86
@@ -150,17 +157,14 @@ void lcd_yuv_blit(unsigned char * const src[3],
150 y1 = y + height - 1; 157 y1 = y + height - 1;
151 158
152 /* max horiz << 8 | start horiz */ 159 /* max horiz << 8 | start horiz */
153 lcd_send_cmd(R_HORIZ_RAM_ADDR_POS); 160 lcd_write_reg(R_HORIZ_RAM_ADDR_POS, (x1 << 8) | x0);
154 lcd_send_data((x1 << 8) | x0); 161
155
156 /* max vert << 8 | start vert */ 162 /* max vert << 8 | start vert */
157 lcd_send_cmd(R_VERT_RAM_ADDR_POS); 163 lcd_write_reg(R_VERT_RAM_ADDR_POS, (y1 << 8) | y0);
158 lcd_send_data((y1 << 8) | y0);
159 164
160 /* start vert << 8 | start horiz */ 165 /* start vert << 8 | start horiz */
161 lcd_send_cmd(R_RAM_ADDR_SET); 166 lcd_write_reg(R_RAM_ADDR_SET, (y0 << 8) | x0);
162 lcd_send_data((y0 << 8) | x0); 167
163
164 /* start drawing */ 168 /* start drawing */
165 lcd_send_cmd(R_WRITE_DATA_2_GRAM); 169 lcd_send_cmd(R_WRITE_DATA_2_GRAM);
166 170
@@ -320,16 +324,13 @@ void lcd_update_rect(int x0, int y0, int width, int height)
320 } 324 }
321 325
322 /* max horiz << 8 | start horiz */ 326 /* max horiz << 8 | start horiz */
323 lcd_send_cmd(R_HORIZ_RAM_ADDR_POS); 327 lcd_write_reg(R_HORIZ_RAM_ADDR_POS, (x1 << 8) | x0);
324 lcd_send_data((x1 << 8) | x0);
325 328
326 /* max vert << 8 | start vert */ 329 /* max vert << 8 | start vert */
327 lcd_send_cmd(R_VERT_RAM_ADDR_POS); 330 lcd_write_reg(R_VERT_RAM_ADDR_POS, (y1 << 8) | y0);
328 lcd_send_data((y1 << 8) | y0);
329 331
330 /* start vert << 8 | start horiz */ 332 /* start vert << 8 | start horiz */
331 lcd_send_cmd(R_RAM_ADDR_SET); 333 lcd_write_reg(R_RAM_ADDR_SET, (y0 << 8) | x0);
332 lcd_send_data((y0 << 8) | x0);
333 334
334 /* start drawing */ 335 /* start drawing */
335 lcd_send_cmd(R_WRITE_DATA_2_GRAM); 336 lcd_send_cmd(R_WRITE_DATA_2_GRAM);