Skip to content

Commit e3a854b

Browse files
committed
Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk fixes from Stephen Boyd: "A few clk driver fixes for Samsung and Qualcomm clk drivers: - Suspend on Google GS101 crashes when trying to save some clk registers that we shouldn't be saving so we don't do that anymore - The PLL lock time was wrong on the Tesla FSD which could lead to the PLL never locking - Qualcomm's display clk controller on SM8750 was trying to change the frequency of a parent clk for the DSI device when it should have stopped and adjusted the divider. The failure is that the clk frequency was half what was expected, leading to broken display" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: samsung: update PLL locktime for PLL142XX used on FSD platform clk: samsung: gs101: fix synchronous external abort in samsung_clk_save() clk: qcom: dispcc-sm8750: Drop incorrect CLK_SET_RATE_PARENT on byte intf parent
2 parents 131c040 + 5449327 commit e3a854b

File tree

3 files changed

+6
-11
lines changed

3 files changed

+6
-11
lines changed

drivers/clk/qcom/dispcc-sm8750.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,6 @@ static struct clk_regmap_div disp_cc_mdss_byte0_div_clk_src = {
827827
&disp_cc_mdss_byte0_clk_src.clkr.hw,
828828
},
829829
.num_parents = 1,
830-
.flags = CLK_SET_RATE_PARENT,
831830
.ops = &clk_regmap_div_ops,
832831
},
833832
};
@@ -842,7 +841,6 @@ static struct clk_regmap_div disp_cc_mdss_byte1_div_clk_src = {
842841
&disp_cc_mdss_byte1_clk_src.clkr.hw,
843842
},
844843
.num_parents = 1,
845-
.flags = CLK_SET_RATE_PARENT,
846844
.ops = &clk_regmap_div_ops,
847845
},
848846
};

drivers/clk/samsung/clk-gs101.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -382,17 +382,9 @@ static const unsigned long cmu_top_clk_regs[] __initconst = {
382382
EARLY_WAKEUP_DPU_DEST,
383383
EARLY_WAKEUP_CSIS_DEST,
384384
EARLY_WAKEUP_SW_TRIG_APM,
385-
EARLY_WAKEUP_SW_TRIG_APM_SET,
386-
EARLY_WAKEUP_SW_TRIG_APM_CLEAR,
387385
EARLY_WAKEUP_SW_TRIG_CLUSTER0,
388-
EARLY_WAKEUP_SW_TRIG_CLUSTER0_SET,
389-
EARLY_WAKEUP_SW_TRIG_CLUSTER0_CLEAR,
390386
EARLY_WAKEUP_SW_TRIG_DPU,
391-
EARLY_WAKEUP_SW_TRIG_DPU_SET,
392-
EARLY_WAKEUP_SW_TRIG_DPU_CLEAR,
393387
EARLY_WAKEUP_SW_TRIG_CSIS,
394-
EARLY_WAKEUP_SW_TRIG_CSIS_SET,
395-
EARLY_WAKEUP_SW_TRIG_CSIS_CLEAR,
396388
CLK_CON_MUX_MUX_CLKCMU_BO_BUS,
397389
CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS,
398390
CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS,

drivers/clk/samsung/clk-pll.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ static const struct clk_ops samsung_pll3000_clk_ops = {
206206
*/
207207
/* Maximum lock time can be 270 * PDIV cycles */
208208
#define PLL35XX_LOCK_FACTOR (270)
209+
#define PLL142XX_LOCK_FACTOR (150)
209210

210211
#define PLL35XX_MDIV_MASK (0x3FF)
211212
#define PLL35XX_PDIV_MASK (0x3F)
@@ -272,7 +273,11 @@ static int samsung_pll35xx_set_rate(struct clk_hw *hw, unsigned long drate,
272273
}
273274

274275
/* Set PLL lock time. */
275-
writel_relaxed(rate->pdiv * PLL35XX_LOCK_FACTOR,
276+
if (pll->type == pll_142xx)
277+
writel_relaxed(rate->pdiv * PLL142XX_LOCK_FACTOR,
278+
pll->lock_reg);
279+
else
280+
writel_relaxed(rate->pdiv * PLL35XX_LOCK_FACTOR,
276281
pll->lock_reg);
277282

278283
/* Change PLL PMS values */

0 commit comments

Comments
 (0)