|
@@ -183,6 +183,10 @@ static int omap_device_build_from_dt(struct platform_device *pdev)
|
|
|
odbfd_exit1:
|
|
|
kfree(hwmods);
|
|
|
odbfd_exit:
|
|
|
+ /* if data/we are at fault.. load up a fail handler */
|
|
|
+ if (ret)
|
|
|
+ pdev->dev.pm_domain = &omap_device_fail_pm_domain;
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -604,6 +608,19 @@ static int _od_runtime_resume(struct device *dev)
|
|
|
|
|
|
return pm_generic_runtime_resume(dev);
|
|
|
}
|
|
|
+
|
|
|
+static int _od_fail_runtime_suspend(struct device *dev)
|
|
|
+{
|
|
|
+ dev_warn(dev, "%s: FIXME: missing hwmod/omap_dev info\n", __func__);
|
|
|
+ return -ENODEV;
|
|
|
+}
|
|
|
+
|
|
|
+static int _od_fail_runtime_resume(struct device *dev)
|
|
|
+{
|
|
|
+ dev_warn(dev, "%s: FIXME: missing hwmod/omap_dev info\n", __func__);
|
|
|
+ return -ENODEV;
|
|
|
+}
|
|
|
+
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_SUSPEND
|
|
@@ -657,6 +674,13 @@ static int _od_resume_noirq(struct device *dev)
|
|
|
#define _od_resume_noirq NULL
|
|
|
#endif
|
|
|
|
|
|
+struct dev_pm_domain omap_device_fail_pm_domain = {
|
|
|
+ .ops = {
|
|
|
+ SET_RUNTIME_PM_OPS(_od_fail_runtime_suspend,
|
|
|
+ _od_fail_runtime_resume, NULL)
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
struct dev_pm_domain omap_device_pm_domain = {
|
|
|
.ops = {
|
|
|
SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
|