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 }, \