diff --git a/package/kernel/rtw88-usb/Makefile b/package/kernel/rtw88-usb/Makefile index cf05b4cc0..7afa41c7f 100644 --- a/package/kernel/rtw88-usb/Makefile +++ b/package/kernel/rtw88-usb/Makefile @@ -11,10 +11,10 @@ PKG_NAME:=rtw88-usb PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2023-06-28 +PKG_SOURCE_DATE:=2024-04-10 PKG_SOURCE_URL:=https://github.com/lwfinger/rtw88.git -PKG_SOURCE_VERSION:=7ca1ec0e768f083e4a2116d6978021814b83bb74 -PKG_MIRROR_HASH:=101e4769c8c25a0b1c186c2b65a1f03b4c600b36fdb20948ef3c82e75e2f6582 +PKG_SOURCE_VERSION:=2e9f468009df592a51990d024928034e0af1c2b4 +PKG_MIRROR_HASH:=684b30e58d8b990bbe141baae00c48439f45c9f39faa6f552ffb18afb6594c74 PKG_BUILD_PARALLEL:=1 diff --git a/package/kernel/rtw88-usb/patches/001-fix-merge-error.patch b/package/kernel/rtw88-usb/patches/001-fix-merge-error.patch new file mode 100644 index 000000000..4439c4f18 --- /dev/null +++ b/package/kernel/rtw88-usb/patches/001-fix-merge-error.patch @@ -0,0 +1,96 @@ +--- a/fw.c ++++ b/fw.c +@@ -1009,7 +1009,7 @@ static u8 rtw_get_rsvd_page_probe_req_location(struct rtw_dev *rtwdev, + if (rsvd_pkt->type != RSVD_PROBE_REQ) + continue; + if ((!ssid && !rsvd_pkt->ssid) || +- cfg80211_ssid_eq(rsvd_pkt->ssid, ssid)) ++ cfg80211_ssid_eq(rsvd_pkt->ssid, ssid)) + location = rsvd_pkt->page; + } + +--- a/mac.c ++++ b/mac.c +@@ -316,13 +316,6 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) + rtw_write8_clr(rtwdev, REG_SYS_STATUS1 + 1, BIT(0)); + } + +- if (pwr_on && rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) { +- if (chip->id == RTW_CHIP_TYPE_8822C || +- chip->id == RTW_CHIP_TYPE_8822B || +- chip->id == RTW_CHIP_TYPE_8821C) +- rtw_write8_clr(rtwdev, REG_SYS_STATUS1 + 1, BIT(0)); +- } +- + if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO) + rtw_write32(rtwdev, REG_SDIO_HIMR, imr); + +@@ -956,18 +949,6 @@ static int __rtw_download_firmware_legacy(struct rtw_dev *rtwdev, + rtw_write8(rtwdev, REG_MCUFW_CTRL, 0x00); + } + +- /* reset firmware if still present */ +- if (rtwdev->chip->id == RTW_CHIP_TYPE_8703B && +- rtw_read8_mask(rtwdev, REG_MCUFW_CTRL, BIT_RAM_DL_SEL)) { +- rtw_write8(rtwdev, REG_MCUFW_CTRL, 0x00); +- } +- +- /* reset firmware if still present */ +- if (rtwdev->chip->id == RTW_CHIP_TYPE_8703B && +- rtw_read8_mask(rtwdev, REG_MCUFW_CTRL, BIT_RAM_DL_SEL)) { +- rtw_write8(rtwdev, REG_MCUFW_CTRL, 0x00); +- } +- + en_download_firmware_legacy(rtwdev, true); + ret = download_firmware_legacy(rtwdev, fw->firmware->data, fw->firmware->size); + en_download_firmware_legacy(rtwdev, false); +--- a/main.c ++++ b/main.c +@@ -110,9 +110,7 @@ static const struct ieee80211_iface_limit rtw_iface_limits[] = { + }, + { + .max = 1, +- .types = BIT(NL80211_IFTYPE_AP) | +- BIT(NL80211_IFTYPE_P2P_CLIENT) | +- BIT(NL80211_IFTYPE_P2P_GO) ++ .types = BIT(NL80211_IFTYPE_AP), + } + }; + +@@ -2124,11 +2122,6 @@ static int rtw_chip_efuse_info_setup(struct rtw_dev *rtwdev) + dev_warn(rtwdev->dev, "efuse MAC invalid, using random\n"); + } + +- if (!is_valid_ether_addr(efuse->addr)) { +- eth_random_addr(efuse->addr); +- dev_warn(rtwdev->dev, "efuse MAC invalid, using random\n"); +- } +- + out_disable: + rtw_chip_efuse_disable(rtwdev); + +@@ -2361,9 +2354,7 @@ int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw) + hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_AP) | + BIT(NL80211_IFTYPE_ADHOC) | +- BIT(NL80211_IFTYPE_MESH_POINT) | +- BIT(NL80211_IFTYPE_P2P_CLIENT) | +- BIT(NL80211_IFTYPE_P2P_GO); ++ BIT(NL80211_IFTYPE_MESH_POINT); + hw->wiphy->available_antennas_tx = hal->antenna_tx; + hw->wiphy->available_antennas_rx = hal->antenna_rx; + +--- a/usb.c ++++ b/usb.c +@@ -93,11 +93,6 @@ static u32 rtw_usb_read(struct rtw_dev *rtwdev, u32 addr, u16 len) + rtwdev->chip->id == RTW_CHIP_TYPE_8821C) + rtw_usb_reg_sec(rtwdev, addr, data); + +- if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C || +- rtwdev->chip->id == RTW_CHIP_TYPE_8822B || +- rtwdev->chip->id == RTW_CHIP_TYPE_8821C) +- rtw_usb_reg_sec(rtwdev, addr, data); +- + return le32_to_cpu(*data); + } + diff --git a/package/kernel/rtw88-usb/patches/101-wireless-6.1.patch b/package/kernel/rtw88-usb/patches/101-wireless-6.1.patch index 89111d2f9..37a9bca9f 100644 --- a/package/kernel/rtw88-usb/patches/101-wireless-6.1.patch +++ b/package/kernel/rtw88-usb/patches/101-wireless-6.1.patch @@ -20,7 +20,7 @@ bfee->aid = bss_conf->aid; --- a/fw.c +++ b/fw.c -@@ -118,7 +118,7 @@ legacy: +@@ -191,7 +191,7 @@ legacy: si->ra_report.desc_rate = rate; si->ra_report.bit_rate = bit_rate; @@ -29,7 +29,7 @@ sta->deflink.agg.max_rc_amsdu_len = get_max_amsdu_len(bit_rate); #else sta->max_rc_amsdu_len = get_max_amsdu_len(bit_rate); -@@ -652,7 +652,7 @@ void rtw_fw_send_rssi_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si) +@@ -726,7 +726,7 @@ void rtw_fw_send_rssi_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si) rtw_fw_send_h2c_command(rtwdev, h2c_pkt); } @@ -38,7 +38,7 @@ void rtw_fw_send_ra_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, bool reset_ra_mask) #else -@@ -661,7 +661,7 @@ void rtw_fw_send_ra_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si) +@@ -735,7 +735,7 @@ void rtw_fw_send_ra_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si) { u8 h2c_pkt[H2C_PKT_SIZE] = {0}; bool disable_pt = true; @@ -47,7 +47,7 @@ bool reset_ra_mask = true; #endif -@@ -1154,7 +1154,7 @@ static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw, +@@ -1228,7 +1228,7 @@ static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw, switch (rsvd_pkt->type) { case RSVD_BEACON: @@ -56,7 +56,7 @@ skb_new = ieee80211_beacon_get_tim(hw, vif, &tim_offset, NULL, 0); #else skb_new = ieee80211_beacon_get_tim(hw, vif, &tim_offset, NULL); -@@ -1169,7 +1169,7 @@ static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw, +@@ -1243,7 +1243,7 @@ static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw, break; case RSVD_NULL: #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 17) @@ -65,7 +65,7 @@ skb_new = ieee80211_nullfunc_get(hw, vif, -1, false); #else skb_new = ieee80211_nullfunc_get(hw, vif, false); -@@ -1180,7 +1180,7 @@ static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw, +@@ -1254,7 +1254,7 @@ static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw, break; case RSVD_QOS_NULL: #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 17) @@ -76,7 +76,7 @@ skb_new = ieee80211_nullfunc_get(hw, vif, true); --- a/fw.h +++ b/fw.h -@@ -831,7 +831,7 @@ void rtw_fw_coex_query_hid_info(struct rtw_dev *rtwdev, u8 sub_id, u8 data); +@@ -834,7 +834,7 @@ void rtw_fw_coex_query_hid_info(struct rtw_dev *rtwdev, u8 sub_id, u8 data); void rtw_fw_bt_wifi_control(struct rtw_dev *rtwdev, u8 op_code, u8 *data); void rtw_fw_send_rssi_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si); @@ -152,7 +152,7 @@ u16 duration) --- a/main.c +++ b/main.c -@@ -192,7 +192,7 @@ static void rtw_vif_watch_dog_iter(void *data, u8 *mac, +@@ -191,7 +191,7 @@ static void rtw_vif_watch_dog_iter(void *data, struct ieee80211_vif *vif) struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv; if (vif->type == NL80211_IFTYPE_STATION) @@ -161,7 +161,7 @@ if (vif->cfg.assoc) #else if (vif->bss_conf.assoc) -@@ -345,7 +345,7 @@ int rtw_sta_add(struct rtw_dev *rtwdev, struct ieee80211_sta *sta, +@@ -343,7 +343,7 @@ int rtw_sta_add(struct rtw_dev *rtwdev, struct ieee80211_sta *sta, if (si->mac_id >= RTW_MAX_MAC_ID_NUM) return -ENOSPC; @@ -170,7 +170,7 @@ if (vif->type == NL80211_IFTYPE_STATION && vif->cfg.assoc == 0) #else if (vif->type == NL80211_IFTYPE_STATION && vif->bss_conf.assoc == 0) -@@ -574,7 +574,7 @@ EXPORT_SYMBOL(rtw_dump_reg); +@@ -572,7 +572,7 @@ EXPORT_SYMBOL(rtw_dump_reg); void rtw_vif_assoc_changed(struct rtw_vif *rtwvif, struct ieee80211_bss_conf *conf) { @@ -179,7 +179,7 @@ struct ieee80211_vif *vif = NULL; if (conf) -@@ -1002,7 +1002,7 @@ static void rtw_hw_config_rf_ant_num(struct rtw_dev *rtwdev, u8 hw_ant_num) +@@ -1000,7 +1000,7 @@ static void rtw_hw_config_rf_ant_num(struct rtw_dev *rtwdev, u8 hw_ant_num) static u64 get_vht_ra_mask(struct ieee80211_sta *sta) { u64 ra_mask = 0; @@ -188,7 +188,7 @@ u16 mcs_map = le16_to_cpu(sta->deflink.vht_cap.vht_mcs.rx_mcs_map); #else u16 mcs_map = le16_to_cpu(sta->vht_cap.vht_mcs.rx_mcs_map); -@@ -1226,26 +1226,26 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1224,26 +1224,26 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, bool is_vht_enable = false; bool is_support_sgi = false; @@ -219,7 +219,7 @@ } else if (sta->deflink.ht_cap.ht_supported) { ra_mask |= (sta->deflink.ht_cap.mcs.rx_mask[1] << 20) | (sta->deflink.ht_cap.mcs.rx_mask[0] << 12); -@@ -1268,20 +1268,20 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1266,20 +1266,20 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, ra_mask &= RA_MASK_VHT_RATES_1SS | RA_MASK_HT_RATES_1SS; if (hal->current_band_type == RTW_BAND_5G) { @@ -243,7 +243,7 @@ } else if (sta->deflink.ht_cap.ht_supported) { #else } else if (sta->ht_cap.ht_supported) { -@@ -1293,13 +1293,13 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1291,13 +1291,13 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, } dm_info->rrsr_val_init = RRSR_INIT_5G; } else if (hal->current_band_type == RTW_BAND_2G) { @@ -259,7 +259,7 @@ if (sta->deflink.vht_cap.vht_supported) { #else if (sta->vht_cap.vht_supported) { -@@ -1308,7 +1308,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1306,7 +1306,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, RA_MASK_OFDM_IN_VHT; wireless_set = WIRELESS_CCK | WIRELESS_OFDM | WIRELESS_HT | WIRELESS_VHT; @@ -268,7 +268,7 @@ } else if (sta->deflink.ht_cap.ht_supported) { #else } else if (sta->ht_cap.ht_supported) { -@@ -1317,7 +1317,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1315,7 +1315,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, RA_MASK_OFDM_IN_HT_2G; wireless_set = WIRELESS_CCK | WIRELESS_OFDM | WIRELESS_HT; @@ -277,7 +277,7 @@ } else if (sta->deflink.supp_rates[0] <= 0xf) { #else } else if (sta->supp_rates[0] <= 0xf) { -@@ -1334,14 +1334,14 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1332,14 +1332,14 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, wireless_set = 0; } @@ -294,7 +294,7 @@ is_support_sgi = sta->deflink.vht_cap.vht_supported && (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80); #else -@@ -1351,7 +1351,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1349,7 +1349,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, break; case IEEE80211_STA_RX_BW_40: bw_mode = RTW_CHANNEL_WIDTH_40; @@ -303,7 +303,7 @@ is_support_sgi = sta->deflink.ht_cap.ht_supported && (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_40); #else -@@ -1361,7 +1361,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1359,7 +1359,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, break; default: bw_mode = RTW_CHANNEL_WIDTH_20; @@ -312,7 +312,7 @@ is_support_sgi = sta->deflink.ht_cap.ht_supported && (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_20); #else -@@ -1371,14 +1371,14 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1369,14 +1369,14 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, break; } @@ -329,7 +329,7 @@ } else if (sta->deflink.ht_cap.ht_supported && ra_mask & 0xfff00000) { #else } else if (sta->ht_cap.ht_supported && ra_mask & 0xfff00000) { -@@ -1403,7 +1403,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, +@@ -1400,7 +1400,7 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, si->ra_mask = ra_mask; si->rate_id = rate_id; @@ -338,7 +338,7 @@ rtw_fw_send_ra_info(rtwdev, si, reset_ra_mask); #else rtw_fw_send_ra_info(rtwdev, si); -@@ -1783,7 +1783,7 @@ static void rtw_vif_smps_iter(void *data, u8 *mac, +@@ -1780,7 +1780,7 @@ static void rtw_vif_smps_iter(void *data, u8 *mac, { struct rtw_dev *rtwdev = (struct rtw_dev *)data; @@ -347,7 +347,7 @@ if (vif->type != NL80211_IFTYPE_STATION || !vif->cfg.assoc) #else if (vif->type != NL80211_IFTYPE_STATION || !vif->bss_conf.assoc) -@@ -1791,13 +1791,13 @@ static void rtw_vif_smps_iter(void *data, u8 *mac, +@@ -1788,13 +1788,13 @@ static void rtw_vif_smps_iter(void *data, u8 *mac, return; if (rtwdev->hal.txrx_1ss) @@ -363,7 +363,7 @@ ieee80211_request_smps(vif, 0, IEEE80211_SMPS_OFF); #else ieee80211_request_smps(vif, IEEE80211_SMPS_OFF); -@@ -2511,7 +2511,7 @@ static void rtw_check_sta_active_iter(void *data, u8 *mac, +@@ -2516,7 +2516,7 @@ static void rtw_check_sta_active_iter(void *data, struct ieee80211_vif *vif) if (vif->type != NL80211_IFTYPE_STATION) return; diff --git a/package/kernel/rtw88-usb/patches/102-disable-pcie.patch b/package/kernel/rtw88-usb/patches/102-disable-pcie.patch index d80af386a..f57ad4c88 100644 --- a/package/kernel/rtw88-usb/patches/102-disable-pcie.patch +++ b/package/kernel/rtw88-usb/patches/102-disable-pcie.patch @@ -1,6 +1,6 @@ --- a/Makefile +++ b/Makefile -@@ -24,10 +24,6 @@ NO_SKIP_SIGN := y +@@ -30,10 +30,6 @@ NO_SKIP_SIGN := y endif EXTRA_CFLAGS += -O2 @@ -11,7 +11,7 @@ EXTRA_CFLAGS += -DCONFIG_RTW88_DEBUG=1 EXTRA_CFLAGS += -DCONFIG_RTW88_DEBUGFS=1 #EXTRA_CFLAGS += -DCONFIG_RTW88_REGD_USER_REG_HINTS -@@ -54,9 +50,6 @@ rtw_core-objs += main.o \ +@@ -60,9 +56,6 @@ rtw_core-objs += main.o \ obj-m += rtw_8822b.o rtw_8822b-objs := rtw8822b.o rtw8822b_table.o @@ -21,7 +21,7 @@ obj-m += rtw_8822bu.o rtw_8822bu-objs := rtw8822bu.o -@@ -66,9 +59,6 @@ rtw_8822bs-objs := rtw8822bs.o +@@ -72,9 +65,6 @@ rtw_8822bs-objs := rtw8822bs.o obj-m += rtw_8822c.o rtw_8822c-objs := rtw8822c.o rtw8822c_table.o @@ -31,7 +31,7 @@ obj-m += rtw_8822cu.o rtw_8822cu-objs := rtw8822cu.o -@@ -78,9 +68,6 @@ rtw_8822cs-objs := rtw8822cs.o +@@ -102,9 +92,6 @@ rtw_8723cs-objs := rtw8723cs.o obj-m += rtw_8723d.o rtw_8723d-objs := rtw8723d.o rtw8723d_table.o @@ -41,16 +41,23 @@ obj-m += rtw_8723du.o rtw_8723du-objs := rtw8723du.o -@@ -90,18 +77,12 @@ rtw_8723ds-objs := rtw8723ds.o +@@ -114,15 +101,9 @@ rtw_8723ds-objs := rtw8723ds.o obj-m += rtw_8821c.o rtw_8821c-objs := rtw8821c.o rtw8821c_table.o -obj-m += rtw_8821ce.o -rtw_8821ce-objs := rtw8821ce.o - - obj-m += rtw_8821cs.o - rtw_8821cs-objs := rtw8821cs.o + obj-m += rtw_8821a.o + rtw_8821a-objs := rtw8821a.o rtw8821a_table.o +-obj-m += rtw_8821ae.o +-rtw_8821ae-objs := rtw8821ae.o +- + obj-m += rtw_8821au.o + rtw_8821au-objs := rtw8821au.o + +@@ -132,9 +113,6 @@ rtw_8821cs-objs := rtw8821cs.o obj-m += rtw_8821cu.o rtw_8821cu-objs := rtw8821cu.o