Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43536548 authored by Keerthy's avatar Keerthy Committed by Tero Kristo
Browse files

clk: clk: Add clk_gate_restore_context function



The clock gate restore context function enables or disables
the gate clocks based on the enable_count. This is done in cases
where the clock context is lost and based on the enable_count
the clock either needs to be enabled/disabled.

Signed-off-by: default avatarKeerthy <j-keerthy@ti.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
parent 8b95d1ce
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -923,6 +923,25 @@ static int clk_core_enable_lock(struct clk_core *core)
	return ret;
}

/**
 * clk_gate_restore_context - restore context for poweroff
 * @hw: the clk_hw pointer of clock whose state is to be restored
 *
 * The clock gate restore context function enables or disables
 * the gate clocks based on the enable_count. This is done in cases
 * where the clock context is lost and based on the enable_count
 * the clock either needs to be enabled/disabled. This
 * helps restore the state of gate clocks.
 */
void clk_gate_restore_context(struct clk_hw *hw)
{
	if (hw->clk->core->enable_count)
		hw->clk->core->ops->enable(hw);
	else
		hw->clk->core->ops->disable(hw);
}
EXPORT_SYMBOL_GPL(clk_gate_restore_context);

static int _clk_save_context(struct clk_core *clk)
{
	struct clk_core *child;
+2 −0
Original line number Diff line number Diff line
@@ -1018,5 +1018,7 @@ static inline void clk_writel(u32 val, u32 __iomem *reg)

#endif	/* platform dependent I/O accessors */

void clk_gate_restore_context(struct clk_hw *hw);

#endif /* CONFIG_COMMON_CLK */
#endif /* CLK_PROVIDER_H */