本文整理汇总了C++中pm_runtime_suspend函数的典型用法代码示例。如果您正苦于以下问题:C++ pm_runtime_suspend函数的具体用法?C++ pm_runtime_suspend怎么用?C++ pm_runtime_suspend使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pm_runtime_suspend函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cyttsp4_debug_release
static int cyttsp4_debug_release(struct cyttsp4_device *ttsp)
{
struct device *dev = &ttsp->dev;
struct cyttsp4_debug_data *dd = dev_get_drvdata(dev);
int rc = 0;
dev_dbg(dev, "%s\n", __func__);
if (dev_get_drvdata(&ttsp->core->dev) == NULL) {
dev_err(dev, "%s: Error, core driver does not exist. "
"Unable to un-subscribe attention\n",
__func__);
goto cyttsp4_debug_release_exit;
}
rc = cyttsp4_unsubscribe_attention(ttsp, CY_ATTEN_IRQ,
cyttsp4_debug_attention, CY_MODE_OPERATIONAL);
if (rc < 0) {
dev_err(dev, "%s: Error, "
"could not un-subscribe attention\n",
__func__);
goto cyttsp4_debug_release_exit;
}
cyttsp4_debug_release_exit:
pm_runtime_suspend(dev);
pm_runtime_disable(dev);
device_remove_file(dev, &dev_attr_int_count);
dev_set_drvdata(dev, NULL);
kfree(dd);
return rc;
}
示例2: cyttsp4_proximity_release
static int cyttsp4_proximity_release(struct cyttsp4_device *ttsp)
{
struct device *dev = &ttsp->dev;
struct cyttsp4_proximity_data *pd = dev_get_drvdata(dev);
tp_log_debug("%s\n", __func__);
if (pd->input_device_registered) {
/* Disable proximity sensing */
mutex_lock(&pd->sysfs_lock);
if (pd->enable_count)
_cyttsp4_proximity_disable(pd, true);
mutex_unlock(&pd->sysfs_lock);
device_remove_file(dev, &dev_attr_enable);
input_unregister_device(pd->input);
} else {
input_free_device(pd->input);
cyttsp4_unsubscribe_attention(ttsp, CY_ATTEN_STARTUP,
cyttsp4_setup_input_attention, 0);
}
pm_runtime_suspend(dev);
pm_runtime_disable(dev);
dev_set_drvdata(dev, NULL);
kfree(pd);
return 0;
}
示例3: rvin_release
static int rvin_release(struct file *file)
{
struct rvin_dev *vin = video_drvdata(file);
bool fh_singular;
int ret;
mutex_lock(&vin->lock);
/* Save the singular status before we call the clean-up helper */
fh_singular = v4l2_fh_is_singular_file(file);
/* the release helper will cleanup any on-going streaming */
ret = _vb2_fop_release(file, NULL);
/*
* If this was the last open file.
* Then de-initialize hw module.
*/
if (fh_singular) {
pm_runtime_suspend(&vin->vdev.dev);
pm_runtime_disable(&vin->vdev.dev);
rvin_power_off(vin);
}
mutex_unlock(&vin->lock);
return ret;
}
示例4: cyttsp5_device_access_release
static int cyttsp5_device_access_release(struct cyttsp5_device *ttsp)
{
struct device *dev = &ttsp->dev;
struct cyttsp5_device_access_data *dad = dev_get_drvdata(dev);
pm_runtime_suspend(dev);
pm_runtime_disable(dev);
if (dad->sysfs_nodes_created) {
device_remove_file(dev, &dev_attr_command);
device_remove_file(dev, &dev_attr_status);
device_remove_file(dev, &dev_attr_response);
device_remove_file(dev, &dev_attr_responsestr);
#ifdef CONFIG_TCMD
device_remove_file(dev, &dev_attr_tcmdresponse);
device_remove_file(dev, &dev_attr_tcmdresponsesize);
device_remove_file(dev, &dev_attr_tcmdread_status);
#endif
#ifdef TTHE_TUNER_SUPPORT
debugfs_remove(dad->tthe_get_panel_data_debugfs);
#endif
} else {
cyttsp5_unsubscribe_attention(ttsp, CY_ATTEN_STARTUP,
cyttsp5_setup_sysfs_attention, 0);
}
dev_set_drvdata(dev, NULL);
kfree(dad);
return 0;
}
示例5: cyttsp4_debug_release
static int cyttsp4_debug_release(struct cyttsp4_device *ttsp)
{
struct device *dev = &ttsp->dev;
struct cyttsp4_debug_data *dd = dev_get_drvdata(dev);
int rc = 0;
tp_log_debug( "%s\n", __func__);
if (dev_get_drvdata(&ttsp->core->dev) == NULL) {
tp_log_err( "%s: Unable to un-subscribe attention\n",
__func__);
goto cyttsp4_debug_release_exit;
}
/* Unsubscribe from attentions */
cyttsp4_unsubscribe_attention(ttsp, CY_ATTEN_IRQ,
cyttsp4_debug_op_attention, CY_MODE_OPERATIONAL);
cyttsp4_unsubscribe_attention(ttsp, CY_ATTEN_IRQ,
cyttsp4_debug_cat_attention, CY_MODE_CAT);
cyttsp4_unsubscribe_attention(ttsp, CY_ATTEN_STARTUP,
cyttsp4_debug_startup_attention, 0);
cyttsp4_debug_release_exit:
pm_runtime_suspend(dev);
pm_runtime_disable(dev);
device_remove_file(dev, &dev_attr_int_count);
dev_set_drvdata(dev, NULL);
kfree(dd);
return rc;
}
示例6: cyttsp4_btn_release
static int cyttsp4_btn_release(struct cyttsp4_device *ttsp)
{
struct device *dev = &ttsp->dev;
struct cyttsp4_btn_data *bd = dev_get_drvdata(dev);
dev_dbg(dev, "%s\n", __func__);
#ifdef CONFIG_HAS_EARLYSUSPEND
/*
* This check is to prevent pm_runtime usage_count drop below zero
* because of removing the module while in suspended state
*/
if (bd->is_suspended)
pm_runtime_get_noresume(dev);
unregister_early_suspend(&bd->es);
#endif
if (bd->input_device_registered) {
input_unregister_device(bd->input);
} else {
input_free_device(bd->input);
cyttsp4_unsubscribe_attention(ttsp, CY_ATTEN_STARTUP,
cyttsp4_setup_input_attention, 0);
}
pm_runtime_suspend(dev);
pm_runtime_disable(dev);
dev_set_drvdata(dev, NULL);
kfree(bd);
return 0;
}
示例7: platform_pm_runtime_idle
int platform_pm_runtime_idle(struct device *dev)
{
ret = pm_runtime_suspend(dev);
dev_dbg(dev, "%s [%d]\n", __func__, ret);
return 0;
};
示例8: mmc_runtime_idle
static int mmc_runtime_idle(struct device *dev)
{
int ret;
DBG("[%s] s\n",__func__);
ret = pm_runtime_suspend(dev);
DBG("[%s] e\n",__func__);
/*return pm_runtime_suspend(dev);*/
return ret;
}
示例9: cyttsp5_device_access_probe
static int cyttsp5_device_access_probe(struct cyttsp5_device *ttsp)
{
struct device *dev = &ttsp->dev;
struct cyttsp5_device_access_data *dad;
struct cyttsp5_device_access_platform_data *pdata =
dev_get_platdata(dev);
int rc = 0;
dad = kzalloc(sizeof(*dad), GFP_KERNEL);
if (dad == NULL) {
dev_err(dev, "%s: Error, kzalloc\n", __func__);
rc = -ENOMEM;
goto cyttsp5_device_access_probe_data_failed;
}
mutex_init(&dad->sysfs_lock);
dad->ttsp = ttsp;
dad->pdata = pdata;
dev_set_drvdata(dev, dad);
#ifdef TTHE_TUNER_SUPPORT
mutex_init(&dad->debugfs_lock);
dad->heatmap.num_element = 200;
#endif
pm_runtime_enable(dev);
pm_runtime_get_sync(dev);
/* get sysinfo */
dad->si = cyttsp5_request_sysinfo(ttsp);
pm_runtime_put(dev);
if (dad->si) {
rc = cyttsp5_setup_sysfs(ttsp);
if (rc)
goto cyttsp5_device_access_setup_sysfs_failed;
} else {
dev_err(dev, "%s: Fail get sysinfo pointer from core p=%p\n",
__func__, dad->si);
cyttsp5_subscribe_attention(ttsp, CY_ATTEN_STARTUP,
cyttsp5_setup_sysfs_attention, 0);
}
return 0;
cyttsp5_device_access_setup_sysfs_failed:
pm_runtime_suspend(dev);
pm_runtime_disable(dev);
dev_set_drvdata(dev, NULL);
kfree(dad);
cyttsp5_device_access_probe_data_failed:
dev_err(dev, "%s failed.\n", __func__);
return rc;
}
示例10: scsi_runtime_idle
static int scsi_runtime_idle(struct device *dev)
{
int err;
dev_dbg(dev, "scsi_runtime_idle\n");
/* Insert hooks here for targets, hosts, and transport classes */
if (scsi_is_sdev_device(dev)) {
struct scsi_device *sdev = to_scsi_device(dev);
if (sdev->request_queue->dev) {
pm_runtime_mark_last_busy(dev);
err = pm_runtime_autosuspend(dev);
} else {
err = pm_runtime_suspend(dev);
}
} else {
err = pm_runtime_suspend(dev);
}
return err;
}
示例11: lm3561_remove
static int __devexit lm3561_remove(struct i2c_client *client)
{
struct lm3561_drv_data *data = dev_get_drvdata(&client->dev);
struct lm3561_platform_data *pdata = client->dev.platform_data;
remove_sysfs_interfaces(&client->dev);
pm_runtime_suspend(&client->dev);
pm_runtime_disable(&client->dev);
if (pdata->platform_init)
pdata->platform_init(&client->dev, false);
kfree(data);
return 0;
}
示例12: pm_generic_runtime_idle
/**
* pm_generic_runtime_idle - Generic runtime idle callback for subsystems.
* @dev: Device to handle.
*
* If PM operations are defined for the @dev's driver and they include
* ->runtime_idle(), execute it and return its error code, if nonzero.
* Otherwise, execute pm_runtime_suspend() for the device and return 0.
*/
int pm_generic_runtime_idle(struct device *dev)
{
const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
if (pm && pm->runtime_idle) {
int ret = pm->runtime_idle(dev);
if (ret)
return ret;
}
pm_runtime_suspend(dev);
return 0;
}
示例13: gpu_power_suspend
static void gpu_power_suspend(struct kbase_device *kbdev)
{
struct exynos_context *platform = (struct exynos_context *) kbdev->platform_context;
if (!platform)
return;
GPU_LOG(DVFS_INFO, DUMMY, 0u, 0u, "power suspend\n");
gpu_control_enable_customization(kbdev);
pm_runtime_suspend(kbdev->dev);
if (platform->early_clk_gating_status)
gpu_control_disable_clock(kbdev);
}
示例14: scsi_runtime_idle
static int scsi_runtime_idle(struct device *dev)
{
int err;
dev_dbg(dev, "scsi_runtime_idle\n");
if (scsi_is_sdev_device(dev))
err = pm_schedule_suspend(dev, 100);
else
err = pm_runtime_suspend(dev);
return err;
}
示例15: mali_runtime_idle
static int mali_runtime_idle(struct device *device)
{
MALI_DEBUG_PRINT(4, ("mali_runtime_idle() called\n"));
if (NULL != device->driver &&
NULL != device->driver->pm &&
NULL != device->driver->pm->runtime_idle)
{
/* Need to notify Mali driver about this event */
int ret = device->driver->pm->runtime_idle(device);
if (0 != ret)
{
return ret;
}
}
pm_runtime_suspend(device);
return 0;
}