static int __maybe_unused sprd_i2c_resume_noirq(struct device *dev) { struct sprd_i2c *i2c_dev = dev_get_drvdata(dev); i2c_mark_adapter_resumed(&i2c_dev->adap); return pm_runtime_force_resume(dev); }
static int spi_st_resume(struct device *dev) { struct spi_master *master = dev_get_drvdata(dev); int ret; ret = spi_master_resume(master); if (ret) return ret; return pm_runtime_force_resume(dev); }
static int __maybe_unused hda_tegra_resume(struct device *dev) { struct snd_card *card = dev_get_drvdata(dev); int rc; rc = pm_runtime_force_resume(dev); if (rc < 0) return rc; snd_power_change_state(card, SNDRV_CTL_POWER_D0); return 0; }
static int __maybe_unused exynos_rng_resume(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct exynos_rng *exynos_rng = platform_get_drvdata(pdev); int ret; ret = pm_runtime_force_resume(dev); if (ret) return ret; return exynos_rng_configure(exynos_rng); }
static int sandman_resume_disk(char *name) { int err = 0; bool ignore_children = false; bool manage_start_stop = false; struct device *device = NULL; struct device *parent = NULL; struct scsi_device *sdev = NULL; device = sandman_find_dev(name); if (IS_ERR(device)) { printk(KERN_WARNING "[Sandman] %s: no disk found.\n", name); err = PTR_ERR(device); goto fail; } /* * Ignore child_count value (but still updated). * Necessary to successfully set runtime_status to RPM_ACTIVE. */ parent = device->parent; if (parent->parent->power.ignore_children) ignore_children = true; else parent->parent->power.ignore_children = 1; /* * Ensure that manage_start_stop is enabled */ sdev = to_scsi_device(parent); if (!sdev) return 1; if (sdev->manage_start_stop) manage_start_stop = true; else sdev->manage_start_stop = 1; err = pm_runtime_force_resume(parent); parent->parent->power.ignore_children = ignore_children ? 1 : 0; sdev->manage_start_stop = manage_start_stop ? 1 : 0; if (err) goto fail; if (parent->power.runtime_status != RPM_ACTIVE) { err = 2; goto fail; } return 0; fail: return err; }