Module Name:    src
Committed By:   christos
Date:           Sat Oct  8 15:57:11 UTC 2016

Modified Files:
        src/sys/dev/ic: rt2860.c rt2860reg.h

Log Message:
sync antenna vals with OpenBSD, some changes from FreeBSD.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/ic/rt2860.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/ic/rt2860reg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/ic/rt2860.c
diff -u src/sys/dev/ic/rt2860.c:1.23 src/sys/dev/ic/rt2860.c:1.24
--- src/sys/dev/ic/rt2860.c:1.23	Tue Sep 27 16:37:05 2016
+++ src/sys/dev/ic/rt2860.c	Sat Oct  8 11:57:11 2016
@@ -1,6 +1,6 @@
-/*	$NetBSD: rt2860.c,v 1.23 2016/09/27 20:37:05 christos Exp $	*/
+/*	$NetBSD: rt2860.c,v 1.24 2016/10/08 15:57:11 christos Exp $	*/
 /*	$OpenBSD: rt2860.c,v 1.90 2016/04/13 10:49:26 mpi Exp $	*/
-/*	$FreeBSD: head/sys/dev/ral/rt2860.c 297793 2016-04-10 23:07:00Z pfg $ */
+/*	$FreeBSD: head/sys/dev/ral/rt2860.c 306591 2016-10-02 20:35:55Z avos $ */
 
 /*-
  * Copyright (c) 2007-2010 Damien Bergamini <damien.bergam...@free.fr>
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.23 2016/09/27 20:37:05 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.24 2016/10/08 15:57:11 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/sockio.h>
@@ -3228,6 +3228,7 @@ rt2860_get_rf(uint32_t rev)
 	case RT3070_RF_3053:	return "RT3053";
 	case RT5390_RF_5360:	return "RT5360";
 	case RT5390_RF_5390:	return "RT5390";
+	case RT5390_RF_5392:	return "RT5392";
 	default:		return "unknown";
 	}
 }
@@ -3250,9 +3251,11 @@ rt2860_read_eeprom(struct rt2860_softc *
 			sc->sc_srom_read = rt3090_efuse_read_2;
 	}
 
+#ifdef RAL_DEBUG
 	/* read EEPROM version */
 	val = rt2860_srom_read(sc, RT2860_EEPROM_VERSION);
 	DPRINTF(("EEPROM rev=%d, FAE=%d\n", val & 0xff, val >> 8));
+#endif
 
 	/* read MAC address */
 	val = rt2860_srom_read(sc, RT2860_EEPROM_MAC01);
@@ -3265,9 +3268,11 @@ rt2860_read_eeprom(struct rt2860_softc *
 	ic->ic_myaddr[4] = val & 0xff;
 	ic->ic_myaddr[5] = val >> 8;
 
+#ifdef RAL_DEBUG
 	/* read country code */
 	val = rt2860_srom_read(sc, RT2860_EEPROM_COUNTRY);
 	DPRINTF(("EEPROM region code=0x%04x\n", val));
+#endif
 
 	/* read vendor BBP settings */
 	for (i = 0; i < 8; i++) {
@@ -3309,33 +3314,12 @@ rt2860_read_eeprom(struct rt2860_softc *
 
 	/* read RF information */
 	val = rt2860_srom_read(sc, RT2860_EEPROM_ANTENNA);
-	if (sc->mac_ver >= 0x5390) {
+	if (sc->mac_ver >= 0x5390)
 		sc->rf_rev = rt2860_srom_read(sc, RT2860_EEPROM_CHIPID);
-		sc->ntxchains = (val >> 4) & 0xf;
-		sc->nrxchains = val & 0xf;
-	} else if (val == 0xffff) {
-		DPRINTF(("invalid EEPROM antenna info, using default\n"));
-		if (sc->mac_ver == 0x3593) {
-			/* default to RF3053 3T3R */
-			sc->rf_rev = RT3070_RF_3053;
-			sc->ntxchains = 3;
-			sc->nrxchains = 3;
-		} else if (sc->mac_ver >= 0x3071) {
-			/* default to RF3020 1T1R */
-			sc->rf_rev = RT3070_RF_3020;
-			sc->ntxchains = 1;
-			sc->nrxchains = 1;
-		} else {
-			/* default to RF2820 1T2R */
-			sc->rf_rev = RT2860_RF_2820;
-			sc->ntxchains = 1;
-			sc->nrxchains = 2;
-		}
-	} else {
+	else
 		sc->rf_rev = (val >> 8) & 0xf;
-		sc->ntxchains = (val >> 4) & 0xf;
-		sc->nrxchains = val & 0xf;
-	}
+	sc->ntxchains = (val >> 4) & 0xf;
+	sc->nrxchains = val & 0xf;
 	DPRINTF(("EEPROM RF rev=0x%02x chains=%dT%dR\n",
 	    sc->rf_rev, sc->ntxchains, sc->nrxchains));
 
@@ -3865,7 +3849,9 @@ rt2860_init(struct ifnet *ifp)
 		rt2860_stop(ifp, 1);
 		return ETIMEDOUT;
 	}
-	tmp &= 0xff0;
+	tmp &= ~(RT2860_RX_DMA_BUSY | RT2860_RX_DMA_EN | RT2860_TX_DMA_BUSY |
+	    RT2860_TX_DMA_EN);
+	tmp |= RT2860_TX_WB_DDONE;
 	RAL_WRITE(sc, RT2860_WPDMA_GLO_CFG, tmp);
 
 	/* disable interrupts mitigation */
@@ -3882,7 +3868,7 @@ rt2860_init(struct ifnet *ifp)
 	if (sc->rf_rev == RT3070_RF_2020 ||
 	    sc->rf_rev == RT3070_RF_3020 ||
 	    sc->rf_rev == RT3070_RF_3320 ||
-	    sc->mac_ver == 0x5390)
+	    sc->rf_rev == RT5390_RF_5390)
 		rt3090_set_rx_antenna(sc, 0);
 
 	/* send LEDs operating mode to microcontroller */

Index: src/sys/dev/ic/rt2860reg.h
diff -u src/sys/dev/ic/rt2860reg.h:1.6 src/sys/dev/ic/rt2860reg.h:1.7
--- src/sys/dev/ic/rt2860reg.h:1.6	Fri Sep 16 05:25:30 2016
+++ src/sys/dev/ic/rt2860reg.h	Sat Oct  8 11:57:11 2016
@@ -1,5 +1,6 @@
-/*	$NetBSD: rt2860reg.h,v 1.6 2016/09/16 09:25:30 mlelstv Exp $	*/
-/*	$OpenBSD: rt2860reg.h,v 1.32 2014/05/24 10:10:17 stsp Exp $	*/
+/*	$NetBSD: rt2860reg.h,v 1.7 2016/10/08 15:57:11 christos Exp $	*/
+/*	$OpenBSD: rt2860reg.h,v 1.33 2016/08/17 11:50:52 stsp Exp $	*/
+/*	$FreeBSD: head/sys/dev/ral/rt2860reg.h 301575 2016-06-08 02:37:23Z kevlo */
 
 /*-
  * Copyright (c) 2007
@@ -83,8 +84,6 @@
 #define RT3070_LDO_CFG0			0x05d4
 #define RT3070_GPIO_SWITCH		0x05dc
 
-
-
 /* RT5592 registers */
 #define RT5592_DEBUG_INDEX		0x05e8
 
@@ -767,6 +766,11 @@
 #define RT3593_CP_IC_MASK	0xe0
 #define RT3593_CP_IC_SHIFT	5
 
+/* possible flags for RT3053 RF register 46 */
+#define RT3593_RX_CTB	(1U << 5)
+
+#define RT3090_DEF_LNA	10
+
 /* possible flags for RT5390 RF register 38. */
 #define RT5390_RX_LO1	(1U << 5)
 
@@ -949,7 +953,7 @@ struct rt2860_rxwi {
 #define RT5390_RF_5370	0x5370	/* 1T1R */
 #define RT5390_RF_5372	0x5372	/* 2T2R */
 #define RT5390_RF_5390	0x5390	/* 1T1R */
-
+#define RT5390_RF_5392	0x5392	/* 2T2R */
 
 /* USB commands for RT2870 only */
 #define RT2870_RESET		1
@@ -1194,8 +1198,8 @@ static const struct rt2860_rate {
 	{  65, 0x2c },	\
 	{  66, 0x38 },	\
 	{  68, 0x0b },	\
-	{  69, 0x12 },	\
-	{  70, 0x0a },	\
+	{  69, 0x0d },	\
+	{  70, 0x06 },	\
 	{  73, 0x13 },	\
 	{  75, 0x46 },	\
 	{  76, 0x28 },	\
@@ -1203,7 +1207,7 @@ static const struct rt2860_rate {
 	{  81, 0x37 },	\
 	{  82, 0x62 },	\
 	{  83, 0x7a },	\
-	{  84, 0x19 },	\
+	{  84, 0x9a },	\
 	{  86, 0x38 },	\
 	{  91, 0x04 },	\
 	{  92, 0x02 },	\
@@ -1486,15 +1490,82 @@ static const struct rt2860_rate {
 	{ 20, 0xba },	\
 	{ 21, 0xdb },	\
 	{ 24, 0x16 },	\
-	{ 25, 0x03 },	\
+	{ 25, 0x01 },	\
 	{ 29, 0x1f }
 
+#define RT3572_DEF_RF	\
+	{  0, 0x70 },	\
+	{  1, 0x81 },	\
+	{  2, 0xf1 },	\
+	{  3, 0x02 },	\
+	{  4, 0x4c },	\
+	{  5, 0x05 },	\
+	{  6, 0x4a },	\
+	{  7, 0xd8 },	\
+	{  9, 0xc3 },	\
+	{ 10, 0xf1 },	\
+	{ 11, 0xb9 },	\
+	{ 12, 0x70 },	\
+	{ 13, 0x65 },	\
+	{ 14, 0xa0 },	\
+	{ 15, 0x53 },	\
+	{ 16, 0x4c },	\
+	{ 17, 0x23 },	\
+	{ 18, 0xac },	\
+	{ 19, 0x93 },	\
+	{ 20, 0xb3 },	\
+	{ 21, 0xd0 },	\
+	{ 22, 0x00 },  	\
+	{ 23, 0x3c },	\
+	{ 24, 0x16 },	\
+	{ 25, 0x15 },	\
+	{ 26, 0x85 },	\
+	{ 27, 0x00 },	\
+	{ 28, 0x00 },	\
+	{ 29, 0x9b },	\
+	{ 30, 0x09 },	\
+	{ 31, 0x10 }
+
+#define RT3593_DEF_RF	\
+	{  1, 0x03 },	\
+	{  3, 0x80 },	\
+	{  5, 0x00 },	\
+	{  6, 0x40 },	\
+	{  8, 0xf1 },	\
+	{  9, 0x02 },	\
+	{ 10, 0xd3 },	\
+	{ 11, 0x40 },	\
+	{ 12, 0x4e },	\
+	{ 13, 0x12 },	\
+	{ 18, 0x40 },	\
+	{ 22, 0x20 },	\
+	{ 30, 0x10 },	\
+	{ 31, 0x80 },	\
+	{ 32, 0x78 },	\
+	{ 33, 0x3b },	\
+	{ 34, 0x3c },	\
+	{ 35, 0xe0 },	\
+	{ 38, 0x86 },	\
+	{ 39, 0x23 },	\
+	{ 44, 0xd3 },	\
+	{ 45, 0xbb },	\
+	{ 46, 0x60 },	\
+	{ 49, 0x81 },	\
+	{ 50, 0x86 },	\
+	{ 51, 0x75 },	\
+	{ 52, 0x45 },	\
+	{ 53, 0x18 },	\
+	{ 54, 0x18 },	\
+	{ 55, 0x18 },	\
+	{ 56, 0xdb },	\
+	{ 57, 0x6e }
+
 #define RT5390_DEF_RF	\
 	{  1, 0x0f },	\
 	{  2, 0x80 },	\
 	{  3, 0x88 },	\
 	{  5, 0x10 },	\
-	{  6, 0xe0 },	\
+	{  6, 0xa0 },	\
 	{  7, 0x00 },	\
 	{ 10, 0x53 },	\
 	{ 11, 0x4a },	\
@@ -1510,7 +1581,7 @@ static const struct rt2860_rate {
 	{ 22, 0x20 },	\
 	{ 23, 0x00 },	\
 	{ 24, 0x00 },	\
-	{ 25, 0x80 },	\
+	{ 25, 0xc0 },	\
 	{ 26, 0x00 },	\
 	{ 27, 0x09 },	\
 	{ 28, 0x00 },	\
@@ -1531,26 +1602,25 @@ static const struct rt2860_rate {
 	{ 43, 0x9a },	\
 	{ 44, 0x0e },	\
 	{ 45, 0xa2 },	\
-	{ 46, 0x73 },	\
+	{ 46, 0x7b },	\
 	{ 47, 0x00 },	\
 	{ 48, 0x10 },	\
 	{ 49, 0x94 },	\
 	{ 52, 0x38 },	\
-	{ 53, 0x00 },	\
+	{ 53, 0x84 },	\
 	{ 54, 0x78 },	\
-	{ 55, 0x23 },	\
+	{ 55, 0x44 },	\
 	{ 56, 0x22 },	\
 	{ 57, 0x80 },	\
 	{ 58, 0x7f },	\
-	{ 59, 0x07 },	\
+	{ 59, 0x8f },	\
 	{ 60, 0x45 },	\
-	{ 61, 0xd1 },	\
+	{ 61, 0xdd },	\
 	{ 62, 0x00 },	\
 	{ 63, 0x00 }
 
 #define RT5392_DEF_RF	\
 	{  1, 0x17 },	\
-	{  2, 0x80 },	\
 	{  3, 0x88 },	\
 	{  5, 0x10 },	\
 	{  6, 0xe0 },	\
@@ -1576,7 +1646,7 @@ static const struct rt2860_rate {
 	{ 29, 0x10 },	\
 	{ 30, 0x10 },	\
 	{ 31, 0x80 },	\
-	{ 32, 0x80 },	\
+	{ 32, 0x20 },	\
 	{ 33, 0xc0 },	\
 	{ 34, 0x07 },	\
 	{ 35, 0x12 },	\
@@ -1607,74 +1677,7 @@ static const struct rt2860_rate {
 	{ 60, 0x45 },	\
 	{ 61, 0x91 },	\
 	{ 62, 0x39 },	\
-	{ 63, 0x00 }
-
-#define RT3572_DEF_RF	\
-	{  0, 0x70 },	\
-	{  1, 0x81 },	\
-	{  2, 0xf1 },	\
-	{  3, 0x02 },	\
-	{  4, 0x4c },	\
-	{  5, 0x05 },	\
-	{  6, 0x4a },	\
-	{  7, 0xd8 },	\
-	{  9, 0xc3 },	\
-	{ 10, 0xf1 },	\
-	{ 11, 0xb9 },	\
-	{ 12, 0x70 },	\
-	{ 13, 0x65 },	\
-	{ 14, 0xa0 },	\
-	{ 15, 0x53 },	\
-	{ 16, 0x4c },	\
-	{ 17, 0x23 },	\
-	{ 18, 0xac },	\
-	{ 19, 0x93 },	\
-	{ 20, 0xb3 },	\
-	{ 21, 0xd0 },	\
-	{ 22, 0x00 },  	\
-	{ 23, 0x3c },	\
-	{ 24, 0x16 },	\
-	{ 25, 0x15 },	\
-	{ 26, 0x85 },	\
-	{ 27, 0x00 },	\
-	{ 28, 0x00 },	\
-	{ 29, 0x9b },	\
-	{ 30, 0x09 },	\
-	{ 31, 0x10 }
-
-#define RT3593_DEF_RF	\
-	{  1, 0x03 },	\
-	{  3, 0x80 },	\
-	{  5, 0x00 },	\
-	{  6, 0x40 },	\
-	{  8, 0xf1 },	\
-	{  9, 0x02 },	\
-	{ 10, 0xd3 },	\
-	{ 11, 0x40 },	\
-	{ 12, 0x4e },	\
-	{ 13, 0x12 },	\
-	{ 18, 0x40 },	\
-	{ 22, 0x20 },	\
-	{ 30, 0x10 },	\
-	{ 31, 0x80 },	\
-	{ 32, 0x78 },	\
-	{ 33, 0x3b },	\
-	{ 34, 0x3c },	\
-	{ 35, 0xe0 },	\
-	{ 38, 0x86 },	\
-	{ 39, 0x23 },	\
-	{ 44, 0xd3 },	\
-	{ 45, 0xbb },	\
-	{ 46, 0x60 },	\
-	{ 49, 0x81 },	\
-	{ 50, 0x86 },	\
-	{ 51, 0x75 },	\
-	{ 52, 0x45 },	\
-	{ 53, 0x18 },	\
-	{ 54, 0x18 },	\
-	{ 55, 0x18 },	\
-	{ 56, 0xdb },	\
-	{ 57, 0x6e }
+	{ 63, 0x07 }
 
 #define RT5592_DEF_RF	\
 	{  1, 0x3f },	\

Reply via email to