mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-09 02:43:53 +08:00
Merge Offical Source
This commit is contained in:
commit
c9a2a8dc86
@ -588,7 +588,7 @@ define Device/Build/image
|
||||
DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
|
||||
DEVICE_TITLE="$(DEVICE_TITLE)" \
|
||||
TARGET="$(BOARD)" \
|
||||
SUBTARGET="$(SUBTARGET)" \
|
||||
SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
|
||||
VERSION_NUMBER="$(VERSION_NUMBER)" \
|
||||
VERSION_CODE="$(VERSION_CODE)" \
|
||||
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
|
||||
|
@ -64,92 +64,92 @@ define Download/ct-firmware-htt
|
||||
URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
|
||||
endef
|
||||
|
||||
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.014
|
||||
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.015
|
||||
define Download/ath10k-firmware-qca988x-ct
|
||||
$(call Download/ct-firmware,QCA988X,)
|
||||
HASH:=19db86003509dedb8ace339c183813ca637d65af24d00666411d1590efe33e13
|
||||
HASH:=a3a760d0d72707feffa496b6d2266bd9195f09806553b36420b60c0f12b8b87e
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca988x-ct))
|
||||
|
||||
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.014
|
||||
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.015
|
||||
define Download/ath10k-firmware-qca988x-ct-htt
|
||||
$(call Download/ct-firmware-htt,QCA988X,)
|
||||
HASH:=454e67dab545e720369a07be2fee16de008c76db4ab3119e7760bf9f7504c066
|
||||
HASH:=3114a54103d2b492fa1ef903769721f59953c829020d62502a1ec411ab4146d5
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca988x-ct-htt))
|
||||
|
||||
|
||||
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.014
|
||||
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.015
|
||||
define Download/ath10k-firmware-qca9887-ct
|
||||
$(call Download/ct-firmware,QCA9887,ath10k-9887)
|
||||
HASH:=b3c738328427e124701a5735d65cde0f60e4172ae5bc23b00e5b16df7995dbd4
|
||||
HASH:=71e8b76dfd7c786d2f57bb7df207dcd13a91d3b492cfbd28916f084d0d1bb5e7
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca9887-ct))
|
||||
|
||||
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.014
|
||||
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.015
|
||||
define Download/ath10k-firmware-qca9887-ct-htt
|
||||
$(call Download/ct-firmware-htt,QCA9887,ath10k-9887)
|
||||
HASH:=4432ccee23133bbaa4a5552e50a1e7e889b257362603e05530e751b67c29b7b5
|
||||
HASH:=b085e5d2239727b72bc647a76864431b8ac48438e6a33b1d55edc2222468f6ff
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca9887-ct-htt))
|
||||
|
||||
|
||||
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.014
|
||||
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca99x0-ct
|
||||
$(call Download/ct-firmware,QCA99X0,ath10k-10-4b)
|
||||
HASH:=9a908f743604a468b651a5f73c49e6b0ba11a05c677b9726fbf041b849d88b25
|
||||
HASH:=edebe2f6f169cdd05c81a8a78156fb3426a66f415e7946af2ae4b7310fca5fe3
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca99x0-ct))
|
||||
|
||||
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.014
|
||||
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca99x0-ct-htt
|
||||
$(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
|
||||
HASH:=800dd0816702aaca75f3eb5436c2ea724a6c24833838cd54399b9286b4d4fbe8
|
||||
HASH:=1ef67fb07da9082886e4dd554dfc19256e10b500faf9e4b2a5774d0238130bae
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
|
||||
|
||||
|
||||
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.014
|
||||
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca9984-ct
|
||||
$(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b)
|
||||
HASH:=a8b12dba478e8c9d4a215f82324382c7554a900e83c31775f8511af84e59fef7
|
||||
HASH:=c2f04da3285aad37baef9c37c9905a31927175dd234cd4378fd56c106e5c9379
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca9984-ct))
|
||||
|
||||
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.014
|
||||
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca9984-ct-htt
|
||||
$(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
|
||||
HASH:=d185651b5d3d1f0082720bc6c2bbe43b2a00cdb6333403fac9336a720b1d93ae
|
||||
HASH:=0c9ede1036750d68885e6481fa84f3cb72192b8440b47719344f7327a030f05d
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
|
||||
|
||||
|
||||
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.014
|
||||
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca4019-ct
|
||||
$(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b)
|
||||
HASH:=4c2e48835219f420b18dc58e31d1387dae0da70d8170c3fc5e7bce39c06cf355
|
||||
HASH:=1acbb7e7a6300091715a3dfe1b248c7833734961de52cc3465c1ed231a4d84f1
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca4019-ct))
|
||||
|
||||
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.014
|
||||
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca4019-ct-htt
|
||||
$(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
|
||||
HASH:=743da4d537d094a7839bd8e1f792e4cb8b517101f66777c84fd84585f0b85e64
|
||||
HASH:=1065e4d3e55da84ec9e69268a4c5dba55ea33827c48a7c14bb8f0c167eb11b4c
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
|
||||
|
||||
|
||||
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.014
|
||||
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca9888-ct
|
||||
$(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b)
|
||||
HASH:=5809c8a6b3bd81cbc829b5e90af3c0a3300488fe194524a90e260448158016b6
|
||||
HASH:=559ebd16872a8b43443c51bb4b7d021e5b75e65893d333d9393f3f6012f4ac79
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca9888-ct))
|
||||
|
||||
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.014
|
||||
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
||||
define Download/ath10k-firmware-qca9888-ct-htt
|
||||
$(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
|
||||
HASH:=a284943c203ff66ec2e865f20ae2d2aa049b450801d7205b53c9163862228f15
|
||||
HASH:=4feaf5e7c4c1745f499ba8c3125db41675800ebedaea455c418c117805c5b372
|
||||
endef
|
||||
$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
|
||||
|
||||
|
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2019-09-09
|
||||
PKG_SOURCE_VERSION:=5e8cd86f90dac966d12df6ece84ac41458d0e95f
|
||||
PKG_MIRROR_HASH:=dc1097f3a7b4b7e346918f206746d00a0b7df07ae3be9b89be55dfaef3cbbe45
|
||||
PKG_SOURCE_DATE:=2020-01-29
|
||||
PKG_SOURCE_VERSION:=3e3d0adb3cc6c6cf56a05ff661796948f09c5aa8
|
||||
PKG_MIRROR_HASH:=6341de2d3b19b2a32205a1633bf9556815943a2cff38acbbe5f61c6c0164fdcc
|
||||
|
||||
# Build the 5.2 ath10k-ct driver version. Other option is "-4.19".
|
||||
# Probably this should match as closely as
|
||||
|
@ -43,7 +43,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss)
|
||||
{
|
||||
switch ((mcs_map >> (2 * nss)) & 0x3) {
|
||||
@@ -6405,9 +6421,10 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6413,9 +6429,10 @@ static void ath10k_bss_info_changed(stru
|
||||
struct cfg80211_chan_def def;
|
||||
u32 vdev_param, pdev_param, slottime, preamble;
|
||||
u16 bitrate, hw_value;
|
||||
@ -56,7 +56,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
|
||||
mutex_lock(&ar->conf_mutex);
|
||||
|
||||
@@ -6613,6 +6630,30 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6621,6 +6638,30 @@ static void ath10k_bss_info_changed(stru
|
||||
arvif->vdev_id, ret);
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
if (ath10k_rates[i].bitrate == bitrate)
|
||||
return hw_value_prefix | ath10k_rates[i].hw_value;
|
||||
}
|
||||
@@ -6636,22 +6636,22 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6644,22 +6644,22 @@ static void ath10k_bss_info_changed(stru
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
|
||||
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -6421,8 +6421,8 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6429,8 +6429,8 @@ static void ath10k_bss_info_changed(stru
|
||||
struct cfg80211_chan_def def;
|
||||
u32 vdev_param, pdev_param, slottime, preamble;
|
||||
u16 bitrate, hw_value;
|
||||
@ -28,7 +28,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
|
||||
enum nl80211_band band;
|
||||
const struct ieee80211_supported_band *sband;
|
||||
|
||||
@@ -6595,7 +6595,11 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6603,7 +6603,11 @@ static void ath10k_bss_info_changed(stru
|
||||
if (changed & BSS_CHANGED_MCAST_RATE &&
|
||||
!WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) {
|
||||
band = def.chan->band;
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -6617,6 +6617,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6625,6 +6625,7 @@ static void ath10k_bss_info_changed(stru
|
||||
"mac vdev %d mcast_rate %x\n",
|
||||
arvif->vdev_id, rate);
|
||||
|
||||
@ -19,7 +19,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
vdev_param = ar->wmi.vdev_param->mcast_data_rate;
|
||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
|
||||
vdev_param, rate);
|
||||
@@ -6625,6 +6626,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6633,6 +6634,7 @@ static void ath10k_bss_info_changed(stru
|
||||
"failed to set mcast rate on vdev %i: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
vdev_param = ar->wmi.vdev_param->bcast_data_rate;
|
||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
|
||||
vdev_param, rate);
|
||||
@@ -6651,6 +6653,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6659,6 +6661,7 @@ static void ath10k_bss_info_changed(stru
|
||||
return;
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
hw_rate_code);
|
||||
--- a/ath10k-5.2/mac.c
|
||||
+++ b/ath10k-5.2/mac.c
|
||||
@@ -6732,6 +6732,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6742,6 +6742,7 @@ static void ath10k_bss_info_changed(stru
|
||||
"mac vdev %d mcast_rate %x\n",
|
||||
arvif->vdev_id, rate);
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
vdev_param = ar->wmi.vdev_param->mcast_data_rate;
|
||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
|
||||
vdev_param, rate);
|
||||
@@ -6740,6 +6741,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6750,6 +6751,7 @@ static void ath10k_bss_info_changed(stru
|
||||
"failed to set mcast rate on vdev %i: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
vdev_param = ar->wmi.vdev_param->bcast_data_rate;
|
||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
|
||||
vdev_param, rate);
|
||||
@@ -6766,6 +6768,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6776,6 +6778,7 @@ static void ath10k_bss_info_changed(stru
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -7775,7 +7775,8 @@ exit:
|
||||
@@ -7783,7 +7783,8 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/ath10k-5.2/mac.c
|
||||
+++ b/ath10k-5.2/mac.c
|
||||
@@ -7883,7 +7883,8 @@ exit:
|
||||
@@ -7893,7 +7893,8 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -161,7 +161,7 @@ v13:
|
||||
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
|
||||
@@ -3167,6 +3173,10 @@ int ath10k_core_start(struct ath10k *ar,
|
||||
@@ -3170,6 +3176,10 @@ int ath10k_core_start(struct ath10k *ar,
|
||||
ath10k_wmi_check_apply_board_power_ctl_table(ar);
|
||||
}
|
||||
|
||||
@ -172,7 +172,7 @@ v13:
|
||||
return 0;
|
||||
|
||||
err_hif_stop:
|
||||
@@ -3421,9 +3431,18 @@ static void ath10k_core_register_work(st
|
||||
@@ -3424,9 +3434,18 @@ static void ath10k_core_register_work(st
|
||||
goto err_spectral_destroy;
|
||||
}
|
||||
|
||||
@ -191,7 +191,7 @@ v13:
|
||||
err_spectral_destroy:
|
||||
ath10k_spectral_destroy(ar);
|
||||
err_debug_destroy:
|
||||
@@ -3481,6 +3500,8 @@ void ath10k_core_unregister(struct ath10
|
||||
@@ -3484,6 +3503,8 @@ void ath10k_core_unregister(struct ath10
|
||||
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
|
||||
return;
|
||||
|
||||
@ -464,7 +464,7 @@ v13:
|
||||
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
|
||||
--- a/ath10k-4.19/wmi.c
|
||||
+++ b/ath10k-4.19/wmi.c
|
||||
@@ -8070,6 +8070,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
@@ -8071,6 +8071,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
return skb;
|
||||
}
|
||||
|
||||
@ -514,7 +514,7 @@ v13:
|
||||
static struct sk_buff *
|
||||
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
|
||||
enum wmi_sta_ps_mode psmode)
|
||||
@@ -9821,6 +9864,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
@@ -9822,6 +9865,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@ -524,7 +524,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9891,6 +9937,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
@@ -9892,6 +9938,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@ -533,7 +533,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9969,6 +10017,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
@@ -9970,6 +10018,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
@ -542,7 +542,7 @@ v13:
|
||||
/* .gen_pdev_enable_adaptive_cca not implemented */
|
||||
};
|
||||
|
||||
@@ -10039,6 +10089,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
@@ -10040,6 +10090,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
.gen_pdev_enable_adaptive_cca =
|
||||
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
|
||||
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
|
||||
@ -551,7 +551,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -10119,6 +10171,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
@@ -10120,6 +10172,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
||||
@ -683,7 +683,7 @@ v13:
|
||||
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
|
||||
@@ -3452,6 +3458,10 @@ int ath10k_core_start(struct ath10k *ar,
|
||||
@@ -3497,6 +3503,10 @@ int ath10k_core_start(struct ath10k *ar,
|
||||
ath10k_wmi_check_apply_board_power_ctl_table(ar);
|
||||
}
|
||||
|
||||
@ -694,7 +694,7 @@ v13:
|
||||
return 0;
|
||||
|
||||
err_hif_stop:
|
||||
@@ -3708,9 +3718,18 @@ static void ath10k_core_register_work(st
|
||||
@@ -3753,9 +3763,18 @@ static void ath10k_core_register_work(st
|
||||
goto err_spectral_destroy;
|
||||
}
|
||||
|
||||
@ -713,7 +713,7 @@ v13:
|
||||
err_spectral_destroy:
|
||||
ath10k_spectral_destroy(ar);
|
||||
err_debug_destroy:
|
||||
@@ -3770,6 +3789,8 @@ void ath10k_core_unregister(struct ath10
|
||||
@@ -3815,6 +3834,8 @@ void ath10k_core_unregister(struct ath10
|
||||
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
|
||||
return;
|
||||
|
||||
@ -732,7 +732,7 @@ v13:
|
||||
|
||||
#include "htt.h"
|
||||
#include "htc.h"
|
||||
@@ -1441,6 +1442,13 @@ struct ath10k {
|
||||
@@ -1447,6 +1448,13 @@ struct ath10k {
|
||||
} testmode;
|
||||
|
||||
struct {
|
||||
@ -978,7 +978,7 @@ v13:
|
||||
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
|
||||
--- a/ath10k-5.2/wmi.c
|
||||
+++ b/ath10k-5.2/wmi.c
|
||||
@@ -8286,6 +8286,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
@@ -8295,6 +8295,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
return skb;
|
||||
}
|
||||
|
||||
@ -1028,7 +1028,7 @@ v13:
|
||||
static struct sk_buff *
|
||||
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
|
||||
enum wmi_sta_ps_mode psmode)
|
||||
@@ -10058,6 +10101,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
@@ -10067,6 +10110,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@ -1038,7 +1038,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -10128,6 +10174,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
@@ -10137,6 +10183,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@ -1047,7 +1047,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -10207,6 +10255,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
@@ -10216,6 +10264,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
@ -1056,7 +1056,7 @@ v13:
|
||||
/* .gen_pdev_enable_adaptive_cca not implemented */
|
||||
};
|
||||
|
||||
@@ -10278,6 +10328,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
@@ -10287,6 +10337,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
|
||||
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
|
||||
.gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing,
|
||||
@ -1065,7 +1065,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -10359,6 +10411,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
@@ -10368,6 +10420,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
|
||||
--- a/ath10k-4.19/core.h
|
||||
+++ b/ath10k-4.19/core.h
|
||||
@@ -1488,6 +1488,10 @@ struct ath10k {
|
||||
@@ -1489,6 +1489,10 @@ struct ath10k {
|
||||
u8 csi_data[4096];
|
||||
u16 csi_data_len;
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
if (ret)
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -9983,7 +9983,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -9987,7 +9987,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
#endif
|
||||
--- a/ath10k-5.2/core.h
|
||||
+++ b/ath10k-5.2/core.h
|
||||
@@ -1543,6 +1543,10 @@ struct ath10k {
|
||||
@@ -1550,6 +1550,10 @@ struct ath10k {
|
||||
u8 csi_data[4096];
|
||||
u16 csi_data_len;
|
||||
|
||||
@ -79,7 +79,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
if (ret)
|
||||
--- a/ath10k-5.2/mac.c
|
||||
+++ b/ath10k-5.2/mac.c
|
||||
@@ -10179,7 +10179,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -10187,7 +10187,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
|
@ -29,7 +29,7 @@ Forwarded: https://patchwork.kernel.org/patch/10549245/
|
||||
#include <net/mac80211.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/acpi.h>
|
||||
@@ -9707,6 +9708,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -9711,6 +9712,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
|
||||
--- a/ath10k-5.2/htt_rx.c
|
||||
+++ b/ath10k-5.2/htt_rx.c
|
||||
@@ -2507,7 +2507,7 @@ do_generic:
|
||||
@@ -2568,7 +2568,7 @@ do_generic:
|
||||
spin_lock_bh(&ar->data_lock);
|
||||
|
||||
peer = ath10k_peer_find_by_id(ar, peer_id);
|
||||
|
@ -894,7 +894,7 @@ drv_mac80211_setup() {
|
||||
staidx=0
|
||||
|
||||
[ -n "$chanbw" ] && {
|
||||
for file in /sys/kernel/debug/ieee80211/$phy/ath9k/chanbw /sys/kernel/debug/ieee80211/$phy/ath5k/bwmode; do
|
||||
for file in /sys/kernel/debug/ieee80211/$phy/ath9k*/chanbw /sys/kernel/debug/ieee80211/$phy/ath5k/bwmode; do
|
||||
[ -f "$file" ] && echo "$chanbw" > "$file"
|
||||
done
|
||||
}
|
||||
|
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=uhttpd
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
|
||||
PKG_SOURCE_DATE:=2019-12-22
|
||||
PKG_SOURCE_VERSION:=5f9ae5738372aaa3a6be2f0a278933563d3f191a
|
||||
PKG_MIRROR_HASH:=16977c2d7e68f6db3241f874df625af9bd3bafa06fe4499ecb3561c825321e5d
|
||||
PKG_SOURCE_DATE:=2020-02-12
|
||||
PKG_SOURCE_VERSION:=2ee323c01079248baa9465969df9e25b5fb68cdf
|
||||
PKG_MIRROR_HASH:=ebec09286cf5f977cac893931a5a4f27ba891db88d5e44a9b0de9446ae431527
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
|
@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_SOURCE_DATE:=2020-02-04
|
||||
PKG_SOURCE_VERSION:=bcb86554f1b454531e79dac82fcb0463d125f2fb
|
||||
PKG_MIRROR_HASH:=a36de3a8a5849616d251403b6a89ffb078507e4278ce09e86fec2f9a0583a426
|
||||
PKG_SOURCE_DATE:=2020-02-11
|
||||
PKG_SOURCE_VERSION:=c30b23e3657a2838a99daa8bd2d16909c027a261
|
||||
PKG_MIRROR_HASH:=cb105e0269d6fb5641ab636f36b943652302a3341bc0068eff38a646d34ae80d
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
@ -32,10 +32,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
leds: leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&switch_led_pins>;
|
||||
pinctrl-0 = <&pinmux_switch_led_pins>;
|
||||
|
||||
led_system: system {
|
||||
label = "tp-link:green:system";
|
||||
@ -46,31 +47,6 @@
|
||||
label = "tp-link:green:qss";
|
||||
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan1 {
|
||||
label = "tp-link:green:lan1";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan2 {
|
||||
label = "tp-link:green:lan2";
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan3 {
|
||||
label = "tp-link:green:lan3";
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan4 {
|
||||
label = "tp-link:green:lan4";
|
||||
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan {
|
||||
label = "tp-link:green:wan";
|
||||
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
ath9k-leds {
|
||||
@ -105,7 +81,7 @@
|
||||
read-only;
|
||||
};
|
||||
|
||||
firmware: partition@20000 {
|
||||
partition@20000 {
|
||||
compatible = "tplink,firmware";
|
||||
reg = <0x20000 0x3d0000>;
|
||||
label = "firmware";
|
||||
@ -120,25 +96,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,002b";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
@ -148,7 +113,7 @@
|
||||
};
|
||||
|
||||
&pinmux {
|
||||
switch_led_pins: pinmux_switch_led_pins {
|
||||
pinmux_switch_led_pins: switch_led_pins {
|
||||
pinctrl-single,bits = <0x0 0x0 0xf8>;
|
||||
};
|
||||
};
|
18
target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi
Normal file
18
target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi
Normal file
@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar7240_tplink.dtsi"
|
||||
|
||||
&leds {
|
||||
lan {
|
||||
label = "tp-link:green:lan";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
compatible = "pci168c,002a";
|
||||
};
|
9
target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts
Normal file
@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wa.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WA830RE v1";
|
||||
compatible = "tplink,tl-wa830re-v1", "qca,ar7240";
|
||||
};
|
46
target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi
Normal file
46
target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi
Normal file
@ -0,0 +1,46 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar7240_tplink.dtsi"
|
||||
|
||||
&leds {
|
||||
lan1 {
|
||||
label = "tp-link:green:lan1";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan2 {
|
||||
label = "tp-link:green:lan2";
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan3 {
|
||||
label = "tp-link:green:lan3";
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan4 {
|
||||
label = "tp-link:green:lan4";
|
||||
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan {
|
||||
label = "tp-link:green:wan";
|
||||
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
compatible = "pci168c,002b";
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wr74xn-v1.dtsi"
|
||||
#include "ar7240_tplink_tl-wr.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WR740N v1/v2";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wr74xn-v1.dtsi"
|
||||
#include "ar7240_tplink_tl-wr.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WR740N v3";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wr74xn-v1.dtsi"
|
||||
#include "ar7240_tplink_tl-wr.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WR741N/ND v1/v2";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wr74xn-v1.dtsi"
|
||||
#include "ar7240_tplink_tl-wr.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WR743ND v1";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wr74xn-v1.dtsi"
|
||||
#include "ar7240_tplink_tl-wr.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WR841N/ND v5/v6";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wr74xn-v1.dtsi"
|
||||
#include "ar7240_tplink_tl-wr.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WR941N/ND v4";
|
||||
|
35
target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v6.dts
Normal file
35
target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v6.dts
Normal file
@ -0,0 +1,35 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "tp9343_tplink_tl-wr94x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "tplink,tl-wr940n-v6", "qca,tp9343";
|
||||
model = "TP-Link TL-WR940N v6";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_diag_orange;
|
||||
led-failsafe = &led_diag_orange;
|
||||
led-running = &led_diag_orange;
|
||||
led-upgrade = &led_diag_orange;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wan_blue {
|
||||
label = "tp-link:blue:wan";
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_diag_orange: diag_orange {
|
||||
label = "tp-link:orange:diag";
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
};
|
@ -158,6 +158,7 @@ define Device/avm_fritz300e
|
||||
append-squashfs-fakeroot-be | pad-to 256 | append-rootfs | pad-rootfs | \
|
||||
append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||
DEVICE_PACKAGES := fritz-tffs rssileds -swconfig
|
||||
SUPPORTED_DEVICES += fritz300e
|
||||
endef
|
||||
TARGET_DEVICES += avm_fritz300e
|
||||
|
||||
|
@ -66,6 +66,16 @@ define Device/tplink_tl-mr3420-v2
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-mr3420-v2
|
||||
|
||||
define Device/tplink_tl-wa830re-v1
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar7240
|
||||
DEVICE_MODEL := TL-WA830RE
|
||||
DEVICE_VARIANT := v1
|
||||
TPLINK_HWID := 0x08300010
|
||||
SUPPORTED_DEVICES += tl-wa901nd
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wa830re-v1
|
||||
|
||||
define Device/tplink_tl-wa850re-v1
|
||||
$(Device/tplink-4mlzma)
|
||||
SOC := ar9341
|
||||
@ -264,6 +274,20 @@ define Device/tplink_tl-wr940n-v4
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wr940n-v4
|
||||
|
||||
define Device/tplink_tl-wr940n-v6
|
||||
$(Device/tplink-4mlzma)
|
||||
SOC := tp9343
|
||||
DEVICE_MODEL := TL-WR940N
|
||||
DEVICE_VARIANT := v6
|
||||
TPLINK_HWID := 0x09400006
|
||||
SUPPORTED_DEVICES += tl-wr940n-v6
|
||||
IMAGES += factory-us.bin factory-eu.bin factory-br.bin
|
||||
IMAGE/factory-us.bin := tplink-v1-image factory -C US
|
||||
IMAGE/factory-eu.bin := tplink-v1-image factory -C EU
|
||||
IMAGE/factory-br.bin := tplink-v1-image factory -C BR
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wr940n-v6
|
||||
|
||||
define Device/tplink_tl-wr941-v2
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar9132
|
||||
|
@ -41,7 +41,8 @@ on,n150r)
|
||||
ucidef_set_led_switch "lan2" "LAN2" "netgear:green:lan2" "switch0" "0x04" "0x0f"
|
||||
;;
|
||||
tplink,tl-mr3020-v1|\
|
||||
tplink,tl-mr3040-v2)
|
||||
tplink,tl-mr3040-v2|\
|
||||
tplink,tl-wa830re-v1)
|
||||
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
|
||||
;;
|
||||
tplink,tl-mr3420-v2|\
|
||||
@ -95,6 +96,9 @@ tplink,tl-wr941nd-v6)
|
||||
ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04"
|
||||
ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02"
|
||||
;;
|
||||
tplink,tl-wr940n-v6)
|
||||
ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth1"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
@ -32,6 +32,7 @@ ath79_setup_interfaces()
|
||||
tplink,tl-mr10u|\
|
||||
tplink,tl-mr3020-v1|\
|
||||
tplink,tl-mr3040-v2|\
|
||||
tplink,tl-wa830re-v1|\
|
||||
tplink,tl-wa850re-v1|\
|
||||
tplink,tl-wa850re-v2|\
|
||||
tplink,tl-wa901nd-v2|\
|
||||
@ -47,6 +48,7 @@ ath79_setup_interfaces()
|
||||
tplink,tl-wr841-v12|\
|
||||
tplink,tl-wr940n-v3|\
|
||||
tplink,tl-wr940n-v4|\
|
||||
tplink,tl-wr940n-v6|\
|
||||
tplink,tl-wr941nd-v6)
|
||||
ucidef_set_interface_wan "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
|
@ -10,6 +10,7 @@ case "$FIRMWARE" in
|
||||
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
||||
case $board in
|
||||
buffalo,whr-g301n|\
|
||||
tplink,tl-wa830re-v1|\
|
||||
tplink,tl-wr841-v5|\
|
||||
tplink,tl-wr941-v4)
|
||||
caldata_extract "art" 0x1000 0xeb8
|
||||
|
@ -591,12 +591,15 @@ swconfig_parse_ports(struct sk_buff *msg, struct nlattr *head,
|
||||
|
||||
port = &val->value.ports[val->len];
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
|
||||
if (nla_parse_nested(tb, SWITCH_PORT_ATTR_MAX, nla,
|
||||
port_policy))
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
if (nla_parse_nested_deprecated(tb, SWITCH_PORT_ATTR_MAX, nla,
|
||||
port_policy, NULL))
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)
|
||||
if (nla_parse_nested(tb, SWITCH_PORT_ATTR_MAX, nla,
|
||||
port_policy, NULL))
|
||||
#else
|
||||
if (nla_parse_nested(tb, SWITCH_PORT_ATTR_MAX, nla,
|
||||
port_policy))
|
||||
#endif
|
||||
return -EINVAL;
|
||||
|
||||
@ -618,10 +621,12 @@ swconfig_parse_link(struct sk_buff *msg, struct nlattr *nla,
|
||||
{
|
||||
struct nlattr *tb[SWITCH_LINK_ATTR_MAX + 1];
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
|
||||
if (nla_parse_nested(tb, SWITCH_LINK_ATTR_MAX, nla, link_policy))
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
if (nla_parse_nested_deprecated(tb, SWITCH_LINK_ATTR_MAX, nla, link_policy, NULL))
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)
|
||||
if (nla_parse_nested(tb, SWITCH_LINK_ATTR_MAX, nla, link_policy, NULL))
|
||||
#else
|
||||
if (nla_parse_nested(tb, SWITCH_LINK_ATTR_MAX, nla, link_policy))
|
||||
#endif
|
||||
return -EINVAL;
|
||||
|
||||
@ -1000,6 +1005,9 @@ swconfig_done(struct netlink_callback *cb)
|
||||
static struct genl_ops swconfig_ops[] = {
|
||||
{
|
||||
.cmd = SWITCH_CMD_LIST_GLOBAL,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.doit = swconfig_list_attrs,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
@ -1007,6 +1015,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_LIST_VLAN,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.doit = swconfig_list_attrs,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
@ -1014,6 +1025,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_LIST_PORT,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.doit = swconfig_list_attrs,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
@ -1021,6 +1035,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_GET_GLOBAL,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.doit = swconfig_get_attr,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
@ -1028,6 +1045,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_GET_VLAN,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.doit = swconfig_get_attr,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
@ -1035,6 +1055,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_GET_PORT,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.doit = swconfig_get_attr,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
@ -1042,6 +1065,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_SET_GLOBAL,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = swconfig_set_attr,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
@ -1050,6 +1076,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_SET_VLAN,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = swconfig_set_attr,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
@ -1058,6 +1087,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_SET_PORT,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = swconfig_set_attr,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
@ -1066,6 +1098,9 @@ static struct genl_ops swconfig_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SWITCH_CMD_GET_SWITCH,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
#endif
|
||||
.dumpit = swconfig_dump_switches,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
||||
.policy = switch_policy,
|
||||
|
@ -20,44 +20,35 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
/*
|
||||
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
|
||||
@@ -762,6 +766,36 @@ int mtd_del_partition(struct mtd_info *m
|
||||
@@ -762,6 +766,27 @@ int mtd_del_partition(struct mtd_info *m
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
||||
|
||||
+static int
|
||||
+run_parsers_by_type(struct mtd_part *slave, enum mtd_parser_type type)
|
||||
+{
|
||||
+ struct mtd_partition *parts;
|
||||
+ int nr_parts;
|
||||
+ int i;
|
||||
+ struct mtd_partitions pparts = { };
|
||||
+ int err;
|
||||
+
|
||||
+ nr_parts = parse_mtd_partitions_by_type(&slave->mtd, type, (const struct mtd_partition **)&parts,
|
||||
+ NULL);
|
||||
+ if (nr_parts <= 0)
|
||||
+ return nr_parts;
|
||||
+ pparts.nr_parts = parse_mtd_partitions_by_type(&slave->mtd, type,
|
||||
+ &pparts.parts, NULL);
|
||||
+ if (pparts.nr_parts <= 0)
|
||||
+ return pparts.nr_parts;
|
||||
+
|
||||
+ if (WARN_ON(!parts))
|
||||
+ if (WARN_ON(!pparts.parts))
|
||||
+ return 0;
|
||||
+
|
||||
+ for (i = 0; i < nr_parts; i++) {
|
||||
+ /* adjust partition offsets */
|
||||
+ parts[i].offset += slave->offset;
|
||||
+ err = add_mtd_partitions(&slave->mtd, pparts.parts, pparts.nr_parts);
|
||||
+
|
||||
+ mtd_add_partition(slave->parent,
|
||||
+ parts[i].name,
|
||||
+ parts[i].offset,
|
||||
+ parts[i].size);
|
||||
+ }
|
||||
+ kfree(pparts.parts);
|
||||
+
|
||||
+ kfree(parts);
|
||||
+
|
||||
+ return nr_parts;
|
||||
+ return err ? err : pparts.nr_parts;
|
||||
+}
|
||||
+
|
||||
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
||||
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
||||
#else
|
||||
@@ -1147,6 +1181,61 @@ void mtd_part_parser_cleanup(struct mtd_
|
||||
@@ -1147,6 +1172,61 @@ void mtd_part_parser_cleanup(struct mtd_
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/drivers/mtd/mtdpart.c
|
||||
+++ b/drivers/mtd/mtdpart.c
|
||||
@@ -804,6 +804,7 @@ run_parsers_by_type(struct mtd_part *sla
|
||||
@@ -795,6 +795,7 @@ run_parsers_by_type(struct mtd_part *sla
|
||||
|
||||
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
||||
{
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
}
|
||||
|
||||
static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
|
||||
@@ -813,6 +814,12 @@ static void mtd_partition_split(struct m
|
||||
@@ -804,6 +805,12 @@ static void mtd_partition_split(struct m
|
||||
if (rootfs_found)
|
||||
return;
|
||||
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/drivers/mtd/mtdpart.c
|
||||
+++ b/drivers/mtd/mtdpart.c
|
||||
@@ -1260,6 +1260,24 @@ int mtd_is_partition(const struct mtd_in
|
||||
@@ -1251,6 +1251,24 @@ int mtd_is_partition(const struct mtd_in
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mtd_is_partition);
|
||||
|
||||
|
@ -81,6 +81,12 @@ define Build/iodata-mstc-header
|
||||
)
|
||||
endef
|
||||
|
||||
define Build/netis-tail
|
||||
echo -n $(1) >> $@
|
||||
echo -n $(UIMAGE_NAME)-yun | $(STAGING_DIR_HOST)/bin/mkhash md5 | \
|
||||
sed 's/../\\\\x&/g' | xargs echo -ne >> $@
|
||||
endef
|
||||
|
||||
define Build/ubnt-erx-factory-image
|
||||
if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
|
||||
echo '21001:6' > $(1).compat; \
|
||||
@ -631,6 +637,8 @@ define Device/netis_wf2881
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 129280k
|
||||
UBINIZE_OPTS := -E 5
|
||||
UIMAGE_NAME := WF2881_0.0.00
|
||||
KERNEL_INITRAMFS := $(KERNEL_DTB) | netis-tail WF2881 | uImage lzma
|
||||
IMAGES += factory.bin
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
|
||||
|
@ -0,0 +1,94 @@
|
||||
From 120357ea176e420d313cf8cf2ff35fbe233d3bab Mon Sep 17 00:00:00 2001
|
||||
From: Uenal Mutlu <um@mutluit.com>
|
||||
Date: Mon, 13 May 2019 16:24:10 +0200
|
||||
Subject: [PATCH] drivers: ata: ahci_sunxi: Increased SATA/AHCI DMA TX/RX FIFOs
|
||||
|
||||
Increasing the SATA/AHCI DMA TX/RX FIFOs (P0DMACR.TXTS and .RXTS, ie.
|
||||
TX_TRANSACTION_SIZE and RX_TRANSACTION_SIZE) from default 0x0 each
|
||||
to 0x3 each, gives a write performance boost of 120 MiB/s to 132 MiB/s
|
||||
from lame 36 MiB/s to 45 MiB/s previously.
|
||||
Read performance is above 200 MiB/s.
|
||||
[tested on SSD using dd bs=4K/8K/12K/16K/20K/24K/32K: peak-perf at 12K]
|
||||
|
||||
Tested on the SBCs Banana Pi R1 (aka Lamobo R1) and Banana Pi M1 which
|
||||
are based on the Allwinner A20 32bit-SoC (ARMv7-a / arm-linux-gnueabihf).
|
||||
These devices are RaspberryPi-like small devices.
|
||||
|
||||
This problem of slow SATA write-speed with these small devices lasts
|
||||
for about 7 years now (beginning with the A10 SoC). Many commentators
|
||||
throughout the years wrongly assumed the slow write speed was a
|
||||
hardware limitation. This patch finally solves the problem, which
|
||||
in fact was just a hard-to-find software problem due to lack of
|
||||
SATA/AHCI documentation by the SoC-maker Allwinner Technology.
|
||||
|
||||
Lists of the affected sunxi and other boards and SoCs with SATA using
|
||||
the ahci_sunxi driver:
|
||||
$ grep -i -e "^&ahci" arch/arm/boot/dts/sun*dts
|
||||
and http://linux-sunxi.org/SATA#Devices_with_SATA_ports
|
||||
See also http://linux-sunxi.org/Category:Devices_with_SATA_port
|
||||
|
||||
Tested-by: Chen-Yu Tsai <wens@csie.org>
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Uenal Mutlu <um@mutluit.com>
|
||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
---
|
||||
drivers/ata/ahci_sunxi.c | 47 ++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 45 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/ata/ahci_sunxi.c
|
||||
+++ b/drivers/ata/ahci_sunxi.c
|
||||
@@ -157,8 +157,51 @@ static void ahci_sunxi_start_engine(stru
|
||||
void __iomem *port_mmio = ahci_port_base(ap);
|
||||
struct ahci_host_priv *hpriv = ap->host->private_data;
|
||||
|
||||
- /* Setup DMA before DMA start */
|
||||
- sunxi_clrsetbits(hpriv->mmio + AHCI_P0DMACR, 0x0000ff00, 0x00004400);
|
||||
+ /* Setup DMA before DMA start
|
||||
+ *
|
||||
+ * NOTE: A similar SoC with SATA/AHCI by Texas Instruments documents
|
||||
+ * this Vendor Specific Port (P0DMACR, aka PxDMACR) in its
|
||||
+ * User's Guide document (TMS320C674x/OMAP-L1x Processor
|
||||
+ * Serial ATA (SATA) Controller, Literature Number: SPRUGJ8C,
|
||||
+ * March 2011, Chapter 4.33 Port DMA Control Register (P0DMACR),
|
||||
+ * p.68, https://www.ti.com/lit/ug/sprugj8c/sprugj8c.pdf)
|
||||
+ * as equivalent to the following struct:
|
||||
+ *
|
||||
+ * struct AHCI_P0DMACR_t
|
||||
+ * {
|
||||
+ * unsigned TXTS : 4;
|
||||
+ * unsigned RXTS : 4;
|
||||
+ * unsigned TXABL : 4;
|
||||
+ * unsigned RXABL : 4;
|
||||
+ * unsigned Reserved : 16;
|
||||
+ * };
|
||||
+ *
|
||||
+ * TXTS: Transmit Transaction Size (TX_TRANSACTION_SIZE).
|
||||
+ * This field defines the DMA transaction size in DWORDs for
|
||||
+ * transmit (system bus read, device write) operation. [...]
|
||||
+ *
|
||||
+ * RXTS: Receive Transaction Size (RX_TRANSACTION_SIZE).
|
||||
+ * This field defines the Port DMA transaction size in DWORDs
|
||||
+ * for receive (system bus write, device read) operation. [...]
|
||||
+ *
|
||||
+ * TXABL: Transmit Burst Limit.
|
||||
+ * This field allows software to limit the VBUSP master read
|
||||
+ * burst size. [...]
|
||||
+ *
|
||||
+ * RXABL: Receive Burst Limit.
|
||||
+ * Allows software to limit the VBUSP master write burst
|
||||
+ * size. [...]
|
||||
+ *
|
||||
+ * Reserved: Reserved.
|
||||
+ *
|
||||
+ *
|
||||
+ * NOTE: According to the above document, the following alternative
|
||||
+ * to the code below could perhaps be a better option
|
||||
+ * (or preparation) for possible further improvements later:
|
||||
+ * sunxi_clrsetbits(hpriv->mmio + AHCI_P0DMACR, 0x0000ffff,
|
||||
+ * 0x00000033);
|
||||
+ */
|
||||
+ sunxi_clrsetbits(hpriv->mmio + AHCI_P0DMACR, 0x0000ffff, 0x00004433);
|
||||
|
||||
/* Start DMA */
|
||||
sunxi_setbits(port_mmio + PORT_CMD, PORT_CMD_START);
|
Loading…
x
Reference in New Issue
Block a user