Thread (117 messages) 117 messages, 5 authors, 2022-01-31

Re: [PATCH v2 22/35] brcmfmac: chip: Handle 1024-unit sizes for TCM blocks

From: Arend van Spriel <arend.vanspriel@broadcom.com>
Date: 2022-01-20 08:50:03
Also in: linux-acpi, linux-devicetree, linux-wireless, lkml

On 1/19/2022 1:36 PM, Arend van Spriel wrote:
On 1/4/2022 8:26 AM, Hector Martin wrote:
quoted
BCM4387 has trailing odd-sized blocks as part of TCM which have
their size described as a multiple of 1024 instead of 8192. Handle this
so we can compute the TCM size properly.
So that is the deal. Wish someone over here told me about that :-p Gave 
my blessing already, but do have some remarks.
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
quoted
Reviewed-by: Linus Walleij <redacted>
Signed-off-by: Hector Martin <redacted>
---
  .../wireless/broadcom/brcm80211/brcmfmac/chip.c | 17 ++++++++++++-----
  1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
index 713546cebd5a..cfa93e3ef1a1 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
@@ -212,8 +212,8 @@ struct sbsocramregs {
  #define    ARMCR4_TCBANB_MASK    0xf
  #define    ARMCR4_TCBANB_SHIFT    0
-#define    ARMCR4_BSZ_MASK        0x3f
-#define    ARMCR4_BSZ_MULT        8192
Instead of deleting can we leave it here and...
quoted
+#define    ARMCR4_BSZ_MASK        0x7f
+#define    ARMCR4_BLK_1K_MASK    0x200
  struct brcmf_core_priv {
      struct brcmf_core pub;
@@ -675,7 +675,8 @@ static u32 brcmf_chip_sysmem_ramsize(struct 
brcmf_core_priv *sysmem)
  }
  /** Return the TCM-RAM size of the ARMCR4 core. */
-static u32 brcmf_chip_tcm_ramsize(struct brcmf_core_priv *cr4)
+static u32 brcmf_chip_tcm_ramsize(struct brcmf_chip_priv *ci,
+                  struct brcmf_core_priv *cr4)
Not sure why you add ci parameter here. It is not used below or am I 
overlooking something.
quoted
  {
      u32 corecap;
      u32 memsize = 0;
@@ -683,6 +684,7 @@ static u32 brcmf_chip_tcm_ramsize(struct 
brcmf_core_priv *cr4)
      u32 nbb;
      u32 totb;
      u32 bxinfo;
+    u32 blksize;
      u32 idx;
      corecap = brcmf_chip_core_read32(cr4, ARMCR4_CAP);
@@ -694,7 +696,12 @@ static u32 brcmf_chip_tcm_ramsize(struct 
brcmf_core_priv *cr4)
      for (idx = 0; idx < totb; idx++) {
          brcmf_chip_core_write32(cr4, ARMCR4_BANKIDX, idx);
          bxinfo = brcmf_chip_core_read32(cr4, ARMCR4_BANKINFO);
-        memsize += ((bxinfo & ARMCR4_BSZ_MASK) + 1) * ARMCR4_BSZ_MULT;
+        if (bxinfo & ARMCR4_BLK_1K_MASK)
+            blksize = 1024;
+        else
+            blksize = 8192;
... do following here instead:

		blksize = 8192;
		if (bxinfo & ARMCR4_BLK_1K_MASK)
			blksize >>= 3;

[not sure if mailreader is screwing with indentation or what]
quoted
+
+        memsize += ((bxinfo & ARMCR4_BSZ_MASK) + 1) * blksize;
      }
      return memsize;

Attachments

  • smime.p7s [application/pkcs7-signature] 4219 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help