static int __init gc_init(void) { /* check if hardware is available */ if (!cpu_is_omap447x()) return 0; /* Initialize context mutex. */ mutex_init(&mtx); /* Initialize interrupt completion. */ init_completion(&g_gccoreint); g_bb2d_dev = omap_hwmod_name_get_dev("bb2d"); if (g_bb2d_dev == NULL) { GCPRINT(NULL, 0, GC_MOD_PREFIX "cannot find bb2d_fck.\n", __func__, __LINE__); goto fail; } /* Initialize the command buffer. */ if (cmdbuf_init() != GCERR_NONE) { GCPRINT(NULL, 0, GC_MOD_PREFIX "failed to initialize command buffer.\n", __func__, __LINE__); goto fail; } /* Create debugfs entry */ g_debugRoot = debugfs_create_dir("gcx", NULL); if (g_debugRoot) gc_debug_init(g_debugRoot); mutex_init(&g_maplock); #if defined(CONFIG_HAS_EARLYSUSPEND) register_early_suspend(&early_suspend_info); #endif return platform_driver_register(&plat_drv); fail: return -EINVAL; }
void initallocate(void) { gc_debug_init(); atexit(printfinalstats); }