Skip to content

Commit

Permalink
8821a, 8812a: Switch to dynamic RX aggregation
Browse files Browse the repository at this point in the history
  • Loading branch information
Bitterblue Smith committed Jul 21, 2024
1 parent 6ed5f63 commit e0acafe
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions rtw8821a.c
Original file line number Diff line number Diff line change
Expand Up @@ -551,21 +551,25 @@ static void rtw8821au_tx_aggregation(struct rtw_dev *rtwdev)
chip->usb_tx_agg_desc_num << 1);
}

static void rtw8821au_rx_aggregation(struct rtw_dev *rtwdev)
static void rtw8821au_rx_aggregation(struct rtw_dev *rtwdev, bool enable)
{
struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
enum usb_device_speed speed = rtwusb->udev->speed;
u8 rxagg_usb_size, rxagg_usb_timeout;
u16 val16;

if (speed == USB_SPEED_SUPER) {
if (rtwusb->udev->speed == USB_SPEED_SUPER) {
rxagg_usb_size = 0x7;
rxagg_usb_timeout = 0x1a;
} else {
rxagg_usb_size = 0x5;
rxagg_usb_timeout = 0x20;
}

if (!enable) {
rxagg_usb_size = 0x0;
rxagg_usb_timeout = 0x1;
}

val16 = (rxagg_usb_timeout << 8) | rxagg_usb_size;
rtw_write16(rtwdev, REG_RXDMA_AGG_PG_TH, val16);

Expand Down Expand Up @@ -1222,7 +1226,6 @@ static int rtw8821a_power_on(struct rtw_dev *rtwdev)
rtw_write8(rtwdev, REG_ACKTO, 0x80);

rtw8821au_tx_aggregation(rtwdev);
rtw8821au_rx_aggregation(rtwdev);

rtw8821a_init_beacon_parameters(rtwdev);
rtw_write8(rtwdev, REG_BCN_MAX_ERR, 0xff);
Expand Down Expand Up @@ -3808,6 +3811,7 @@ static struct rtw_chip_ops rtw8821a_ops = {
.set_gid_table = NULL,
.cfg_csi_rate = NULL,
.fill_txdesc_checksum = rtw8821a_fill_txdesc_checksum,
.rx_aggregation = rtw8821au_rx_aggregation,
.coex_set_init = rtw8821a_coex_cfg_init,
.coex_set_ant_switch = rtw8821a_coex_cfg_ant_switch,
.coex_set_gnt_fix = rtw8821a_coex_cfg_gnt_fix,
Expand Down

0 comments on commit e0acafe

Please sign in to comment.