From: Alexei Avshalom Lazar <[email protected]>

With current reset flow, Talyn sometimes get stuck causing PCIe
enumeration to fail. Fix this by removing some reset flow operations
that are not relevant for Talyn.
Setting bit 15 in RGF_HP_CTRL is WBE specific and is not in use for
all wil6210 devices.
For Sparrow, BIT_HPAL_PERST_FROM_PAD and BIT_CAR_PERST_RST were set
as a WA an HW issue.

Signed-off-by: Alexei Avshalom Lazar <[email protected]>
Signed-off-by: Maya Erez <[email protected]>
---
 drivers/net/wireless/ath/wil6210/main.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/main.c 
b/drivers/net/wireless/ath/wil6210/main.c
index 398900a..c54b008 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -998,10 +998,13 @@ static int wil_target_reset(struct wil6210_priv *wil, int 
no_flash)
 
        wil_dbg_misc(wil, "Resetting \"%s\"...\n", wil->hw_name);
 
-       /* Clear MAC link up */
-       wil_s(wil, RGF_HP_CTRL, BIT(15));
-       wil_s(wil, RGF_USER_CLKS_CTL_SW_RST_MASK_0, BIT_HPAL_PERST_FROM_PAD);
-       wil_s(wil, RGF_USER_CLKS_CTL_SW_RST_MASK_0, BIT_CAR_PERST_RST);
+       if (wil->hw_version < HW_VER_TALYN) {
+               /* Clear MAC link up */
+               wil_s(wil, RGF_HP_CTRL, BIT(15));
+               wil_s(wil, RGF_USER_CLKS_CTL_SW_RST_MASK_0,
+                     BIT_HPAL_PERST_FROM_PAD);
+               wil_s(wil, RGF_USER_CLKS_CTL_SW_RST_MASK_0, BIT_CAR_PERST_RST);
+       }
 
        wil_halt_cpu(wil);
 
-- 
1.9.1

Reply via email to