All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com>
To: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Cc: "brcm80211-dev-list@broadcom.com"
	<brcm80211-dev-list@broadcom.com>,
	brcm80211-dev-list <brcm80211-dev-list@cypress.com>,
	Arend van Spriel <arend.vanspriel@broadcom.com>,
	Franky Lin <franky.lin@broadcom.com>,
	Hante Meuleman <hante.meuleman@broadcom.com>,
	Wright Feng <Wright.Feng@cypress.com>,
	Kalle Valo <kvalo@codeaurora.org>,
	Praveen Babu Chandran <Praveen.Chandran@cypress.com>,
	Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com>
Subject: [PATCH 06/11] brcmfmac: saverestore support changes for 43012
Date: Tue, 6 Nov 2018 03:50:23 +0000	[thread overview]
Message-ID: <1541476188-75475-7-git-send-email-chi-hsien.lin@cypress.com> (raw)
In-Reply-To: <1541476188-75475-1-git-send-email-chi-hsien.lin@cypress.com>

From: Praveen Babu C <praveen.chandran@cypress.com>

Add saverestore register settings for 43012.

Signed-off-by: Praveen Babu C <praveen.chandran@cypress.com>
Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
---
 .../wireless/broadcom/brcm80211/brcmfmac/chip.c    |  5 +++++
 .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    | 22 +++++++++++++++++-----
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
index 7d5005d75e01..a8d3b96b727f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
@@ -1365,6 +1365,11 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
 		addr = CORE_CC_REG(base, sr_control1);
 		reg = chip->ops->read32(chip->ctx, addr);
 		return reg != 0;
+	case CY_CC_43012_CHIP_ID:
+		addr = CORE_CC_REG(pmu->base, retention_ctl);
+		reg = chip->ops->read32(chip->ctx, addr);
+		return (reg & (PMU_RCTL_MACPHY_DISABLE_MASK |
+			       PMU_RCTL_LOGIC_DISABLE_MASK)) == 0;
 	default:
 		addr = CORE_CC_REG(pmu->base, pmucapabilities_ext);
 		reg = chip->ops->read32(chip->ctx, addr);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 299f59f58d8c..a32eb5f868b5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -3354,16 +3354,29 @@ static void brcmf_sdio_sr_init(struct brcmf_sdio *bus)
 {
 	int err = 0;
 	u8 val;
+	u8 wakeupctrl;
+	u8 cardcap;
+	u8 chipclkcsr;
 
 	brcmf_dbg(TRACE, "Enter\n");
 
+	if (bus->ci->chip == CY_CC_43012_CHIP_ID) {
+		wakeupctrl = SBSDIO_FUNC1_WCTRL_ALPWAIT_SHIFT;
+		cardcap = SDIO_CCCR_BRCM_CARDCAP_CMD_NODEC;
+		chipclkcsr = SBSDIO_HT_AVAIL_REQ;
+	} else {
+		wakeupctrl = SBSDIO_FUNC1_WCTRL_HTWAIT_SHIFT;
+		cardcap = (SDIO_CCCR_BRCM_CARDCAP_CMD14_SUPPORT |
+				   SDIO_CCCR_BRCM_CARDCAP_CMD14_EXT);
+		chipclkcsr = SBSDIO_FORCE_HT;
+	}
+
 	val = brcmf_sdiod_readb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, &err);
 	if (err) {
 		brcmf_err("error reading SBSDIO_FUNC1_WAKEUPCTRL\n");
 		return;
 	}
-
-	val |= 1 << SBSDIO_FUNC1_WCTRL_HTWAIT_SHIFT;
+	val |= 1 << wakeupctrl;
 	brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_WAKEUPCTRL, val, &err);
 	if (err) {
 		brcmf_err("error writing SBSDIO_FUNC1_WAKEUPCTRL\n");
@@ -3372,8 +3385,7 @@ static void brcmf_sdio_sr_init(struct brcmf_sdio *bus)
 
 	/* Add CMD14 Support */
 	brcmf_sdiod_func0_wb(bus->sdiodev, SDIO_CCCR_BRCM_CARDCAP,
-			     (SDIO_CCCR_BRCM_CARDCAP_CMD14_SUPPORT |
-			      SDIO_CCCR_BRCM_CARDCAP_CMD14_EXT),
+			     cardcap,
 			     &err);
 	if (err) {
 		brcmf_err("error writing SDIO_CCCR_BRCM_CARDCAP\n");
@@ -3381,7 +3393,7 @@ static void brcmf_sdio_sr_init(struct brcmf_sdio *bus)
 	}
 
 	brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
-			   SBSDIO_FORCE_HT, &err);
+			   chipclkcsr, &err);
 	if (err) {
 		brcmf_err("error writing SBSDIO_FUNC1_CHIPCLKCSR\n");
 		return;
-- 
2.1.0


  parent reply	other threads:[~2018-11-06  3:50 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-06  3:50 [PATCH 00/11] chip related changes Chi-Hsien Lin
2018-11-06  3:50 ` [PATCH 01/11] brcmfmac: add 4354 raw pcie device id Chi-Hsien Lin
2018-11-08 11:52   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 02/11] brcmfmac: set F2 watermark to 256 for 4373 Chi-Hsien Lin
2018-11-08 11:53   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 03/11] brcmfmac: set SDIO F1 MesBusyCtrl for CYW4373 Chi-Hsien Lin
2018-11-08 11:53   ` Arend van Spriel
2018-11-09  7:34     ` Chi-Hsien Lin
2018-11-09 12:20       ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 04/11] brcmfmac: add support for CYW43012 SDIO chipset Chi-Hsien Lin
2018-11-08 11:53   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 05/11] brcmfmac: allow GCI core enumuration Chi-Hsien Lin
2018-11-08 11:53   ` Arend van Spriel
2018-11-06  3:50 ` Chi-Hsien Lin [this message]
2018-11-08 11:53   ` [PATCH 06/11] brcmfmac: saverestore support changes for 43012 Arend van Spriel
2018-11-06  3:50 ` [PATCH 07/11] brcmfmac: update 43012 F2 watermark setting to fix DMA Error during UDP RX Traffic Chi-Hsien Lin
2018-11-08 11:53   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 08/11] brcmfmac: 4373 save-restore support Chi-Hsien Lin
2018-11-08 11:54   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 09/11] brcmfmac: disable command decode in sdio_aos for 43012/4339/4345 Chi-Hsien Lin
2018-11-08 11:54   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 10/11] brcmfmac: disable command decode in sdio_aos for 4354 Chi-Hsien Lin
2018-11-08 11:55   ` Arend van Spriel
2018-11-06  3:50 ` [PATCH 11/11] brcmfmac: disable command decode in sdio_aos for 4373 Chi-Hsien Lin
2018-11-08 11:55   ` Arend van Spriel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1541476188-75475-7-git-send-email-chi-hsien.lin@cypress.com \
    --to=chi-hsien.lin@cypress.com \
    --cc=Praveen.Chandran@cypress.com \
    --cc=Wright.Feng@cypress.com \
    --cc=arend.vanspriel@broadcom.com \
    --cc=brcm80211-dev-list@broadcom.com \
    --cc=brcm80211-dev-list@cypress.com \
    --cc=franky.lin@broadcom.com \
    --cc=hante.meuleman@broadcom.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.