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 START_G2D_ENGINE; }
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; }