From e16803a8454d51756354ed7b91ecefd4abff400c Mon Sep 17 00:00:00 2001 From: Chaoli Zhou Date: Wed, 26 May 2021 10:50:52 +0800 Subject: [PATCH] cnss2: Increase delay between wlan_en & pcie reset According to datasheet, for qca6390 it needs at least 4ms delay between wlan_en active and pcie reset de-assert. And as for qca6174, it needs 10ms. So add such fix to increase the default 1ms delay to 10ms-11ms. Change-Id: If07fb49746f2362290ff397d36a73770d11cc20b Signed-off-by: Chaoli Zhou --- drivers/net/wireless/cnss2/power.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/cnss2/power.c b/drivers/net/wireless/cnss2/power.c index ad597ea5c485..55e2d253d7b7 100644 --- a/drivers/net/wireless/cnss2/power.c +++ b/drivers/net/wireless/cnss2/power.c @@ -60,7 +60,7 @@ static struct cnss_clk_cfg cnss_clk_list[] = { #define WLAN_VREGS_PROP "wlan_vregs" #define BOOTSTRAP_DELAY 1000 -#define WLAN_ENABLE_DELAY 1000 +#define WLAN_ENABLE_DELAY 10000 #define TCS_CMD_DATA_ADDR_OFFSET 0x4 #define TCS_OFFSET 0xC8 @@ -877,7 +877,13 @@ static int cnss_select_pinctrl_state(struct cnss_plat_data *plat_priv, ret); goto out; } - udelay(WLAN_ENABLE_DELAY); + /* As spec shown, it needs at least 4ms delay + * between wlan_en become active and pcie reset + * de-assert for qca6390. And it needs at least + * 10ms for qca6174. So add 10ms-11ms delay here. + */ + usleep_range(WLAN_ENABLE_DELAY, + WLAN_ENABLE_DELAY + 1000); } cnss_set_xo_clk_gpio_state(plat_priv, false); } else {