|
@@ -35,14 +35,20 @@ struct pm_clock_entry {
|
|
|
/**
|
|
|
* pm_clk_enable - Enable a clock, reporting any errors
|
|
|
* @dev: The device for the given clock
|
|
|
- * @clk: The clock being enabled.
|
|
|
+ * @ce: PM clock entry corresponding to the clock.
|
|
|
*/
|
|
|
-static inline int __pm_clk_enable(struct device *dev, struct clk *clk)
|
|
|
+static inline int __pm_clk_enable(struct device *dev, struct pm_clock_entry *ce)
|
|
|
{
|
|
|
- int ret = clk_enable(clk);
|
|
|
- if (ret)
|
|
|
- dev_err(dev, "%s: failed to enable clk %p, error %d\n",
|
|
|
- __func__, clk, ret);
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ if (ce->status < PCE_STATUS_ERROR) {
|
|
|
+ ret = clk_enable(ce->clk);
|
|
|
+ if (!ret)
|
|
|
+ ce->status = PCE_STATUS_ENABLED;
|
|
|
+ else
|
|
|
+ dev_err(dev, "%s: failed to enable clk %p, error %d\n",
|
|
|
+ __func__, ce->clk, ret);
|
|
|
+ }
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -293,7 +299,6 @@ int pm_clk_resume(struct device *dev)
|
|
|
struct pm_subsys_data *psd = dev_to_psd(dev);
|
|
|
struct pm_clock_entry *ce;
|
|
|
unsigned long flags;
|
|
|
- int ret;
|
|
|
|
|
|
dev_dbg(dev, "%s()\n", __func__);
|
|
|
|
|
@@ -302,13 +307,8 @@ int pm_clk_resume(struct device *dev)
|
|
|
|
|
|
spin_lock_irqsave(&psd->lock, flags);
|
|
|
|
|
|
- list_for_each_entry(ce, &psd->clock_list, node) {
|
|
|
- if (ce->status < PCE_STATUS_ERROR) {
|
|
|
- ret = __pm_clk_enable(dev, ce->clk);
|
|
|
- if (!ret)
|
|
|
- ce->status = PCE_STATUS_ENABLED;
|
|
|
- }
|
|
|
- }
|
|
|
+ list_for_each_entry(ce, &psd->clock_list, node)
|
|
|
+ __pm_clk_enable(dev, ce);
|
|
|
|
|
|
spin_unlock_irqrestore(&psd->lock, flags);
|
|
|
|
|
@@ -417,7 +417,6 @@ int pm_clk_resume(struct device *dev)
|
|
|
struct pm_subsys_data *psd = dev_to_psd(dev);
|
|
|
struct pm_clock_entry *ce;
|
|
|
unsigned long flags;
|
|
|
- int ret;
|
|
|
|
|
|
dev_dbg(dev, "%s()\n", __func__);
|
|
|
|
|
@@ -427,13 +426,8 @@ int pm_clk_resume(struct device *dev)
|
|
|
|
|
|
spin_lock_irqsave(&psd->lock, flags);
|
|
|
|
|
|
- list_for_each_entry(ce, &psd->clock_list, node) {
|
|
|
- if (ce->status < PCE_STATUS_ERROR) {
|
|
|
- ret = __pm_clk_enable(dev, ce->clk);
|
|
|
- if (!ret)
|
|
|
- ce->status = PCE_STATUS_ENABLED;
|
|
|
- }
|
|
|
- }
|
|
|
+ list_for_each_entry(ce, &psd->clock_list, node)
|
|
|
+ __pm_clk_enable(dev, ce);
|
|
|
|
|
|
spin_unlock_irqrestore(&psd->lock, flags);
|
|
|
|