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 -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmTNnxURHHNib3lkQGtl cm5lbC5vcmcACgkQrQKIl8bklSUzVRAAlyWmn7/MEmqT591ntozlrhvoHlVlhqr6 kDl0+TPfw3Ux0+0kL0xXtlTMoFKn33mDPDyDh9JxnNv3XeyBJ2kAp0SstA7l1OnO /cKxZvmdVlFXx/7yvpen6+lOR/9VYkQZ5ZYVqDjS7YbgeKvIhb3TtRLxx22S9GaX 8ihAOP44jqw7LdJur6hs3MsCicT5y2vpmaBOZ5XGjcUVK2Gfab95pRT7CF0H2FxD zmpPfXpShW779pyxi3AAASvmCzN3fwR7gc+oVrXxqWABNa1g7JAXiW5IYxaeRqIy 7XfjHNKfzWGKXIJRE9aeohc/EUJ3dJMdX1034+6l3s7IiDguzvixxL1pyxhbthOB vSzTeNFHkYiffGGECNs2/4gUlmO5Idcyul/H1p0/K7rHmTr2LD+KTQXHN619PGhN xmXb5VMiaOYniyJhkuenNVpKEs06MS4sHJyT/A9yyjXBwr4vzEBR0ayWjJs6wQR2 FzvwwdaCZGdwCC3IetTFYFTf6pi6tIWChtaiIyiQ47jFsGc5505bE910Xdhq//xW lWO0dGaiiRRQeOb9cJ2OVWgnQm774eIa+BV5C+N/6wPZ6/3Hh+av4bP++PoAnnzk FOWvPhsunUFeBu5FkfKmUCs4bTnFRnqbl3D8ZGDqLn0uvHzNqZaqJ9fRoyaaQ6Uh JtoFRB2tiOI= =eROl -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
c9d26d8de1
|
@ -444,6 +444,7 @@ config COMMON_CLK_BD718XX
|
|||
config COMMON_CLK_FIXED_MMIO
|
||||
bool "Clock driver for Memory Mapped Fixed values"
|
||||
depends on COMMON_CLK && OF
|
||||
depends on HAS_IOMEM
|
||||
help
|
||||
Support for Memory Mapped IO Fixed clocks
|
||||
|
||||
|
|
|
@ -291,7 +291,7 @@ static int imx93_clocks_probe(struct platform_device *pdev)
|
|||
anatop_base = devm_of_iomap(dev, np, 0, NULL);
|
||||
of_node_put(np);
|
||||
if (WARN_ON(IS_ERR(anatop_base))) {
|
||||
ret = PTR_ERR(base);
|
||||
ret = PTR_ERR(anatop_base);
|
||||
goto unregister_hws;
|
||||
}
|
||||
|
||||
|
|
|
@ -328,6 +328,14 @@ static const char * const atb_parents[] = {
|
|||
"syspll_d5"
|
||||
};
|
||||
|
||||
static const char * const sspm_parents[] = {
|
||||
"clk26m",
|
||||
"univpll_d2_d4",
|
||||
"syspll_d2_d2",
|
||||
"univpll_d2_d2",
|
||||
"syspll_d3"
|
||||
};
|
||||
|
||||
static const char * const dpi0_parents[] = {
|
||||
"clk26m",
|
||||
"tvdpll_d2",
|
||||
|
@ -507,6 +515,9 @@ static const struct mtk_mux top_muxes[] = {
|
|||
/* CLK_CFG_6 */
|
||||
MUX_GATE_CLR_SET_UPD(CLK_TOP_MUX_ATB, "atb_sel",
|
||||
atb_parents, 0xa0, 0xa4, 0xa8, 0, 2, 7, 0x004, 24),
|
||||
MUX_GATE_CLR_SET_UPD_FLAGS(CLK_TOP_MUX_SSPM, "sspm_sel",
|
||||
sspm_parents, 0xa0, 0xa4, 0xa8, 8, 3, 15, 0x004, 25,
|
||||
CLK_IS_CRITICAL | CLK_SET_RATE_PARENT),
|
||||
MUX_GATE_CLR_SET_UPD(CLK_TOP_MUX_DPI0, "dpi0_sel",
|
||||
dpi0_parents, 0xa0, 0xa4, 0xa8, 16, 4, 23, 0x004, 26),
|
||||
MUX_GATE_CLR_SET_UPD(CLK_TOP_MUX_SCAM, "scam_sel",
|
||||
|
@ -673,10 +684,18 @@ static const struct mtk_gate_regs infra3_cg_regs = {
|
|||
GATE_MTK(_id, _name, _parent, &infra2_cg_regs, _shift, \
|
||||
&mtk_clk_gate_ops_setclr)
|
||||
|
||||
#define GATE_INFRA2_FLAGS(_id, _name, _parent, _shift, _flag) \
|
||||
GATE_MTK_FLAGS(_id, _name, _parent, &infra2_cg_regs, \
|
||||
_shift, &mtk_clk_gate_ops_setclr, _flag)
|
||||
|
||||
#define GATE_INFRA3(_id, _name, _parent, _shift) \
|
||||
GATE_MTK(_id, _name, _parent, &infra3_cg_regs, _shift, \
|
||||
&mtk_clk_gate_ops_setclr)
|
||||
|
||||
#define GATE_INFRA3_FLAGS(_id, _name, _parent, _shift, _flag) \
|
||||
GATE_MTK_FLAGS(_id, _name, _parent, &infra3_cg_regs, \
|
||||
_shift, &mtk_clk_gate_ops_setclr, _flag)
|
||||
|
||||
static const struct mtk_gate infra_clks[] = {
|
||||
/* INFRA0 */
|
||||
GATE_INFRA0(CLK_INFRA_PMIC_TMR, "infra_pmic_tmr", "axi_sel", 0),
|
||||
|
@ -748,7 +767,11 @@ static const struct mtk_gate infra_clks[] = {
|
|||
GATE_INFRA2(CLK_INFRA_UNIPRO_TICK, "infra_unipro_tick", "fufs_sel", 12),
|
||||
GATE_INFRA2(CLK_INFRA_UFS_MP_SAP_BCLK, "infra_ufs_mp_sap_bck", "fufs_sel", 13),
|
||||
GATE_INFRA2(CLK_INFRA_MD32_BCLK, "infra_md32_bclk", "axi_sel", 14),
|
||||
/* infra_sspm is main clock in co-processor, should not be closed in Linux. */
|
||||
GATE_INFRA2_FLAGS(CLK_INFRA_SSPM, "infra_sspm", "sspm_sel", 15, CLK_IS_CRITICAL),
|
||||
GATE_INFRA2(CLK_INFRA_UNIPRO_MBIST, "infra_unipro_mbist", "axi_sel", 16),
|
||||
/* infra_sspm_bus_hclk is main clock in co-processor, should not be closed in Linux. */
|
||||
GATE_INFRA2_FLAGS(CLK_INFRA_SSPM_BUS_HCLK, "infra_sspm_bus_hclk", "axi_sel", 17, CLK_IS_CRITICAL),
|
||||
GATE_INFRA2(CLK_INFRA_I2C5, "infra_i2c5", "i2c_sel", 18),
|
||||
GATE_INFRA2(CLK_INFRA_I2C5_ARBITER, "infra_i2c5_arbiter", "i2c_sel", 19),
|
||||
GATE_INFRA2(CLK_INFRA_I2C5_IMM, "infra_i2c5_imm", "i2c_sel", 20),
|
||||
|
@ -766,6 +789,10 @@ static const struct mtk_gate infra_clks[] = {
|
|||
GATE_INFRA3(CLK_INFRA_MSDC0_SELF, "infra_msdc0_self", "msdc50_0_sel", 0),
|
||||
GATE_INFRA3(CLK_INFRA_MSDC1_SELF, "infra_msdc1_self", "msdc50_0_sel", 1),
|
||||
GATE_INFRA3(CLK_INFRA_MSDC2_SELF, "infra_msdc2_self", "msdc50_0_sel", 2),
|
||||
/* infra_sspm_26m_self is main clock in co-processor, should not be closed in Linux. */
|
||||
GATE_INFRA3_FLAGS(CLK_INFRA_SSPM_26M_SELF, "infra_sspm_26m_self", "f_f26m_ck", 3, CLK_IS_CRITICAL),
|
||||
/* infra_sspm_32k_self is main clock in co-processor, should not be closed in Linux. */
|
||||
GATE_INFRA3_FLAGS(CLK_INFRA_SSPM_32K_SELF, "infra_sspm_32k_self", "f_f26m_ck", 4, CLK_IS_CRITICAL),
|
||||
GATE_INFRA3(CLK_INFRA_UFS_AXI, "infra_ufs_axi", "axi_sel", 5),
|
||||
GATE_INFRA3(CLK_INFRA_I2C6, "infra_i2c6", "i2c_sel", 6),
|
||||
GATE_INFRA3(CLK_INFRA_AP_MSDC0, "infra_ap_msdc0", "msdc50_hclk_sel", 7),
|
||||
|
|
|
@ -367,9 +367,9 @@ static int meson_clk_pll_enable(struct clk_hw *hw)
|
|||
* 3. enable the lock detect module
|
||||
*/
|
||||
if (MESON_PARM_APPLICABLE(&pll->current_en)) {
|
||||
usleep_range(10, 20);
|
||||
udelay(10);
|
||||
meson_parm_write(clk->map, &pll->current_en, 1);
|
||||
usleep_range(40, 50);
|
||||
udelay(40);
|
||||
}
|
||||
|
||||
if (MESON_PARM_APPLICABLE(&pll->l_detect)) {
|
||||
|
|
Loading…
Reference in New Issue