• Tony Lindgren's avatar
    clk: clk-twl6040: Fix imprecise external abort for pdmclk · 55e62bb2
    Tony Lindgren authored
    commit 5ae51d67 upstream.
    
    I noticed that modprobe clk-twl6040 can fail after a cold boot with:
    abe_cm:clk:0010:0: failed to enable
    ...
    Unhandled fault: imprecise external abort (0x1406) at 0xbe896b20
    
    WARNING: CPU: 1 PID: 29 at drivers/clk/clk.c:828 clk_core_disable_lock+0x18/0x24
    ...
    (clk_core_disable_lock) from [<c0123534>] (_disable_clocks+0x18/0x90)
    (_disable_clocks) from [<c0124040>] (_idle+0x17c/0x244)
    (_idle) from [<c0125ad4>] (omap_hwmod_idle+0x24/0x44)
    (omap_hwmod_idle) from [<c053a038>] (sysc_runtime_suspend+0x48/0x108)
    (sysc_runtime_suspend) from [<c06084c4>] (__rpm_callback+0x144/0x1d8)
    (__rpm_callback) from [<c0608578>] (rpm_callback+0x20/0x80)
    (rpm_callback) from [<c0607034>] (rpm_suspend+0x120/0x694)
    (rpm_suspend) from [<c0607a78>] (__pm_runtime_idle+0x60/0x84)
    (__pm_runtime_idle) from [<c053aaf0>] (sysc_probe+0x874/0xf2c)
    (sysc_probe) from [<c05fecd4>] (platform_drv_probe+0x48/0x98)
    
    After searching around for a similar issue, I came across an earlier fix
    that never got merged upstream in the Android tree for glass-omap-xrr02.
    There is patch "MFD: twl6040-codec: Implement PDMCLK cold temp errata"
    by Misael Lopez Cruz <misael.lopez@ti.com>.
    
    Based on my observations, this fix is also needed when cold booting
    devices, and not just for deeper idle modes. Since we now have a clock
    driver for pdmclk, let's fix the issue in twl6040_pdmclk_prepare().
    
    Cc: Misael Lopez Cruz <misael.lopez@ti.com>
    Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    55e62bb2
clk-twl6040.c 4.33 KB