[PATCH v3 08/10] mt76: mt7915: implement testmode rx support

Felix Fietkau nbd at nbd.name
Wed Oct 14 06:23:00 EDT 2020


On 2020-10-12 14:54, Shayne Chen wrote:
> Support testmode rx and display rx statistic by parsing RXV packet
> type, which is currently only enabled in testmode.
> 
> Reviewed-by: Ryder Lee <ryder.lee at mediatek.com>
> Signed-off-by: Shayne Chen <shayne.chen at mediatek.com>
> ---
> v2: change last_snr to u8
> v3: use nla_put_u8 for MT76_TM_RX_ATTR_SNR
>     change snr variable type to u8 in mt7915_mac_fill_rx_vector
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/testmode.c b/drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
> index 5d95766..acab268 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
> @@ -113,6 +113,31 @@ mt7915_tm_reg_backup_restore(struct mt7915_dev *dev, struct mt7915_phy *phy)
>  	mt76_clear(dev, MT_TMAC_TCR0(0), MT_TMAC_TCR0_TBTT_STOP_CTRL);
>  }
>  
> +static int
> +mt7915_tm_config_rx_filter(struct mt7915_dev *dev, bool en)
> +{
> +	struct mt7915_tm_cmd req = {
> +		.testmode_en = 1,
> +		.param_idx = MCU_ATE_SET_RX_FILTER,
> +		.param.filter.report_en = en,
> +		.param.filter.band = 0,	/* TODO: support dbdc */
> +	};
> +	__le32 mask = RX_FILTER_NOT_OWN_BTIM |
> +		      RX_FILTER_NOT_OWN_UCAST |
> +		      RX_FILTER_RTS | RX_FILTER_CTS |
> +		      RX_FILTER_CTRL_RSV |
> +		      RX_FILTER_BC_MC_BSSID_A2 |
> +		      RX_FILTER_BC_MC_BSSID_A3 |
> +		      RX_FILTER_BC_MC_OMAC_A3 |
> +		      RX_FILTER_PROTOCOL_VERSION |
> +		      RX_FILTER_FCS_ERR;
> +
> +	req.param.filter.mask = cpu_to_le32(mask);
> +
> +	return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_ATE_CTRL, &req,
> +				 sizeof(req), false);
Why do we need this?
In order to use testmode you have to set up a monitor mode interface,
which should configure the rx filter settings properly already.

- Felix



More information about the Linux-mediatek mailing list