...
 
Commits (7)
  • Adrian Schmutzler's avatar
    ath79: enable forceless sysupgrade from ar71xx on fritz300e · 49ff00db
    Adrian Schmutzler authored
    This adds the ar71xx board name to the SUPPORTED_DEVICES on ath79,
    so forceless sysupgrade on this device becomes possible.
    Signed-off-by: Adrian Schmutzler's avatarAdrian Schmutzler <freifunk@adrianschmutzler.de>
    49ff00db
  • Adrian Schmutzler's avatar
    ath79: add support for TP-Link TL-WR940N v6 · fbd00bb8
    Adrian Schmutzler authored
    The TL-WR940N v6 is similar to v3/v4, it just has different
    LEDs and MAC address assignment.
    
    Specification:
    - 750 MHz CPU
    - 32 MB of RAM
    - 4 MB of FLASH
    - 2.4 GHz WiFi
    - 4x 10/100 Mbps Ethernet
    
    The use of LEDs is based on ar71xx, so blue LED is used for WAN
    and orange LED for diag (boot/failsafe/etc.).
    
    Flash instruction (WebUI):
    Download *-factory.bin image and upload it via the firmwary upgrade
    function of the stock firmware WebUI.
    
    Flash instruction (TFTP):
    1. Set PC to fixed ip address 192.168.0.66
    2. Download *-factory.bin image and rename it to
       wr940nv6_tp_recovery.bin
    3. Start a tftp server with the image file in its root directory
    4. Turn off the router
    5. Press and hold Reset button
    6. Turn on router with the reset button pressed and wait ~15 seconds
    7. Release the reset button and after a short time
    the firmware should be transferred from the tftp server
    8. Wait ~30 second to complete recovery.
    
    Thanks to Manuel Kock for reviewing and testing this patch.
    Signed-off-by: Adrian Schmutzler's avatarAdrian Schmutzler <freifunk@adrianschmutzler.de>
    Tested-by: default avatarManuel Kock <github.web@manu.li>
    fbd00bb8
  • Aleksander Jan Bajkowski's avatar
    sunxi: backport increased SATA/AHCI DMA TX/RX FIFOs · 5499b24d
    Aleksander Jan Bajkowski authored
    This backports SATA performance boost from 5.3 kernel:
    
     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]
    
     dd bs  Before MB/s  After MB/s  Increase
     4k            14.4        16.5       15%
     64k           34.5        74.4      116%
     1M            40.5        93.2      130%
    
    Ref: https://forum.openwrt.org/t/sunxi-sata-write-speed-patch/54555/5Signed-off-by: default avatarAleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
    [commit subject & description tweaks]
    Signed-off-by: Petr Štetiar's avatarPetr Štetiar <ynezz@true.cz>
    5499b24d
  • Michael Yartys's avatar
    ath10k-ct: update to 2020-01-29 · 67174adc
    Michael Yartys authored
    Changes:
    
    ath10k-ct: Support better RSSI measurements.
    
    When used with recent firmware, these changes allow the driver to
    query per-chain noise-floor from the radio to better calculate the
    per-chain RSSI. The per-chain RSSI is then summed to provide the
    'combined RSSI'. This gives better per-chain RSSI as well as combined
    RSSI, especially when running with more than 20Mhz bandwidths.
    
    Refresh patches.
    
    Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>  [ipq806x+qca9984,ipq4019+qca9986]
    Signed-off-by: default avatarMichael Yartys <michael.yartys@protonmail.com>
    67174adc
  • Michael Yartys's avatar
    ath10k-firmware: update ath10k-ct firmware · 18622638
    Michael Yartys authored
    This supports better per-chain noise floor reporting, which in turn allows for
    better RSSI reporting in the driver.
    
    Wave-2 fixes a long-standing rate-ctrl problem when connected to xbox (and probably other devices).
    
    Wave-2 has fix for crash likely related to rekeying.
    
    Wave-1 has some debugging code added where a user reported a crash.
    
    Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>  [ipq806x+qca9984,ipq4019+qca9986]
    Signed-off-by: default avatarMichael Yartys <michael.yartys@protonmail.com>
    18622638
  • Tomislav Požega's avatar
    mac80211: expose chanbw support to debugfs for ath9k_htc · cd5dbba9
    Tomislav Požega authored
    This will ensure the htc suffixed driver also gets created
    chanbw debugfs entry.
    Signed-off-by: default avatarTomislav Požega <pozega.tomislav@gmail.com>
    cd5dbba9
  • Paul Spooren's avatar
    build: fix empty SUBTARGET in json files · 73f3ad1d
    Paul Spooren authored
    Some targets like kirkwood or omap don't use a subtarget which results
    in a malformed JSON info file.
    
    Instead of having a valid value like `"target": "ath79/tiny"` for these
    targets the value is `"target": "kirkwood/"`.
    
    This patch uses the same if condition to use `generic` if the subtarget
    is empty.
    
    Tested for the kirkwood target.
    Signed-off-by: Paul Spooren's avatarPaul Spooren <mail@aparcar.org>
    73f3ad1d
......@@ -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
}
......
// 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";
};
};
};
&eth1 {
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
......
......@@ -274,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
......
......@@ -96,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
......
......@@ -48,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" \
......
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);