当前位置: 首页>>代码示例>>C++>>正文


C++ register_pm_notifier函数代码示例

本文整理汇总了C++中register_pm_notifier函数的典型用法代码示例。如果您正苦于以下问题:C++ register_pm_notifier函数的具体用法?C++ register_pm_notifier怎么用?C++ register_pm_notifier使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了register_pm_notifier函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: gpu_notifier_init

int gpu_notifier_init(struct kbase_device *kbdev)
{
	struct exynos_context *platform = (struct exynos_context *)kbdev->platform_context;
	if (!platform)
		return -ENODEV;

	platform->voltage_margin = 0;
#ifdef CONFIG_EXYNOS_THERMAL
	exynos_gpu_add_notifier(&gpu_tmu_nb);
#endif /* CONFIG_EXYNOS_THERMAL */

#ifdef CONFIG_MALI_RT_PM
	if (register_pm_notifier(&gpu_pm_nb))
		return -1;
#endif /* CONFIG_MALI_RT_PM */

#ifdef CONFIG_CPU_IDLE
	if (register_pm_notifier(&gpu_lpc_nb))
		return -1;
#endif /* CONFIG_CPU_IDLE */

	pm_runtime_enable(kbdev->dev);

	return 0;
}
开发者ID:ColinIanKing,项目名称:m576,代码行数:25,代码来源:gpu_notifier.c

示例2: _mali_dev_platform_register

/** This function is called when Mali GPU device is initialized
 */
int _mali_dev_platform_register(void)
{
	int err;

#ifdef CONFIG_PM_RUNTIME
	set_mali_parent_power_domain((void *)&mali_gpu_device);
#endif

#ifdef CONFIG_PM_RUNTIME
	err = register_pm_notifier(&mali_pwr_notif_block);
	if (err)
	{
		return err;
	}
#endif

#if MALI_LICENSE_IS_GPL
	err = platform_device_register(&mali_gpu_device);
	if (!err) 
	{
		err = platform_driver_register(&mali_plat_driver);
		if (err)
		{
#ifdef CONFIG_PM_RUNTIME
			unregister_pm_notifier(&mali_pwr_notif_block);
#endif
			platform_device_unregister(&mali_gpu_device);
		}
	}
#endif

	return err;
}
开发者ID:ARMP,项目名称:ARMP-i9300,代码行数:35,代码来源:mali_kernel_pm.c

示例3: hisi_clkmbox_init

static int __init hisi_clkmbox_init(void)
{
	int ret = 0;

	mbox_clk = kzalloc(sizeof(*mbox_clk), GFP_KERNEL);
	if (!mbox_clk) {
		pr_err("[%s] fail to alloc mbox_clk!\n", __func__);
		ret = -ENOMEM;
		goto err;
	}

	/* get mailbox to communicate with lpm3 */
	mbox_clk->mbox = hisi_mbox_get(HISI_MAILBOX_RP_LPM3, NULL);
	if (!mbox_clk->mbox) {
		pr_err("[%s] fail to get mbox!\n", __func__);
		ret = -ENODEV;
		goto err_mbox;
	}

	mailbox_disable = 0;
	register_pm_notifier(&mailbox_pm_notif_block);

	return ret;

err_mbox:
	kfree(mbox_clk);
	mbox_clk = NULL;
err:
	return ret;
}
开发者ID:HuaweiHonor4C,项目名称:kernel_hi6210sft_mm,代码行数:30,代码来源:hisi-clk-mailbox.c

示例4: tegra_cpuidle_init

static int __init tegra_cpuidle_init(void)
{
	unsigned int cpu;
	int ret;

#ifdef CONFIG_PM_SLEEP
	tegra_pd_min_residency = tegra_cpu_lp2_min_residency();
	tegra_pg_exit_latency = tegra_cpu_power_good_time();
	tegra_pd_power_off_time = tegra_cpu_power_off_time();

	tegra_cpuidle_init_soc(&tegra_idle_ops);
#endif
	for_each_possible_cpu(cpu) {
		ret = tegra_cpuidle_register(cpu);
		if (ret) {
			pr_err("CPU%u: CPUidle registration failed\n",
				cpu);
			return ret;
		}
	}

#ifdef CONFIG_TEGRA_MC_DOMAINS
	work_on_cpu(0, pm_attach_cpuidle_work, NULL);
#endif
	register_pm_notifier(&tegra_cpuidle_pm_notifier);
	return 0;
}
开发者ID:1ee7,项目名称:linux_l4t_tx1,代码行数:27,代码来源:cpuidle.c

示例5: set_pm_notifier

static void set_pm_notifier(int mask)
{
	int ret = 0;
	bool val = (mask & KCOLLECT_SUSPEND_MASK) ? true : false;

	if (val) { // previous state is off, and now is on
		if (PRE_MASK_IS_OFF(KCOLLECT_SUSPEND_MASK, mask)) {
			ret = register_pm_notifier(&suspend_notifier);
			if (ret < 0) {
				pr_err("hw_kcollect %s : register_pm_notifier failed!\n", __func__);
			} else {
				pr_debug("hw_kcollect %s : register_pm_notifier\n", __func__);
			}
		}
	} else { // previous state is on, and now is off
		if (PRE_MASK_IS_ON(KCOLLECT_SUSPEND_MASK, mask)) {
			ret = unregister_pm_notifier(&suspend_notifier);
			if (ret < 0) {
				pr_err("hw_kcollect %s : unregister_pm_notifier failed!\n", __func__);
			} else {
				pr_debug("hw_kcollect %s : unregister_pm_notifier\n", __func__);
			}
		}
	}
}
开发者ID:Machiry,项目名称:android_kernel_huawei_hi6210sft,代码行数:25,代码来源:hw_kcollect.c

示例6: exynos5_manta_battery_late_init

static int __init exynos5_manta_battery_late_init(void)
{
	int ret;
	struct usb_phy *usb_xceiv;

	ret = power_supply_register(NULL, &manta_battery_psy);
	if (ret)
		pr_err("%s: failed to register power_supply\n",
		       __func__);

	ret = request_threaded_irq(gpio_to_irq(GPIO_OTG_VBUS_SENSE),
				   NULL, ta_int_intr,
				   IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING |
				   IRQF_ONESHOT, "usb_vbus", NULL);
	if (ret) {
		pr_err("%s: usb_vbus irq register failed, ret=%d\n",
		       __func__, ret);
	} else {
		ret = enable_irq_wake(gpio_to_irq(GPIO_OTG_VBUS_SENSE));
		if (ret)
			pr_warn("%s: failed to enable irq_wake for usb_vbus\n",
				__func__);
	}

	ret = request_threaded_irq(gpio_to_irq(GPIO_VBUS_POGO_5V), NULL,
				   ta_int_intr,
				   IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING |
				   IRQF_ONESHOT, "pogo_vbus", NULL);
	if (ret) {
		pr_err("%s: pogo_vbus irq register failed, ret=%d\n",
		       __func__, ret);
	} else {
		ret = enable_irq_wake(gpio_to_irq(GPIO_VBUS_POGO_5V));
		if (ret)
			pr_warn("%s: failed to enable irq_wake for pogo_vbus\n",
				__func__);
	}

	ret = register_pm_notifier(&exynos5_manta_battery_pm_notifier_block);
	if (ret)
		pr_warn("%s: failed to register PM notifier; ret=%d\n",
			__func__, ret);

	usb_xceiv = usb_get_transceiver();

	if (!usb_xceiv) {
		pr_err("%s: No USB transceiver found\n", __func__);
	} else {
		ret = usb_register_notifier(usb_xceiv, &manta_bat_usb_nb);

		if (ret) {
			pr_err("%s: usb_register_notifier on transceiver %s failed\n",
			       __func__, dev_name(usb_xceiv->dev));
		}
	}

	/* get initial charger status */
	change_charger_status(false, false);
	return 0;
}
开发者ID:advx9600,项目名称:kernel-4.4-RuiEr,代码行数:60,代码来源:board-manta-battery.c

示例7: ssm_enable

static int ssm_enable(struct ssm_data *sd)
{
	int rc;

	dev_dbg(sd->dev, "%s\n", __func__);

	mutex_lock(&sd->lock);

	if (sd->enabled) {
		dev_err(sd->dev, "%s: Already enabled!\n", __func__);
		rc = -EINVAL;
		goto exit;
	}

	rc = register_pm_notifier(&sd->pm_notifier);
	if (rc) {
		dev_err(sd->dev, "%s: Failed to register pm_notifier (%d)\n",
			__func__, rc);
		goto exit;
	}

	register_early_suspend(&sd->early_suspend);

	sd->notify_next_suspend_prepare = false;
	sd->notify_late_resume = false;
	sd->enabled = true;

exit:
	mutex_unlock(&sd->lock);
	return rc;
}
开发者ID:1n,项目名称:xperia-m-source,代码行数:31,代码来源:sony_ssm.c

示例8: cmdq_init

static int __init cmdq_init(void)
{
	int status;

	CMDQ_MSG("CMDQ driver init begin\n");

	/* Initialize group callback */
	cmdqCoreInitGroupCB();

	/* Register MDP callback */
	cmdqCoreRegisterCB(CMDQ_GROUP_MDP,
			   cmdqMdpClockOn, cmdqMdpDumpInfo, cmdqMdpResetEng, cmdqMdpClockOff);

	/* Register VENC callback */
	cmdqCoreRegisterCB(CMDQ_GROUP_VENC, NULL, cmdqVEncDumpInfo, NULL, NULL);

	status = platform_driver_register(&gCmdqDriver);
	if (0 != status) {
		CMDQ_ERR("Failed to register the CMDQ driver(%d)\n", status);
		return -ENODEV;
	}

	/* register pm notifier */
	status = register_pm_notifier(&cmdq_pm_notifier_block);
	if (0 != status) {
		CMDQ_ERR("Failed to register_pm_notifier(%d)\n", status);
		return -ENODEV;
	}

	CMDQ_MSG("CMDQ driver init end\n");

	return 0;
}
开发者ID:nxglabs,项目名称:mt6735-kernel-3.10.61,代码行数:33,代码来源:cmdq_driver.c

示例9: cbp_init

static int __init cbp_init(void)
{
	int ret;

	ret = platform_device_register(&cbp_device);
	if (ret) {
		LOGPRT(LOG_ERR,  "platform_device_register failed\n");
		goto err_platform_device_register;
	}

	ret = platform_driver_register(&cbp_driver);
	if (ret) {
		LOGPRT(LOG_ERR,  "platform_driver_register failed\n");
		goto err_platform_driver_register;
	}


   ret = register_pm_notifier(&cbp_pm_notifier_block);
   if (ret) {
       LOGPRT(LOG_ERR,  "%s failed to register PM notifier\n", __func__);
       goto err_platform_driver_register;
   }else{
       LOGPRT(LOG_ERR,  "%s sucess to register PM notifier\n", __func__);
    }


	return ret;
err_platform_driver_register:
	platform_device_unregister(&cbp_device);
err_platform_device_register:
	return ret;
}
开发者ID:Jlsmily,项目名称:android_kernel_meilan2,代码行数:32,代码来源:cbp_sdio.c

示例10: ledtrig_sleep_init

static int __init ledtrig_sleep_init(void)
{
	led_trigger_register_simple("sleep", &ledtrig_sleep);
	register_pm_notifier(&ledtrig_sleep_pm_notifier);
	register_early_suspend(&ledtrig_sleep_early_suspend_handler);
	return 0;
}
开发者ID:debugevery,项目名称:android-kernel-samsung-dev,代码行数:7,代码来源:ledtrig-sleep.c

示例11: gpu_notifier_init

int gpu_notifier_init(struct kbase_device *kbdev)
{
	struct exynos_context *platform = (struct exynos_context *)kbdev->platform_context;
	if (!platform)
		return -ENODEV;

	platform->voltage_margin = 0;
#if defined(CONFIG_EXYNOS_THERMAL) && defined(CONFIG_GPU_THERMAL)
	exynos_gpu_add_notifier(&gpu_tmu_nb);
#endif /* CONFIG_EXYNOS_THERMAL */

#ifdef CONFIG_MALI_RT_PM
	if (register_pm_notifier(&gpu_pm_nb))
		return -1;
#endif /* CONFIG_MALI_RT_PM */

#ifdef CONFIG_EXYNOS_BUSMONITOR
	busmon_notifier_chain_register(&gpu_noc_nb);
#endif
	pm_runtime_enable(kbdev->dev);

	platform->power_status = true;

	return 0;
}
开发者ID:MukeshMM,项目名称:android_kernel_samsung_j2lte,代码行数:25,代码来源:gpu_notifier.c

示例12: omap_dss_probe

static int __init omap_dss_probe(struct platform_device *pdev)
{
	struct omap_dss_board_info *pdata = pdev->dev.platform_data;
	int r;

	core.pdev = pdev;

	dss_features_init(omapdss_get_version());

	r = dss_initialize_debugfs();
	if (r)
		goto err_debugfs;

	if (def_disp_name)
		core.default_display_name = def_disp_name;
	else if (pdata->default_display_name)
		core.default_display_name = pdata->default_display_name;
	else if (pdata->default_device)
		core.default_display_name = pdata->default_device->name;

	register_pm_notifier(&omap_dss_pm_notif_block);

	return 0;

err_debugfs:

	return r;
}
开发者ID:020gzh,项目名称:linux,代码行数:28,代码来源:core.c

示例13: tegra_cpuidle_init

static int __init tegra_cpuidle_init(void)
{
	unsigned int cpu;
	int ret;

	ret = cpuidle_register_driver(&tegra_idle);
	if (ret)
		return ret;

#ifdef CONFIG_PM_SLEEP
	tegra_lp2_min_residency = tegra_cpu_lp2_min_residency();
	tegra_lp2_exit_latency = tegra_cpu_power_good_time();
	tegra_lp2_power_off_time = tegra_cpu_power_off_time();

	ret = tegra_cpudile_init_soc();
	if (ret)
		return ret;
#endif

	for_each_possible_cpu(cpu) {
		if (tegra_cpuidle_register_device(cpu))
			pr_err("CPU%u: error initializing idle loop\n", cpu);
	}

	register_pm_notifier(&tegra_cpuidle_pm_notifier);
	return 0;
}
开发者ID:kozmikkick,项目名称:eternityprj-kernel-endeavoru-128,代码行数:27,代码来源:cpuidle.c

示例14: gpu_notifier_init

int gpu_notifier_init(struct kbase_device *kbdev)
{
	struct exynos_context *platform = (struct exynos_context *)kbdev->platform_context;
	if (!platform)
		return -ENODEV;

	platform->voltage_margin = 0;
#if defined(CONFIG_EXYNOS_THERMAL)
	exynos_gpu_add_notifier(&gpu_tmu_nb);
	platform->tmu_status = true;
#else /* CONFIG_EXYNOS_THERMAL */
	platform->tmu_status = false;
#endif /* CONFIG_EXYNOS_THERMAL */

#ifdef CONFIG_MALI_MIDGARD_RT_PM
	if (register_pm_notifier(&gpu_pm_nb))
		return MALI_FALSE;
#endif /* CONFIG_MALI_MIDGARD_RT_PM */

	pm_runtime_enable(kbdev->dev);

	pm_qos_add_notifier(PM_QOS_GPU_FREQ_MIN, &exynos_gpu_min_qos_notifier);
	pm_qos_add_notifier(PM_QOS_GPU_FREQ_MAX, &exynos_gpu_max_qos_notifier);

	return MALI_TRUE;
}
开发者ID:akvaro,项目名称:android_kernel_meizu_mx4pro,代码行数:26,代码来源:gpu_notifier.c

示例15: _mali_dev_platform_register

/** This function is called when Mali GPU device is initialized
 */
int _mali_dev_platform_register(void)
{
	int err;
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON	
	set_mali_parent_power_domain((void *)&mali_gpu_device);
#endif

#ifdef CONFIG_PM_RUNTIME
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
	err = register_pm_notifier(&mali_pwr_notif_block);
	if (err)
	{
		return err;
	}
#endif /* MALI_PMM_RUNTIME_JOB_CONTROL_ON */
#endif /* CONFIG_PM_RUNTIME */
	err = platform_device_register(&mali_gpu_device);
	lock = _mali_osk_lock_init((_mali_osk_lock_flags_t)( _MALI_OSK_LOCKFLAG_READERWRITER | _MALI_OSK_LOCKFLAG_ORDERED), 0, 0);
	if (!err) 
	{
		err = platform_driver_register(&mali_plat_driver);
		if (err)
		{
			_mali_osk_lock_term(lock);
#ifdef CONFIG_PM_RUNTIME
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
			unregister_pm_notifier(&mali_pwr_notif_block);
#endif /* MALI_PMM_RUNTIME_JOB_CONTROL_ON */
#endif /* CONFIG_PM_RUNTIME */
			platform_device_unregister(&mali_gpu_device);
		}
	}
	return err;
}
开发者ID:abazad,项目名称:rockchip-rk3188-generic,代码行数:36,代码来源:mali_kernel_pm.c


注:本文中的register_pm_notifier函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。