Fix radiotap header for RTL8814AU

This commit is contained in:
kimocoder 2019-04-07 18:02:57 +02:00
parent 22d89154fd
commit 78dbffdf16
3 changed files with 22 additions and 16 deletions

View File

@ -3964,6 +3964,12 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
rtap_hdr = (struct ieee80211_radiotap_header *)&hdr_buf[0];
rtap_hdr->it_version = PKTHDR_RADIOTAP_VERSION;
#ifdef CONFIG_RTL8814A
/* RTL8814AU rx descriptor has no bandwidth, ldpc, stbc and sgi info */
/* fixup bandwidth */
pattrib->bw = pattrib->phy_info.band_width & 0x03;
#endif
/* tsft */
if (pattrib->tsfl) {
u64 tmp_64bit;
@ -4082,22 +4088,19 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
hdr_buf[rt_len] |= BIT1; /* MCS index known */
/* bandwidth */
#ifdef CONFIG_RTL8814A
if(pattrib->physt) {
hdr_buf[rt_len] |= BIT0;
hdr_buf[rt_len+1] |= (pattrib->phy_info.band_width & 0x03);
}
#else
hdr_buf[rt_len] |= BIT0;
hdr_buf[rt_len + 1] |= (pattrib->bw & 0x03);
#endif
/* guard interval */
#ifndef CONFIG_RTL8814A
hdr_buf[rt_len] |= BIT2;
#endif
hdr_buf[rt_len + 1] |= (pattrib->sgi & 0x01) << 2;
/* STBC */
#ifndef CONFIG_RTL8814A
hdr_buf[rt_len] |= BIT5;
#endif
hdr_buf[rt_len + 1] |= (pattrib->stbc & 0x03) << 5;
rt_len += 2;
@ -4132,7 +4135,9 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
hdr_buf[rt_len + 2] |= (pattrib->sgi & 0x01) << 2;
/* LDPC extra OFDM symbol */
#ifndef CONFIG_RTL8814A
tmp_16bit |= BIT4;
#endif
hdr_buf[rt_len + 2] |= (pattrib->ldpc & 0x01) << 4;
memcpy(&hdr_buf[rt_len], &tmp_16bit, 2);

View File

@ -299,13 +299,13 @@ odm_config_bb_with_header_file(
/*if (p_dm->rfe_type == 0)
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type0);
else if (dm->rfe_type == 2)
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type2);
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type2);
else if (dm->rfe_type == 3)
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type3);
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type3);
else if (dm->rfe_type == 4)
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type4);
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type4);
else if (dm->rfe_type == 5)
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type5);
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type5);
else if (dm->rfe_type == 7)
READ_AND_CONFIG_MP(8814a,_phy_reg_pg_type7);
else if (dm->rfe_type == 8)

View File

@ -3939,19 +3939,20 @@ int value;
value = dbm;
#endif
if(value < 0)
if (value < 0)
value = 0;
if(value > 40)
if (value > 40)
value = 40;
if(type == NL80211_TX_POWER_FIXED) {
if (type == NL80211_TX_POWER_FIXED) {
pHalData->CurrentTxPwrIdx = value;
rtw_hal_set_tx_power_level(padapter, pHalData->current_channel);
} else
} else {
return -EOPNOTSUPP;
}
return -EOPNOTSUPP;
RTW_INFO("%s\n", __func__);