]> www.infradead.org Git - users/willy/xarray.git/commitdiff
wil6210: fix reset flow for Talyn-mb
authorAlexei Avshalom Lazar <ailizaro@codeaurora.org>
Wed, 31 Oct 2018 08:52:10 +0000 (10:52 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 6 Nov 2018 16:02:11 +0000 (18:02 +0200)
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 <ailizaro@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/wil6210/main.c

index 398900a1c29e2bef9dd015e09e263b8861554c86..c54b008996ee602049773bb31e0a3470b6ef1fac 100644 (file)
@@ -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);