return 0; } static int dw_resume_early(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct dw_dma_chip *chip = platform_get_drvdata(pdev); clk_prepare_enable(chip->clk); return dw_dma_enable(chip); } #endif /* CONFIG_PM_SLEEP */ static const struct dev_pm_ops dw_dev_pm_ops = { SET_LATE_SYSTEM_SLEEP_PM_OPS(dw_suspend_late, dw_resume_early) }; static struct platform_driver dw_driver = { .probe = dw_probe, .remove = dw_remove, .shutdown = dw_shutdown, .driver = { .name = DRV_NAME, .pm = &dw_dev_pm_ops, .of_match_table = of_match_ptr(dw_dma_of_id_table), .acpi_match_table = ACPI_PTR(dw_dma_acpi_id_table), }, }; static int __init dw_init(void)
if (!pid) return -ENODEV; soc_table = (const struct intel_pinctrl_soc_data **) pid->driver_data; soc_data = soc_table[pdev->id]; } if (!soc_data) return -ENODEV; return intel_pinctrl_probe(pdev, soc_data); } static const struct dev_pm_ops bxt_pinctrl_pm_ops = { SET_LATE_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend, intel_pinctrl_resume) }; static struct platform_driver bxt_pinctrl_driver = { .probe = bxt_pinctrl_probe, .remove = intel_pinctrl_remove, .driver = { .name = "broxton-pinctrl", .acpi_match_table = bxt_pinctrl_acpi_match, .pm = &bxt_pinctrl_pm_ops, }, .id_table = bxt_pinctrl_platform_ids, }; static int __init bxt_pinctrl_init(void) {
samsung_clk_of_add_provider(np, ctx); pm_runtime_put(dev); return 0; } static const struct of_device_id exynos4x12_isp_clk_of_match[] = { { .compatible = "samsung,exynos4412-isp-clock", }, { }, }; static const struct dev_pm_ops exynos4x12_isp_pm_ops = { SET_RUNTIME_PM_OPS(exynos4x12_isp_clk_suspend, exynos4x12_isp_clk_resume, NULL) SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) }; static struct platform_driver exynos4x12_isp_clk_driver __refdata = { .driver = { .name = "exynos4x12-isp-clk", .of_match_table = exynos4x12_isp_clk_of_match, .suppress_bind_attrs = true, .pm = &exynos4x12_isp_pm_ops, }, .probe = exynos4x12_isp_clk_probe, }; static int __init exynos4x12_isp_clk_init(void) { return platform_driver_register(&exynos4x12_isp_clk_driver);
{ struct cros_ec_device *ec_dev = dev_get_drvdata(dev); return cros_ec_suspend(ec_dev); } static int cros_ec_lpc_resume(struct device *dev) { struct cros_ec_device *ec_dev = dev_get_drvdata(dev); return cros_ec_resume(ec_dev); } #endif const struct dev_pm_ops cros_ec_lpc_pm_ops = { SET_LATE_SYSTEM_SLEEP_PM_OPS(cros_ec_lpc_suspend, cros_ec_lpc_resume) }; static struct platform_driver cros_ec_lpc_driver = { .driver = { .name = DRV_NAME, .acpi_match_table = cros_ec_lpc_acpi_device_ids, .pm = &cros_ec_lpc_pm_ops, }, .probe = cros_ec_lpc_probe, .remove = cros_ec_lpc_remove, }; static int __init cros_ec_lpc_init(void) { int ret;