static int __devinit gpu_remove(struct platform_device *pdev)
{
    gcmkHEADER();
#if MRVL_CONFIG_USE_PM_RUNTIME
    pm_runtime_put_sync(&pdev->dev);
    pm_runtime_disable(&pdev->dev);
#endif

#if MRVL_CONFIG_ENABLE_GPUFREQ
    __disable_gpufreq(galDevice);
#endif

    remove_gc_sysfs_file(pdev);

    drv_exit();

#if MRVL_CONFIG_ENABLE_EARLYSUSPEND
    unregister_early_suspend(&gpu_early_suspend_handler);
#endif

#if MRVL_CONFIG_PROC
    remove_gc_proc_file();
#endif

    gcmkFOOTER_NO();
    return 0;
}
static int __devexit gpu_remove(struct platform_device *pdev)
#endif
{
    gcmkHEADER();
    drv_exit();
    gcmkFOOTER_NO();
    return 0;
}
static int __devinit gpu_remove(struct platform_device *pdev)
{
    gcmkHEADER();
    drv_exit();
#ifdef CONFIG_G2D
    clk_put(g2d_core_clk);
    clk_put(g2d_axi_clkhb);
    clk_put(g2d_cfg_clk);
#endif
    gcmkFOOTER_NO();
    return 0;
}
Пример #4
0
static int __devexit gpu_remove(struct platform_device *pdev)
#endif
{
    gcmkHEADER();

    drv_exit();

    if (platform.ops->putPower)
    {
        platform.ops->putPower(&platform);
    }

    gcmkFOOTER_NO();
    return 0;
}
Пример #5
0
static int __devexit gpu_remove(struct platform_device *pdev)
#endif
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
	gckGALDEVICE device = platform_get_drvdata(pdev);
	struct contiguous_mem_pool *pool = device->pool;
#endif
    gcmkHEADER();
#if gcdENABLE_FSCALE_VAL_ADJUST
    if(galDevice->kernels[gcvCORE_MAJOR])
        UNREG_THERMAL_NOTIFIER(&thermal_hot_pm_notifier);
#endif
    drv_exit();
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
	dma_free_attrs(&pdev->dev, pool->size, pool->virt, pool->phys,
		       &pool->attrs);
#endif
    gcmkFOOTER_NO();
    return 0;
}
Пример #6
0
/*
 *  ======== api_exit ========
 */
void api_exit(void)
{
	DBC_REQUIRE(api_c_refs > 0);
	api_c_refs--;

	if (api_c_refs == 0) {
		/* Release all modules initialized in api_init(). */
		cod_exit();
		dev_exit();
		chnl_exit();
		msg_exit();
		io_exit();
		strm_exit();
		disp_exit();
		node_exit();
		proc_exit();
		mgr_exit();
		rmm_exit();
		drv_exit();
	}
	DBC_ENSURE(api_c_refs >= 0);
}
Пример #7
0
/*
 *  ======== api_init ========
 *  Purpose:
 *      Module initialization used by Bridge API.
 */
bool api_init(void)
{
	bool ret = true;
	bool fdrv, fdev, fcod, fchnl, fmsg, fio;
	bool fmgr, fproc, fnode, fdisp, fstrm, frmm;

	if (api_c_refs == 0) {
		/* initialize driver and other modules */
		fdrv = drv_init();
		fmgr = mgr_init();
		fproc = proc_init();
		fnode = node_init();
		fdisp = disp_init();
		fstrm = strm_init();
		frmm = rmm_init();
		fchnl = chnl_init();
		fmsg = msg_mod_init();
		fio = io_init();
		fdev = dev_init();
		fcod = cod_init();
		ret = fdrv && fdev && fchnl && fcod && fmsg && fio;
		ret = ret && fmgr && fproc && frmm;
		if (!ret) {
			if (fdrv)
				drv_exit();

			if (fmgr)
				mgr_exit();

			if (fstrm)
				strm_exit();

			if (fproc)
				proc_exit();

			if (fnode)
				node_exit();

			if (fdisp)
				disp_exit();

			if (fchnl)
				chnl_exit();

			if (fmsg)
				msg_exit();

			if (fio)
				io_exit();

			if (fdev)
				dev_exit();

			if (fcod)
				cod_exit();

			if (frmm)
				rmm_exit();

		}
	}
	if (ret)
		api_c_refs++;

	return ret;
}