@@ -531,6 +531,7 @@ struct rtl8xxxu_txdesc40 {
531
531
#define TXDESC32_CTS_SELF_ENABLE BIT(11)
532
532
#define TXDESC32_RTS_CTS_ENABLE BIT(12)
533
533
#define TXDESC32_HW_RTS_ENABLE BIT(13)
534
+ #define TXDESC32_PT_STAGE_MASK GENMASK(17, 15)
534
535
#define TXDESC_PRIME_CH_OFF_LOWER BIT(20)
535
536
#define TXDESC_PRIME_CH_OFF_UPPER BIT(21)
536
537
#define TXDESC32_SHORT_PREAMBLE BIT(24)
@@ -1376,6 +1377,39 @@ struct rtl8xxxu_ra_report {
1376
1377
u8 desc_rate ;
1377
1378
};
1378
1379
1380
+ struct rtl8xxxu_ra_info {
1381
+ u8 rate_id ;
1382
+ u32 rate_mask ;
1383
+ u32 ra_use_rate ;
1384
+ u8 rate_sgi ;
1385
+ u8 rssi_sta_ra ; /* Percentage */
1386
+ u8 pre_rssi_sta_ra ;
1387
+ u8 sgi_enable ;
1388
+ u8 decision_rate ;
1389
+ u8 pre_rate ;
1390
+ u8 highest_rate ;
1391
+ u8 lowest_rate ;
1392
+ u32 nsc_up ;
1393
+ u32 nsc_down ;
1394
+ u32 total ;
1395
+ u16 retry [5 ];
1396
+ u16 drop ;
1397
+ u16 rpt_time ;
1398
+ u16 pre_min_rpt_time ;
1399
+ u8 dynamic_tx_rpt_timing_counter ;
1400
+ u8 ra_waiting_counter ;
1401
+ u8 ra_pending_counter ;
1402
+ u8 ra_drop_after_down ;
1403
+ u8 pt_try_state ; /* 0 trying state, 1 for decision state */
1404
+ u8 pt_stage ; /* 0~6 */
1405
+ u8 pt_stop_count ; /* Stop PT counter */
1406
+ u8 pt_pre_rate ; /* if rate change do PT */
1407
+ u8 pt_pre_rssi ; /* if RSSI change 5% do PT */
1408
+ u8 pt_mode_ss ; /* decide which rate should do PT */
1409
+ u8 ra_stage ; /* StageRA, decide how many times RA will be done between PT */
1410
+ u8 pt_smooth_factor ;
1411
+ };
1412
+
1379
1413
#define CFO_TH_XTAL_HIGH 20 /* kHz */
1380
1414
#define CFO_TH_XTAL_LOW 10 /* kHz */
1381
1415
#define CFO_TH_ATC 80 /* kHz */
@@ -1509,6 +1543,7 @@ struct rtl8xxxu_priv {
1509
1543
struct rtl8xxxu_btcoex bt_coex ;
1510
1544
struct rtl8xxxu_ra_report ra_report ;
1511
1545
struct rtl8xxxu_cfo_tracking cfo_tracking ;
1546
+ struct rtl8xxxu_ra_info ra_info ;
1512
1547
};
1513
1548
1514
1549
struct rtl8xxxu_rx_urb {
@@ -1684,6 +1719,10 @@ void rtl8723bu_phy_init_antenna_selection(struct rtl8xxxu_priv *priv);
1684
1719
void rtl8723a_set_crystal_cap (struct rtl8xxxu_priv * priv , u8 crystal_cap );
1685
1720
void rtl8188f_set_crystal_cap (struct rtl8xxxu_priv * priv , u8 crystal_cap );
1686
1721
s8 rtl8723a_cck_rssi (struct rtl8xxxu_priv * priv , u8 cck_agc_rpt );
1722
+ void rtl8xxxu_update_ra_report (struct rtl8xxxu_ra_report * rarpt ,
1723
+ u8 rate , u8 sgi , u8 bw );
1724
+ void rtl8188e_ra_info_init_all (struct rtl8xxxu_ra_info * ra );
1725
+ void rtl8188e_handle_ra_tx_report2 (struct rtl8xxxu_priv * priv , struct sk_buff * skb );
1687
1726
1688
1727
extern struct rtl8xxxu_fileops rtl8188fu_fops ;
1689
1728
extern struct rtl8xxxu_fileops rtl8188eu_fops ;
0 commit comments