lkml.org 
[lkml]   [2015]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19.y-ckt 146/164] mfd: twl6040: Fix deferred probe handling for clk32k
    Date
    3.19.8-ckt11 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Tony Lindgren <tony@atomide.com>

    commit 75c08f17ec87c2d742487bb87408d6feebc526bd upstream.

    Commit 68bab8662f49 ("mfd: twl6040: Optional clk32k clock handling")
    added clock handling for the 32k clock from palmas-clk. However, that
    patch did not consider a typical situation where twl6040 is built-in,
    and palmas-clk is a loadable module like we have in omap2plus_defconfig.

    If palmas-clk is not loaded before twl6040 probes, we will get a
    "clk32k is not handled" warning during booting. This means that any
    drivers relying on this clock will mysteriously fail, including
    omap5-uevm WLAN and audio.

    Note that for WLAN, we probably should also eventually get
    the clk32kgaudio for MMC3 directly as that's shared between
    audio and WLAN SDIO at least for omap5-uevm. It seems the
    WLAN chip cannot get it as otherwise MMC3 won't get properly
    probed.

    Fixes: 68bab8662f49 ("mfd: twl6040: Optional clk32k clock handling")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/mfd/twl6040.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/mfd/twl6040.c b/drivers/mfd/twl6040.c
    index 9687645..ab05f83 100644
    --- a/drivers/mfd/twl6040.c
    +++ b/drivers/mfd/twl6040.c
    @@ -647,6 +647,8 @@ static int twl6040_probe(struct i2c_client *client,

    twl6040->clk32k = devm_clk_get(&client->dev, "clk32k");
    if (IS_ERR(twl6040->clk32k)) {
    + if (PTR_ERR(twl6040->clk32k) == -EPROBE_DEFER)
    + return -EPROBE_DEFER;
    dev_info(&client->dev, "clk32k is not handled\n");
    twl6040->clk32k = NULL;
    }
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-12-02 18:21    [W:4.166 / U:0.428 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site