mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
70 lines
2.5 KiB
Diff
70 lines
2.5 KiB
Diff
From 5ee68395559714baa2229415fc7cc9cdede072e3 Mon Sep 17 00:00:00 2001
|
|
From: David Weng <david.weng@cypress.com>
|
|
Date: Mon, 28 Jan 2019 01:05:36 -0600
|
|
Subject: [PATCH 035/179] non-upstream: fix 43012 driver reload failure after
|
|
DS1 exit
|
|
|
|
Device is left in non-responding state when unloading driver in non-DS1
|
|
state if it ever enters DS1 at least once. It leaves that state only
|
|
after a hard reset or power cycle 43012.
|
|
|
|
Signed-off-by: David Weng <david.weng@cypress.com>
|
|
[Merge from 4.14.77 to 5.4.18]
|
|
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
|
|
SWWLAN-137253
|
|
---
|
|
.../net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 12 +++++++-----
|
|
.../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 --
|
|
2 files changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
|
|
index d9b6b116a78d..599c1b5ead1b 100644
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
|
|
@@ -1491,11 +1491,6 @@ void brcmf_chip_reset_pmu_regs(struct brcmf_chip *pub)
|
|
addr = CORE_CC_REG(base, pmucontrol_ext);
|
|
chip->ops->write32(chip->ctx, addr,
|
|
CY_43012_PMU_CONTROL_EXT_MASK);
|
|
-
|
|
- /* PMU watchdog */
|
|
- addr = CORE_CC_REG(base, pmuwatchdog);
|
|
- chip->ops->write32(chip->ctx, addr,
|
|
- CY_43012_PMU_WATCHDOG_TICK_VAL);
|
|
break;
|
|
|
|
default:
|
|
@@ -1588,10 +1583,17 @@ void brcmf_chip_reset_watchdog(struct brcmf_chip *pub)
|
|
|
|
switch (pub->chip) {
|
|
case CY_CC_43012_CHIP_ID:
|
|
+ addr = CORE_CC_REG(base, min_res_mask);
|
|
+ chip->ops->write32(chip->ctx, addr,
|
|
+ CY_43012_PMU_MIN_RES_MASK);
|
|
/* Watchdog res mask */
|
|
addr = CORE_CC_REG(base, watchdog_res_mask);
|
|
chip->ops->write32(chip->ctx, addr,
|
|
CY_43012_PMU_MIN_RES_MASK);
|
|
+ /* PMU watchdog */
|
|
+ addr = CORE_CC_REG(base, pmuwatchdog);
|
|
+ chip->ops->write32(chip->ctx, addr,
|
|
+ CY_43012_PMU_WATCHDOG_TICK_VAL);
|
|
break;
|
|
|
|
default:
|
|
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
index ce5f807be3d6..ba7d087d5144 100644
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
@@ -4795,8 +4795,6 @@ void brcmf_sdio_remove(struct brcmf_sdio *bus)
|
|
FMAC_ULP_ENTRY_RECV) {
|
|
brcmf_chip_ulp_reset_lhl_regs(bus->ci);
|
|
brcmf_chip_reset_pmu_regs(bus->ci);
|
|
- brcmf_chip_set_default_min_res_mask(
|
|
- bus->ci);
|
|
} else {
|
|
brcmf_chip_set_passive(bus->ci);
|
|
}
|
|
--
|
|
2.17.1
|
|
|