Skip to content

Commit c9d26d8

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 some SoC clk drivers: - Change a usleep() to udelay() to avoid scheduling while atomic in the Amlogic PLL code - Revert a patch to the Mediatek MT8183 driver that caused an out-of-bounds write - Return the right error value when devm_of_iomap() fails in imx93_clocks_probe() - Constrain the Kconfig for the fixed mmio clk so that it depends on HAS_IOMEM and can't be compiled on architectures such as s390" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM clk: imx93: Propagate correct error in imx93_clocks_probe() clk: mediatek: mt8183: Add back SSPM related clocks clk: meson: change usleep_range() to udelay() for atomic context
2 parents 024ff30 + ae9b145 commit c9d26d8

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed

drivers/clk/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,7 @@ config COMMON_CLK_BD718XX
444444
config COMMON_CLK_FIXED_MMIO
445445
bool "Clock driver for Memory Mapped Fixed values"
446446
depends on COMMON_CLK && OF
447+
depends on HAS_IOMEM
447448
help
448449
Support for Memory Mapped IO Fixed clocks
449450

drivers/clk/imx/clk-imx93.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ static int imx93_clocks_probe(struct platform_device *pdev)
291291
anatop_base = devm_of_iomap(dev, np, 0, NULL);
292292
of_node_put(np);
293293
if (WARN_ON(IS_ERR(anatop_base))) {
294-
ret = PTR_ERR(base);
294+
ret = PTR_ERR(anatop_base);
295295
goto unregister_hws;
296296
}
297297

drivers/clk/mediatek/clk-mt8183.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,14 @@ static const char * const atb_parents[] = {
328328
"syspll_d5"
329329
};
330330

331+
static const char * const sspm_parents[] = {
332+
"clk26m",
333+
"univpll_d2_d4",
334+
"syspll_d2_d2",
335+
"univpll_d2_d2",
336+
"syspll_d3"
337+
};
338+
331339
static const char * const dpi0_parents[] = {
332340
"clk26m",
333341
"tvdpll_d2",
@@ -507,6 +515,9 @@ static const struct mtk_mux top_muxes[] = {
507515
/* CLK_CFG_6 */
508516
MUX_GATE_CLR_SET_UPD(CLK_TOP_MUX_ATB, "atb_sel",
509517
atb_parents, 0xa0, 0xa4, 0xa8, 0, 2, 7, 0x004, 24),
518+
MUX_GATE_CLR_SET_UPD_FLAGS(CLK_TOP_MUX_SSPM, "sspm_sel",
519+
sspm_parents, 0xa0, 0xa4, 0xa8, 8, 3, 15, 0x004, 25,
520+
CLK_IS_CRITICAL | CLK_SET_RATE_PARENT),
510521
MUX_GATE_CLR_SET_UPD(CLK_TOP_MUX_DPI0, "dpi0_sel",
511522
dpi0_parents, 0xa0, 0xa4, 0xa8, 16, 4, 23, 0x004, 26),
512523
MUX_GATE_CLR_SET_UPD(CLK_TOP_MUX_SCAM, "scam_sel",
@@ -673,10 +684,18 @@ static const struct mtk_gate_regs infra3_cg_regs = {
673684
GATE_MTK(_id, _name, _parent, &infra2_cg_regs, _shift, \
674685
&mtk_clk_gate_ops_setclr)
675686

687+
#define GATE_INFRA2_FLAGS(_id, _name, _parent, _shift, _flag) \
688+
GATE_MTK_FLAGS(_id, _name, _parent, &infra2_cg_regs, \
689+
_shift, &mtk_clk_gate_ops_setclr, _flag)
690+
676691
#define GATE_INFRA3(_id, _name, _parent, _shift) \
677692
GATE_MTK(_id, _name, _parent, &infra3_cg_regs, _shift, \
678693
&mtk_clk_gate_ops_setclr)
679694

695+
#define GATE_INFRA3_FLAGS(_id, _name, _parent, _shift, _flag) \
696+
GATE_MTK_FLAGS(_id, _name, _parent, &infra3_cg_regs, \
697+
_shift, &mtk_clk_gate_ops_setclr, _flag)
698+
680699
static const struct mtk_gate infra_clks[] = {
681700
/* INFRA0 */
682701
GATE_INFRA0(CLK_INFRA_PMIC_TMR, "infra_pmic_tmr", "axi_sel", 0),
@@ -748,7 +767,11 @@ static const struct mtk_gate infra_clks[] = {
748767
GATE_INFRA2(CLK_INFRA_UNIPRO_TICK, "infra_unipro_tick", "fufs_sel", 12),
749768
GATE_INFRA2(CLK_INFRA_UFS_MP_SAP_BCLK, "infra_ufs_mp_sap_bck", "fufs_sel", 13),
750769
GATE_INFRA2(CLK_INFRA_MD32_BCLK, "infra_md32_bclk", "axi_sel", 14),
770+
/* infra_sspm is main clock in co-processor, should not be closed in Linux. */
771+
GATE_INFRA2_FLAGS(CLK_INFRA_SSPM, "infra_sspm", "sspm_sel", 15, CLK_IS_CRITICAL),
751772
GATE_INFRA2(CLK_INFRA_UNIPRO_MBIST, "infra_unipro_mbist", "axi_sel", 16),
773+
/* infra_sspm_bus_hclk is main clock in co-processor, should not be closed in Linux. */
774+
GATE_INFRA2_FLAGS(CLK_INFRA_SSPM_BUS_HCLK, "infra_sspm_bus_hclk", "axi_sel", 17, CLK_IS_CRITICAL),
752775
GATE_INFRA2(CLK_INFRA_I2C5, "infra_i2c5", "i2c_sel", 18),
753776
GATE_INFRA2(CLK_INFRA_I2C5_ARBITER, "infra_i2c5_arbiter", "i2c_sel", 19),
754777
GATE_INFRA2(CLK_INFRA_I2C5_IMM, "infra_i2c5_imm", "i2c_sel", 20),
@@ -766,6 +789,10 @@ static const struct mtk_gate infra_clks[] = {
766789
GATE_INFRA3(CLK_INFRA_MSDC0_SELF, "infra_msdc0_self", "msdc50_0_sel", 0),
767790
GATE_INFRA3(CLK_INFRA_MSDC1_SELF, "infra_msdc1_self", "msdc50_0_sel", 1),
768791
GATE_INFRA3(CLK_INFRA_MSDC2_SELF, "infra_msdc2_self", "msdc50_0_sel", 2),
792+
/* infra_sspm_26m_self is main clock in co-processor, should not be closed in Linux. */
793+
GATE_INFRA3_FLAGS(CLK_INFRA_SSPM_26M_SELF, "infra_sspm_26m_self", "f_f26m_ck", 3, CLK_IS_CRITICAL),
794+
/* infra_sspm_32k_self is main clock in co-processor, should not be closed in Linux. */
795+
GATE_INFRA3_FLAGS(CLK_INFRA_SSPM_32K_SELF, "infra_sspm_32k_self", "f_f26m_ck", 4, CLK_IS_CRITICAL),
769796
GATE_INFRA3(CLK_INFRA_UFS_AXI, "infra_ufs_axi", "axi_sel", 5),
770797
GATE_INFRA3(CLK_INFRA_I2C6, "infra_i2c6", "i2c_sel", 6),
771798
GATE_INFRA3(CLK_INFRA_AP_MSDC0, "infra_ap_msdc0", "msdc50_hclk_sel", 7),

drivers/clk/meson/clk-pll.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,9 @@ static int meson_clk_pll_enable(struct clk_hw *hw)
367367
* 3. enable the lock detect module
368368
*/
369369
if (MESON_PARM_APPLICABLE(&pll->current_en)) {
370-
usleep_range(10, 20);
370+
udelay(10);
371371
meson_parm_write(clk->map, &pll->current_en, 1);
372-
usleep_range(40, 50);
372+
udelay(40);
373373
}
374374

375375
if (MESON_PARM_APPLICABLE(&pll->l_detect)) {

0 commit comments

Comments
 (0)