Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 961621ab authored by Helmut Schaa's avatar Helmut Schaa Committed by John W. Linville
Browse files

rt2x00: Add TXOP_CTRL_CFG register definition



Remove the magic value initialisation of the TXOP_CTRL_CFG register by
defining its fields and using them during intialisation. The field
RESERVED_TRUN_EN is referred to as reserved, however it is set to 1 by
the legacy drivers. Hence, do the same.

Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 066dae93
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -960,8 +960,31 @@

/*
 * TXOP_CTRL_CFG:
 * TIMEOUT_TRUN_EN: Enable/Disable TXOP timeout truncation
 * AC_TRUN_EN: Enable/Disable truncation for AC change
 * TXRATEGRP_TRUN_EN: Enable/Disable truncation for TX rate group change
 * USER_MODE_TRUN_EN: Enable/Disable truncation for user TXOP mode
 * MIMO_PS_TRUN_EN: Enable/Disable truncation for MIMO PS RTS/CTS
 * RESERVED_TRUN_EN: Reserved
 * LSIG_TXOP_EN: Enable/Disable L-SIG TXOP protection
 * EXT_CCA_EN: Enable/Disable extension channel CCA reference (Defer 40Mhz
 *	       transmissions if extension CCA is clear).
 * EXT_CCA_DLY: Extension CCA signal delay time (unit: us)
 * EXT_CWMIN: CwMin for extension channel backoff
 *	      0: Disabled
 *
 */
#define TXOP_CTRL_CFG			0x1340
#define TXOP_CTRL_CFG_TIMEOUT_TRUN_EN	FIELD32(0x00000001)
#define TXOP_CTRL_CFG_AC_TRUN_EN	FIELD32(0x00000002)
#define TXOP_CTRL_CFG_TXRATEGRP_TRUN_EN	FIELD32(0x00000004)
#define TXOP_CTRL_CFG_USER_MODE_TRUN_EN	FIELD32(0x00000008)
#define TXOP_CTRL_CFG_MIMO_PS_TRUN_EN	FIELD32(0x00000010)
#define TXOP_CTRL_CFG_RESERVED_TRUN_EN	FIELD32(0x00000020)
#define TXOP_CTRL_CFG_LSIG_TXOP_EN	FIELD32(0x00000040)
#define TXOP_CTRL_CFG_EXT_CCA_EN	FIELD32(0x00000080)
#define TXOP_CTRL_CFG_EXT_CCA_DLY	FIELD32(0x0000ff00)
#define TXOP_CTRL_CFG_EXT_CWMIN		FIELD32(0x000f0000)

/*
 * TX_RTS_CFG:
+17 −1
Original line number Diff line number Diff line
@@ -2097,7 +2097,23 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
		rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
	}

	rt2800_register_write(rt2x00dev, TXOP_CTRL_CFG, 0x0000583f);
	/*
	 * The legacy driver also sets TXOP_CTRL_CFG_RESERVED_TRUN_EN to 1
	 * although it is reserved.
	 */
	rt2800_register_read(rt2x00dev, TXOP_CTRL_CFG, &reg);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_TIMEOUT_TRUN_EN, 1);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_AC_TRUN_EN, 1);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_TXRATEGRP_TRUN_EN, 1);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_USER_MODE_TRUN_EN, 1);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_MIMO_PS_TRUN_EN, 1);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_RESERVED_TRUN_EN, 1);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_LSIG_TXOP_EN, 0);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_EXT_CCA_EN, 0);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_EXT_CCA_DLY, 88);
	rt2x00_set_field32(&reg, TXOP_CTRL_CFG_EXT_CWMIN, 0);
	rt2800_register_write(rt2x00dev, TXOP_CTRL_CFG, reg);

	rt2800_register_write(rt2x00dev, TXOP_HLDR_ET, 0x00000002);

	rt2800_register_read(rt2x00dev, TX_RTS_CFG, &reg);