|
@@ -384,7 +384,12 @@ static int omap_rng_probe(struct platform_device *pdev)
|
|
}
|
|
}
|
|
|
|
|
|
pm_runtime_enable(&pdev->dev);
|
|
pm_runtime_enable(&pdev->dev);
|
|
- pm_runtime_get_sync(&pdev->dev);
|
|
|
|
|
|
+ ret = pm_runtime_get_sync(&pdev->dev);
|
|
|
|
+ if (ret) {
|
|
|
|
+ dev_err(&pdev->dev, "Failed to runtime_get device: %d\n", ret);
|
|
|
|
+ pm_runtime_put_noidle(&pdev->dev);
|
|
|
|
+ goto err_ioremap;
|
|
|
|
+ }
|
|
|
|
|
|
ret = (dev->of_node) ? of_get_omap_rng_device_details(priv, pdev) :
|
|
ret = (dev->of_node) ? of_get_omap_rng_device_details(priv, pdev) :
|
|
get_omap_rng_device_details(priv);
|
|
get_omap_rng_device_details(priv);
|
|
@@ -435,8 +440,15 @@ static int __maybe_unused omap_rng_suspend(struct device *dev)
|
|
static int __maybe_unused omap_rng_resume(struct device *dev)
|
|
static int __maybe_unused omap_rng_resume(struct device *dev)
|
|
{
|
|
{
|
|
struct omap_rng_dev *priv = dev_get_drvdata(dev);
|
|
struct omap_rng_dev *priv = dev_get_drvdata(dev);
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
|
|
+ ret = pm_runtime_get_sync(dev);
|
|
|
|
+ if (ret) {
|
|
|
|
+ dev_err(dev, "Failed to runtime_get device: %d\n", ret);
|
|
|
|
+ pm_runtime_put_noidle(dev);
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
|
|
- pm_runtime_get_sync(dev);
|
|
|
|
priv->pdata->init(priv);
|
|
priv->pdata->init(priv);
|
|
|
|
|
|
return 0;
|
|
return 0;
|