Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 May 2016 05:06:48 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r300194 - head/sys/dev/bwn
Message-ID:  <201605190506.u4J56mfi078182@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Thu May 19 05:06:48 2016
New Revision: 300194
URL: https://svnweb.freebsd.org/changeset/base/300194

Log:
  [bwn] program in the MAC capabilities somewhere where later microcode
  expects it.
  
  Obtained from:	Linux b43

Modified:
  head/sys/dev/bwn/if_bwn.c
  head/sys/dev/bwn/if_bwnreg.h

Modified: head/sys/dev/bwn/if_bwn.c
==============================================================================
--- head/sys/dev/bwn/if_bwn.c	Thu May 19 05:06:12 2016	(r300193)
+++ head/sys/dev/bwn/if_bwn.c	Thu May 19 05:06:48 2016	(r300194)
@@ -2071,6 +2071,19 @@ bwn_core_init(struct bwn_mac *mac)
 	hf &= ~BWN_HF_SKIP_CFP_UPDATE;
 	bwn_hf_write(mac, hf);
 
+	/* Tell the firmware about the MAC capabilities */
+	if (siba_get_revid(sc->sc_dev) >= 13) {
+		uint32_t cap;
+		cap = BWN_READ_4(mac, BWN_MAC_HW_CAP);
+		DPRINTF(sc, BWN_DEBUG_RESET,
+		    "%s: hw capabilities: 0x%08x\n",
+		    __func__, cap);
+		bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_MACHW_L,
+		    cap & 0xffff);
+		bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_MACHW_H,
+		    (cap >> 16) & 0xffff);
+	}
+
 	bwn_set_txretry(mac, BWN_RETRY_SHORT, BWN_RETRY_LONG);
 	bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_SHORT_RETRY_FALLBACK, 3);
 	bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_LONG_RETRY_FALLBACK, 2);

Modified: head/sys/dev/bwn/if_bwnreg.h
==============================================================================
--- head/sys/dev/bwn/if_bwnreg.h	Thu May 19 05:06:12 2016	(r300193)
+++ head/sys/dev/bwn/if_bwnreg.h	Thu May 19 05:06:48 2016	(r300194)
@@ -169,6 +169,7 @@
 #define	BWN_RAM_CONTROL			0x130
 #define	BWN_RAM_DATA			0x134
 #define	BWN_PS_STATUS			0x140
+#define	BWN_MAC_HW_CAP			0x15c	/* core rev >= 13 */
 #define	BWN_RF_HWENABLED_HI		0x158
 #define	BWN_RF_HWENABLED_HI_MASK	(1 << 16)
 #define	BWN_SHM_CONTROL			0x160
@@ -284,6 +285,8 @@
 #define	BWN_SHARED_SPU_WAKEUP		0x0094
 #define	BWN_SHARED_PRETBTT		0x0096
 #define	BWN_SHARED_CHAN			0x00a0
+#define	BWN_SHARED_MACHW_L		0x00c0
+#define	BWN_SHARED_MACHW_H		0x00c2
 #define	BWN_SHARED_AUTOINC		0x0100
 #define	BWN_SHARED_PROBE_RESP_PHYCTL	0x0188
 #define	BWN_SHARED_EDCFQ		0x0240



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605190506.u4J56mfi078182>