From 5ed662971c79286cdeb077b903bf1244d9ffea09 Mon Sep 17 00:00:00 2001 From: Zijun Hu Date: Mon, 23 Nov 2020 12:08:46 +0800 Subject: [PATCH] Bluetooth: Fix bluetooth enable failure for sdxlemur it will rarely causes bluetooth enable failure due to enable already enabled clock, so take this scenario as warning intead of error. CRs-Fixed: 2824381 Change-Id: I8e52ff659787fa805469ed808643ef281aa6750d Signed-off-by: Zijun Hu --- drivers/bluetooth/btpower.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/bluetooth/btpower.c b/drivers/bluetooth/btpower.c index 2839bb96f594..8735b34a2210 100644 --- a/drivers/bluetooth/btpower.c +++ b/drivers/bluetooth/btpower.c @@ -257,11 +257,13 @@ static int bt_clk_enable(struct bt_power_clk_data *clk) pr_debug("%s: %s\n", __func__, clk->name); - /* Get the clock handle for vreg */ - if (!clk->clk || clk->is_enabled) { - pr_err("%s: error - node: %p, clk->is_enabled:%d\n", - __func__, clk->clk, clk->is_enabled); + if (!clk->clk) return -EINVAL; + /* Get the clock handle for vreg */ + if (clk->is_enabled) { + pr_warning("%s: node: %p, clk->is_enabled:%d\n", + __func__, clk->clk, clk->is_enabled); + return 0; } rc = clk_prepare_enable(clk->clk); @@ -281,11 +283,13 @@ static int bt_clk_disable(struct bt_power_clk_data *clk) pr_debug("%s: %s\n", __func__, clk->name); - /* Get the clock handle for vreg */ - if (!clk->clk || !clk->is_enabled) { - pr_err("%s: error - node: %p, clk->is_enabled:%d\n", - __func__, clk->clk, clk->is_enabled); + if (!clk->clk) return -EINVAL; + /* Get the clock handle for vreg */ + if (!clk->is_enabled) { + pr_warning("%s: node: %p, clk->is_enabled:%d\n", + __func__, clk->clk, clk->is_enabled); + return 0; } clk_disable_unprepare(clk->clk);