Hi Felix,
Please revise your commit: https://dev.openwrt.org/changeset/38486 It is
causing the wifi on TL-WR1043ND v1 to stop working or speed drop.
Please see this ticket for details on my research:
https://dev.openwrt.org/ticket/9654#comment:512
I was able to isolate the issue to this code: static void
ar5008_hw_get_adc_entropy(struct ath_hw *ah, u8 *buf, size_t len)
{
…
REG_RMW_FIELD(ah, AR_PHY_TEST, AR_PHY_TEST_BBB_OBS_SEL, 1);
REG_CLR_BIT(ah, AR_PHY_TEST, AR_PHY_TEST_RX_OBS_SEL_BIT5);
REG_RMW_FIELD(ah, AR_PHY_TEST2, AR_PHY_TEST2_RX_OBS_SEL, 0);
…
}
I have prepared a workaround patch, it resolves the issue, unfortunately the
code it disables is beyond my experience, and it probably breaks your code, so
please check it!:
https://www.dropbox.com/s/ihfkx7ov4e8tcoz/Fixed-WiFi-stop-and-speed-reduction-issue-on-TL-WR1043ND.patch
From c82e042b4758b4fa147daac1fafef2865a9b6dad Mon Sep 17 00:00:00 2001
From: Georgi Valkov Date: Sat, 2 Aug 2014 01:26:49 +0300 Subject: [PATCH]
Fixed WiFi stop and speed reduction issue on TL-WR1043ND v1 (#9654)
Signed-off-by: Georgi Valkov ---
.../mac80211/patches/550-ath9k_entropy_from_adc.patch
| 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/package/kernel/mac80211/patches/550-ath9k_entropy_from_adc.patch
b/package/kernel/mac80211/patches/550-ath9k_entropy_from_adc.patch index
7210a02..110ddf9 100644 ---
a/package/kernel/mac80211/patches/550-ath9k_entropy_from_adc.patch +++
b/package/kernel/mac80211/patches/550-ath9k_entropy_from_adc.patch @@ -26,9
+26,9 @@
+{
+ int i, j;
+ -+ REG_RMW_FIELD(ah, AR_PHY_TEST, AR_PHY_TEST_BBB_OBS_SEL, 1); -+
REG_CLR_BIT(ah, AR_PHY_TEST, AR_PHY_TEST_RX_OBS_SEL_BIT5); -+
REG_RMW_FIELD(ah, AR_PHY_TEST_CTL_STATUS, AR_PHY_TEST_CTL_RX_OBS_SEL, 0); ++
/// REG_RMW_FIELD(ah, AR_PHY_TEST, AR_PHY_TEST_BBB_OBS_SEL, 1); ++ ///
REG_CLR_BIT(ah, AR_PHY_TEST, AR_PHY_TEST_RX_OBS_SEL_BIT5); ++ ///
REG_RMW_FIELD(ah, AR_PHY_TEST_CTL_STATUS, AR_PHY_TEST_CTL_RX_OBS_SEL, 0);
+
+ memset(buf, 0, len);
+ for (i = 0; i @@ -84,7 +84,7 @@
int ath9k_init_device(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{ -@@ -822,6 +835,8 @@ int ath9k_init_device(u16 devid, struct
+@@ -822,6 +835,8 @@ int ath9k_init_device(u16 devid, struct
ARRAY_SIZE(ath9k_tpt_blink));
#endif
@@ -132,9 +132,9 @@
+{
+ int i, j;
+ -+ REG_RMW_FIELD(ah, AR_PHY_TEST, AR_PHY_TEST_BBB_OBS_SEL, 1); -+
REG_CLR_BIT(ah, AR_PHY_TEST, AR_PHY_TEST_RX_OBS_SEL_BIT5); -+
REG_RMW_FIELD(ah, AR_PHY_TEST2, AR_PHY_TEST2_RX_OBS_SEL, 0); ++ ///
REG_RMW_FIELD(ah, AR_PHY_TEST, AR_PHY_TEST_BBB_OBS_SEL, 1); ++ ///
REG_CLR_BIT(ah, AR_PHY_TEST, AR_PHY_TEST_RX_OBS_SEL_BIT5); ++ ///
REG_RMW_FIELD(ah, AR_PHY_TEST2, AR_PHY_TEST2_RX_OBS_SEL, 0);
+
+ memset(buf, 0, len);
+ for (i = 0; i --
1.9.1
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel