本文整理汇总了C++中register_pm_notifier函数的典型用法代码示例。如果您正苦于以下问题:C++ register_pm_notifier函数的具体用法?C++ register_pm_notifier怎么用?C++ register_pm_notifier使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了register_pm_notifier函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: swsusp_helper_init
static int __init swsusp_helper_init(void)
{
int ret;
hib_log("[%s] enter...\n", __func__);
/* init restore_noirq callback function table */
memset((void *)restore_noirq_func_table, 0, sizeof(restore_noirq_func_table));
ret = platform_device_register(&swsusp_helper_device);
if (ret) {
hib_err("swsusp_helper_device register fail(%d)\n", ret);
return ret;
}
ret = platform_driver_register(&swsusp_helper_driver);
if (ret) {
hib_err("swsusp_helper_driver register fail(%d)\n", ret);
return ret;
}
ret = register_pm_notifier(&swsusp_pm_notifier_block);
if (ret)
hib_err("failed to register PM notifier %d\n", ret);
initialized = 1;
return 0;
}
开发者ID:Jlsmily,项目名称:android_kernel_meilan2,代码行数:28,代码来源:mtk_hibernate_dpm.c
示例17: tegra_wdt_recovery_init
void __init tegra_wdt_recovery_init(void)
{
#ifdef CONFIG_PM
/* Register PM notifier. */
register_pm_notifier(&tegra_wdt_notify);
#endif
register_syscore_ops(&tegra_wdt_syscore_ops);
}
开发者ID:Feche,项目名称:android_kernel_motorola_olympus_oc,代码行数:8,代码来源:wdt-recovery.c
示例18: msm_pil_init
static int __init msm_pil_init(void)
{
int ret = msm_pil_debugfs_init();
if (ret)
return ret;
register_pm_notifier(&pil_pm_notifier);
return bus_register(&pil_bus_type);
}
开发者ID:0987363,项目名称:BMW-OpenSource,代码行数:8,代码来源:peripheral-loader.c
示例19: omap_die_governor_init
static int __init omap_die_governor_init(void)
{
struct thermal_dev *thermal_fw;
omap_gov = kzalloc(sizeof(struct omap_die_governor), GFP_KERNEL);
if (!omap_gov) {
pr_err("%s:Cannot allocate memory\n", __func__);
return -ENOMEM;
}
thermal_fw = kzalloc(sizeof(struct thermal_dev), GFP_KERNEL);
if (thermal_fw) {
thermal_fw->name = "omap_ondie_governor";
thermal_fw->domain_name = "cpu";
thermal_fw->dev_ops = &omap_gov_ops;
thermal_governor_dev_register(thermal_fw);
therm_fw = thermal_fw;
} else {
pr_err("%s: Cannot allocate memory\n", __func__);
kfree(omap_gov);
return -ENOMEM;
}
if (cpu_is_omap446x()) {
omap_gov->gradient_slope = OMAP_GRADIENT_SLOPE_4460;
omap_gov->gradient_const = OMAP_GRADIENT_CONST_4460;
omap_gov->gradient_slope_w_pcb = OMAP_GRADIENT_SLOPE_W_PCB_4460;
omap_gov->gradient_const_w_pcb = OMAP_GRADIENT_CONST_W_PCB_4460;
} else if (cpu_is_omap447x()) {
omap_gov->gradient_slope = OMAP_GRADIENT_SLOPE_4470;
omap_gov->gradient_const = OMAP_GRADIENT_CONST_4470;
omap_gov->gradient_slope_w_pcb = OMAP_GRADIENT_SLOPE_W_PCB_4470;
omap_gov->gradient_const_w_pcb = OMAP_GRADIENT_CONST_W_PCB_4470;
} else {
omap_gov->gradient_slope = 0;
omap_gov->gradient_const = 0;
omap_gov->gradient_slope_w_pcb = 0;
omap_gov->gradient_const_w_pcb = 0;
}
/* Init delayed work to average on-die temperature */
INIT_DELAYED_WORK(&omap_gov->average_cpu_sensor_work,
average_cpu_sensor_delayed_work_fn);
INIT_DELAYED_WORK(&omap_gov->decrease_mpu_freq_work,
decrease_mpu_freq_fn);
omap_gov->average_period = NORMAL_TEMP_MONITORING_RATE;
omap_gov->decrease_mpu_freq_period = DECREASE_MPU_FREQ_PERIOD;
omap_gov->avg_is_valid = 0;
if (register_pm_notifier(&omap_die_pm_notifier))
pr_err("%s: omap_die pm registration failed!\n", __func__);
schedule_delayed_work(&omap_gov->average_cpu_sensor_work,
msecs_to_jiffies(0));
return 0;
}
开发者ID:b7acc,项目名称:kernel_omap_bowser-common,代码行数:58,代码来源:omap_die_governor.c
示例20: mali_platform_device_register
int mali_platform_device_register(void)
{
int err;
MALI_DEBUG_PRINT(4, ("mali_platform_device_register() called\n"));
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)
exynos_pm_add_dev_to_genpd(&mali_gpu_device, &exynos4_pd_g3d);
#endif
/* Connect resources to the device */
err = platform_device_add_resources(&mali_gpu_device, mali_gpu_resources, sizeof(mali_gpu_resources) / sizeof(mali_gpu_resources[0]));
if (0 == err)
{
err = platform_device_add_data(&mali_gpu_device, &mali_gpu_data, sizeof(mali_gpu_data));
if (0 == err)
{
#ifdef CONFIG_PM_RUNTIME
#if defined(USE_PM_NOTIFIER)
err = register_pm_notifier(&mali_pwr_notif_block);
if (err)
{
goto plat_init_err;
}
#endif
#endif /* CONFIG_PM_RUNTIME */
/* Register the platform device */
err = platform_device_register(&mali_gpu_device);
if (0 == err)
{
mali_platform_init(&(mali_gpu_device.dev));
#ifdef CONFIG_PM_RUNTIME
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
pm_runtime_set_autosuspend_delay(&(mali_gpu_device.dev), 1000);
pm_runtime_use_autosuspend(&(mali_gpu_device.dev));
#endif
pm_runtime_enable(&(mali_gpu_device.dev));
#endif
return 0;
}
}
#ifdef CONFIG_PM_RUNTIME
#if defined(USE_PM_NOTIFIER)
plat_init_err:
unregister_pm_notifier(&mali_pwr_notif_block);
#endif
#endif /* CONFIG_PM_RUNTIME */
platform_device_unregister(&mali_gpu_device);
}
return err;
}
开发者ID:Ricky310711,项目名称:RTL_KERNEL,代码行数:56,代码来源:exynos4.c
注:本文中的register_pm_notifier函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论