diff options
Diffstat (limited to 'firmware/target/mips')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c index a2d5b73ea8..d2a1d759d0 100644 --- a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c | |||
@@ -158,65 +158,3 @@ void lcd_update(void) | |||
158 | 158 | ||
159 | lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT); | 159 | lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT); |
160 | } | 160 | } |
161 | |||
162 | /* (Mis)use LCD framebuffer as a temporary buffer */ | ||
163 | void lcd_blit_yuv(unsigned char * const src[3], | ||
164 | int src_x, int src_y, int stride, | ||
165 | int x, int y, int width, int height) | ||
166 | { | ||
167 | unsigned char const * yuv_src[3]; | ||
168 | register off_t z; | ||
169 | |||
170 | if(!lcd_is_on) | ||
171 | return; | ||
172 | |||
173 | z = stride * src_y; | ||
174 | yuv_src[0] = src[0] + z + src_x; | ||
175 | yuv_src[1] = src[1] + (z >> 2) + (src_x >> 1); | ||
176 | yuv_src[2] = src[2] + (yuv_src[1] - src[1]); | ||
177 | |||
178 | commit_discard_dcache(); // XXX range | ||
179 | |||
180 | __cpm_start_ipu(); | ||
181 | |||
182 | IPU_STOP_IPU(); | ||
183 | IPU_RESET_IPU(); | ||
184 | IPU_CLEAR_END_FLAG(); | ||
185 | |||
186 | IPU_DISABLE_RSIZE(); | ||
187 | IPU_DISABLE_IRQ(); | ||
188 | |||
189 | IPU_SET_INFMT(INFMT_YUV420); | ||
190 | IPU_SET_OUTFMT(OUTFMT_RGB565); | ||
191 | |||
192 | IPU_SET_IN_FM(width, height); | ||
193 | IPU_SET_Y_STRIDE(stride); | ||
194 | IPU_SET_UV_STRIDE(stride, stride); | ||
195 | |||
196 | IPU_SET_Y_ADDR(PHYSADDR((unsigned long)yuv_src[0])); | ||
197 | IPU_SET_U_ADDR(PHYSADDR((unsigned long)yuv_src[1])); | ||
198 | IPU_SET_V_ADDR(PHYSADDR((unsigned long)yuv_src[2])); | ||
199 | IPU_SET_OUT_ADDR(PHYSADDR((unsigned long)FBADDR(y,x))); | ||
200 | |||
201 | IPU_SET_OUT_FM(height, width); | ||
202 | IPU_SET_OUT_STRIDE(height); | ||
203 | |||
204 | IPU_SET_CSC_C0_COEF(YUV_CSC_C0); | ||
205 | IPU_SET_CSC_C1_COEF(YUV_CSC_C1); | ||
206 | IPU_SET_CSC_C2_COEF(YUV_CSC_C2); | ||
207 | IPU_SET_CSC_C3_COEF(YUV_CSC_C3); | ||
208 | IPU_SET_CSC_C4_COEF(YUV_CSC_C4); | ||
209 | |||
210 | IPU_RUN_IPU(); | ||
211 | |||
212 | while(!(IPU_POLLING_END_FLAG()) && IPU_IS_ENABLED()); | ||
213 | |||
214 | IPU_CLEAR_END_FLAG(); | ||
215 | IPU_STOP_IPU(); | ||
216 | IPU_RESET_IPU(); | ||
217 | |||
218 | __cpm_stop_ipu(); | ||
219 | |||
220 | /* YUV speed is limited by LCD speed */ | ||
221 | lcd_update_rect(y, x, height, width); | ||
222 | } | ||