static int gpu_context_init(struct kbase_device *kbdev) { struct exynos_context *platform; struct mali_base_gpu_core_props *core_props; platform = kmalloc(sizeof(struct exynos_context), GFP_KERNEL); if (platform == NULL) return -1; memset(platform, 0, sizeof(struct exynos_context)); kbdev->platform_context = (void *) platform; pkbdev = kbdev; mutex_init(&platform->gpu_clock_lock); mutex_init(&platform->gpu_dvfs_handler_lock); #ifdef CONFIG_MALI_DVFS_USER mutex_init(&platform->gpu_process_job_lock); #endif spin_lock_init(&platform->gpu_dvfs_spinlock); gpu_validate_attrib_data(platform); core_props = &(kbdev->gpu_props.props.core_props); core_props->gpu_freq_khz_min = platform->gpu_min_clock * 1000; core_props->gpu_freq_khz_max = platform->gpu_max_clock * 1000; kbdev->vendor_callbacks = (struct kbase_vendor_callbacks *)gpu_get_callbacks(); #ifdef CONFIG_MALI_EXYNOS_TRACE if (gpu_trace_init(kbdev) != 0) return -1; #endif return 0; }
static int gpu_context_init(struct kbase_device *kbdev) { struct exynos_context *platform; platform = kmalloc(sizeof(struct exynos_context), GFP_KERNEL); if (platform == NULL) return -1; memset(platform, 0, sizeof(struct exynos_context)); kbdev->platform_context = (void *) platform; pkbdev = kbdev; mutex_init(&platform->gpu_clock_lock); mutex_init(&platform->gpu_dvfs_handler_lock); spin_lock_init(&platform->gpu_dvfs_spinlock); gpu_validate_attrib_data(platform); return 0; }