ARM: OMAP3: fix boot regression for N9
Subsystems (4)
cover ARM: OMAP3: fix boot regression for N9
Hi,
N9 boot is apparently broken with mainline, caused by some recent changes to TI clock drivers. The reason for failing boot is effectively missing hwmod data piece for MMC3, so add this in place. The CM related fix is also needed to properly handle idlest functionality on OMAP3; currently this is mostly masked but will cause issues in some places.
-Tero
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
PATCH 1/2 ARM: OMAP3: hwmod_data: add missing module_offs for MMC3
MMC3 hwmod data is missing the module_offs definition. MMC3 belongs under core, so add CORE_MOD for it.
--- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 1 + 1 file changed, 1 insertion(+)
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +1 -0
@@ -1656,6 +1656,7 @@ .main_clk = "mmchs3_fck", .prcm = { .omap2 = { + .module_offs = CORE_MOD, .prcm_reg_id = 1, .module_bit = OMAP3430_EN_MMC3_SHIFT, .idlest_reg_id = 1,
Signature · 4 lines
1.9.1 -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
PATCH 2/2 ARM: OMAP2/3: CM: fix cm_split_idlest functionality
In reply to Tero Kristocm_split_idlest doesn't take the CM base offset into account right now, causing it to read reserved registers which show idlestatus as active always. This will cause the wait_module_ready functionality to be effectively an expensive NOP, which will cause problems if the module hasn't really activated during its execution. Fix by adding the CM offset into the calculation so the wait_module_ready will access correct register.
--- arch/arm/mach-omap2/cm_common.c | 6 +++++- arch/arm/mach-omap2/prcm-common.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-)
arch/arm/mach-omap2/cm_common.c +5 -1
@@ -68,14 +68,17 @@ void __init omap2_set_globals_cm(void __iomem *cm, void __iomem *cm2)int cm_split_idlest_reg (struct clk_omap_reg *idlest_reg,s16 *prcm_inst,u8 *idlest_reg_id) { +int ret;if (!cm_ll_data->split_idlest_reg) {WARN_ONCE (1 ,"cm: %s: no low-level function defined\n" , __func__);return -EINVAL ; } -return cm_ll_data->split_idlest_reg (idlest_reg, prcm_inst, + ret = cm_ll_data->split_idlest_reg (idlest_reg, prcm_inst, idlest_reg_id); + *prcm_inst -= cm_base.offset; +return ret; }/**
@@ -347,6 +350,7 @@ int __init omap2_cm_base_init(void)if (mem) { mem->pa = res.start + data->offset; mem->va = data->mem + data->offset; + mem->offset = data->offset; } data->np = np;
arch/arm/mach-omap2/prcm-common.h +1 -0
@@ -529,6 +529,7 @@ struct omap_prcm_irq_setup {struct omap_domain_base {u32 pa;void __iomem *va; +s16 offset; };/**
Signature · 4 lines
1.9.1 -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Tony Lindgren
maintainercover ARM: OMAP3: fix boot regression for N9
In reply to Tero KristoQuoted 8 lines · Tero Kristo
Hi,
N9 boot is apparently broken with mainline, caused by some recent changes to TI clock drivers. The reason for failing boot is effectively missing hwmod data piece for MMC3, so add this in place. The CM related fix is also needed to properly handle idlest functionality on OMAP3; currently this is mostly masked but will cause issues in some places.
Thanks applying both into omap-for-v4.14/fixes. If these don't make it to v4.14, these can always be requested for stable releases as needed as specified in Documentation/process/stable-kernel-rules.rst.
Regards,
Tony
cover ARM: OMAP3: fix boot regression for N9
Quoted 10 lines · Tony Lindgren
Quoted 8 lines · Tero Kristo
Hi,
N9 boot is apparently broken with mainline, caused by some recent changes to TI clock drivers. The reason for failing boot is effectively missing hwmod data piece for MMC3, so add this in place. The CM related fix is also needed to properly handle idlest functionality on OMAP3; currently this is mostly masked but will cause issues in some places.
Quoted 3 lines
Thanks applying both into omap-for-v4.14/fixes. If these don't make it to v4.14, these can always be requested for stable releases as needed as specified in
Documentation/process/stable-kernel-rules.rst.
Yeah, really sorry about the delay but was kind of out of my hands this time. Hopefully my email issues have been solved for now and this won't happen again.
-Tero
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki