void TVDVT_update_src(void) { static char data = 0x10; memset(src_buf_va, data++, BUFFER_SIZE); __cpuc_flush_user_all(); outer_clean_all(); }
void TVDVT_prepare_source(unsigned int src_pa) { //static char data = 0x10; //memset(src_buf_va, data++, BUFFER_SIZE); __cpuc_flush_user_all(); outer_clean_all(); LCD_CHECK_RET(LCD_LayerSetAddress(LCD_LAYER_0, src_pa)); }
void g2d_drv_run(g2d_context_t *g2d_ctx) { #ifdef G2D_PROFILE struct timeval t1, t2; do_gettimeofday(&t1); #endif HARD_RESET_G2D_ENGINE; REG_G2D_MODE_CON = 0; REG_G2D_ROI_CON = 0; REG_G2D_SLOW_DOWN = 0x00400000; REG_G2D_IRQ |= G2D_IRQ_ENABLE_BIT; _g2d_drv_set_dst_info(g2d_ctx); if (g2d_ctx->flag & G2D_FLAG_MIRROR_FRONT_FB) _g2d_drv_set_mirror_fb(g2d_ctx); else if (g2d_ctx->flag & G2D_FLAG_AFFINE_TRANSFORM) _g2d_drv_set_affine_info(g2d_ctx); else _g2d_drv_set_bitblt_info(g2d_ctx); _g2d_drv_set_roi_info(g2d_ctx); #ifdef G2D_PROFILE do_gettimeofday(&t2); G2D_DBG("register config time (%u)\n", (t2.tv_sec - t1.tv_sec) * 1000000 + (t2.tv_usec - t1.tv_usec)); #endif if (g2d_ctx->cache_clean) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) on_each_cpu(per_cpu_cache_flush, NULL, 1); #else on_each_cpu(per_cpu_cache_flush, NULL, 0, 1); #endif #ifdef CONFIG_OUTER_CACHE outer_clean_all(); #endif } START_G2D_ENGINE; }
static void exynos_mem_paddr_cache_clean(dma_addr_t start, size_t length) { if (length > (size_t) L2_FLUSH_ALL) { flush_cache_all(); /* L1 */ smp_call_function((smp_call_func_t)__cpuc_flush_kern_all, NULL, 1); outer_clean_all(); /* L2 */ } else if (length > (size_t) L1_FLUSH_ALL) { dma_addr_t end = start + length - 1; flush_cache_all(); /* L1 */ smp_call_function((smp_call_func_t)__cpuc_flush_kern_all, NULL, 1); outer_clean_range(start, end); /* L2 */ } else { dma_addr_t end = start + length - 1; dmac_flush_range(phys_to_virt(start), phys_to_virt(end)); outer_clean_range(start, end); /* L2 */ } }