diff --git a/package/network/services/hostapd/src/src/ap/ucode.c b/package/network/services/hostapd/src/src/ap/ucode.c index 080fe48b11..f0b4ce4eb8 100644 --- a/package/network/services/hostapd/src/src/ap/ucode.c +++ b/package/network/services/hostapd/src/src/ap/ucode.c @@ -333,36 +333,18 @@ uc_hostapd_iface_start(uc_vm_t *vm, size_t nargs) conf->channel = intval; if ((intval = ucv_int64_get(ucv_object_get(info, "sec_channel", NULL))) && !errno) conf->secondary_channel = intval; -#ifdef CONFIG_IEEE80211AC - if ((intval = ucv_int64_get(ucv_object_get(info, "center_seg0_idx", NULL))) && !errno) { - conf->vht_oper_centr_freq_seg0_idx = intval; -#ifdef CONFIG_IEEE80211AX - conf->he_oper_centr_freq_seg0_idx = intval; -#endif -#ifdef CONFIG_IEEE80211BE - conf->eht_oper_centr_freq_seg0_idx = intval; -#endif - } - if ((intval = ucv_int64_get(ucv_object_get(info, "center_seg1_idx", NULL))) && !errno) { - conf->vht_oper_centr_freq_seg1_idx = intval; -#ifdef CONFIG_IEEE80211AX - conf->he_oper_centr_freq_seg1_idx = intval; -#endif -#ifdef CONFIG_IEEE80211BE - conf->eht_oper_centr_freq_seg1_idx = intval; -#endif - } + + intval = ucv_int64_get(ucv_object_get(info, "center_seg0_idx", NULL)); + if (!errno) + hostapd_set_oper_centr_freq_seg0_idx(conf, intval); + + intval = ucv_int64_get(ucv_object_get(info, "center_seg1_idx", NULL)); + if (!errno) + hostapd_set_oper_centr_freq_seg1_idx(conf, intval); + intval = ucv_int64_get(ucv_object_get(info, "oper_chwidth", NULL)); - if (!errno) { - conf->vht_oper_chwidth = intval; -#ifdef CONFIG_IEEE80211AX - conf->he_oper_chwidth = intval; -#endif -#ifdef CONFIG_IEEE80211BE - conf->eht_oper_chwidth = intval; -#endif - } -#endif + if (!errno) + hostapd_set_oper_chwidth(conf, intval); out: if (conf->channel) diff --git a/package/network/services/hostapd/src/src/utils/ucode.c b/package/network/services/hostapd/src/src/utils/ucode.c index 44169f0bf0..896ef46e1f 100644 --- a/package/network/services/hostapd/src/src/utils/ucode.c +++ b/package/network/services/hostapd/src/src/utils/ucode.c @@ -129,7 +129,10 @@ uc_value_t *uc_wpa_freq_info(uc_vm_t *vm, size_t nargs) tmp_channel &= ~((8 << width) - 1); center_idx = tmp_channel + center_ofs + (4 << width) - 1; - ucv_object_add(ret, "center_seg0_idx", ucv_int64_new(center_idx)); + if (freq_val < 3000) + ucv_object_add(ret, "center_seg0_idx", ucv_int64_new(0)); + else + ucv_object_add(ret, "center_seg0_idx", ucv_int64_new(center_idx)); center_idx = (center_idx - channel) * 5 + freq_val; ucv_object_add(ret, "center_freq1", ucv_int64_new(center_idx)); diff --git a/package/network/services/hostapd/src/wpa_supplicant/ucode.c b/package/network/services/hostapd/src/wpa_supplicant/ucode.c index d0a78d1625..d120ed6217 100644 --- a/package/network/services/hostapd/src/wpa_supplicant/ucode.c +++ b/package/network/services/hostapd/src/wpa_supplicant/ucode.c @@ -211,12 +211,13 @@ uc_wpas_iface_status(uc_vm_t *vm, size_t nargs) ie = wpa_bss_get_ie(bss, WLAN_EID_HT_OPERATION); if (ie && ie[1] >= 2) { const struct ieee80211_ht_operation *ht_oper; + int sec; ht_oper = (const void *) (ie + 2); - if (ht_oper->ht_param & HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE) + sec = ht_oper->ht_param & HT_INFO_HT_PARAM_SECONDARY_CHNL_OFF_MASK; + if (sec == HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE) sec_chan = 1; - else if (ht_oper->ht_param & - HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW) + else if (sec == HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW) sec_chan = -1; } diff --git a/target/linux/rockchip/patches-6.1/610-arm64-rockchip-add-OF-node-for-eth.patch b/target/linux/rockchip/patches-6.1/610-arm64-rockchip-add-OF-node-for-eth.patch index 6177753b89..ec02ce8071 100644 --- a/target/linux/rockchip/patches-6.1/610-arm64-rockchip-add-OF-node-for-eth.patch +++ b/target/linux/rockchip/patches-6.1/610-arm64-rockchip-add-OF-node-for-eth.patch @@ -152,7 +152,7 @@ Signed-off-by: David Bauer + +&pcie3x2 { + pcie@0,0 { -+ reg = <0x00100000 0 0 0 0>; ++ reg = <0x00200000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; +