Skip to content

Commit 648e921

Browse files
jwrdegoededavem330
authored andcommitted
clk: x86: Stop marking clocks as CLK_IS_CRITICAL
Commit d31fd43 ("clk: x86: Do not gate clocks enabled by the firmware"), which added the code to mark clocks as CLK_IS_CRITICAL, causes all unclaimed PMC clocks on Cherry Trail devices to be on all the time, resulting on the device not being able to reach S0i3 when suspended. The reason for this commit is that on some Bay Trail / Cherry Trail devices the r8169 ethernet controller uses pmc_plt_clk_4. Now that the clk-pmc-atom driver exports an "ether_clk" alias for pmc_plt_clk_4 and the r8169 driver has been modified to get and enable this clock (if present) the marking of the clocks as CLK_IS_CRITICAL is no longer necessary. This commit removes the CLK_IS_CRITICAL marking, fixing Cherry Trail devices not being able to reach S0i3 greatly decreasing their battery drain when suspended. Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=193891#c102 Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=196861 Cc: Johannes Stezenbach <js@sig21.net> Cc: Carlo Caione <carlo@endlessm.com> Reported-by: Johannes Stezenbach <js@sig21.net> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent c2f6f3e commit 648e921

File tree

1 file changed

+0
-7
lines changed

1 file changed

+0
-7
lines changed

drivers/clk/x86/clk-pmc-atom.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,6 @@ static struct clk_plt *plt_clk_register(struct platform_device *pdev, int id,
187187
pclk->reg = base + PMC_CLK_CTL_OFFSET + id * PMC_CLK_CTL_SIZE;
188188
spin_lock_init(&pclk->lock);
189189

190-
/*
191-
* If the clock was already enabled by the firmware mark it as critical
192-
* to avoid it being gated by the clock framework if no driver owns it.
193-
*/
194-
if (plt_clk_is_enabled(&pclk->hw))
195-
init.flags |= CLK_IS_CRITICAL;
196-
197190
ret = devm_clk_hw_register(&pdev->dev, &pclk->hw);
198191
if (ret) {
199192
pclk = ERR_PTR(ret);

0 commit comments

Comments
 (0)