* [PATCH v2 2/2] wil6210: Add EDMG channel support
From: Alexei Avshalom Lazar @ 2019-05-13 14:42 UTC (permalink / raw)
To: Johannes Berg; +Cc: Alexei Avshalom Lazar, linux-wireless, wil6210
In-Reply-To: <1557758554-18907-1-git-send-email-ailizaro@codeaurora.org>
Add support for Enhanced Directional Multi-Gigabit (EDMG) channels 9-11.
wil6210 reports it's EDMG capabilities (that are also based on FW
capability) to cfg80211 by filling
wiphy->bands[NL80211_BAND_60GHZ]->edmg_cap.
wil6210 handles edmg_channels and edmg_bw_config requested in connect
and start_ap operations.
Change-Id: I96a2776fe27ed2d8e922e23063e879361cfcb552
---
drivers/net/wireless/ath/wil6210/cfg80211.c | 205 +++++++++++++++++++++++++--
drivers/net/wireless/ath/wil6210/txrx_edma.c | 2 +
drivers/net/wireless/ath/wil6210/txrx_edma.h | 6 +
drivers/net/wireless/ath/wil6210/wil6210.h | 8 +-
drivers/net/wireless/ath/wil6210/wmi.c | 5 +-
drivers/net/wireless/ath/wil6210/wmi.h | 30 +++-
6 files changed, 242 insertions(+), 14 deletions(-)
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c
index ce68fbc..161d271 100644
--- a/drivers/net/wireless/ath/wil6210/cfg80211.c
+++ b/drivers/net/wireless/ath/wil6210/cfg80211.c
@@ -25,6 +25,22 @@
#define WIL_MAX_ROC_DURATION_MS 5000
+#define WIL_EDMG_CHANNEL_9_SUBCHANNELS (BIT(0) | BIT(1))
+#define WIL_EDMG_CHANNEL_10_SUBCHANNELS (BIT(1) | BIT(2))
+#define WIL_EDMG_CHANNEL_11_SUBCHANNELS (BIT(2) | BIT(3))
+
+/* WIL_EDMG_BW_CONFIGURATION define the allowed channel bandwidth
+ * configurations as defined by IEEE 802.11 section 9.4.2.251, Table 13.
+ * The value 5 allowing CB1 and CB2 of adjacent channels.
+ */
+#define WIL_EDMG_BW_CONFIGURATION 5
+
+/* WIL_EDMG_CHANNELS is a bitmap that indicates the 2.16 GHz channel(s) that
+ * are allowed to be used for EDMG transmissions in the BSS as defined by
+ * IEEE 802.11 section 9.4.2.251.
+ */
+#define WIL_EDMG_CHANNELS (BIT(0) | BIT(1) | BIT(2) | BIT(3))
+
bool disable_ap_sme;
module_param(disable_ap_sme, bool, 0444);
MODULE_PARM_DESC(disable_ap_sme, " let user space handle AP mode SME");
@@ -51,6 +67,39 @@
CHAN60G(4, 0),
};
+/* Rx channel bonding mode */
+enum wil_rx_cb_mode {
+ WIL_RX_CB_MODE_DMG,
+ WIL_RX_CB_MODE_EDMG,
+ WIL_RX_CB_MODE_WIDE,
+};
+
+static int wil_rx_cb_mode_to_n_bonded(u8 cb_mode)
+{
+ switch (cb_mode) {
+ case WIL_RX_CB_MODE_DMG:
+ case WIL_RX_CB_MODE_EDMG:
+ return 1;
+ case WIL_RX_CB_MODE_WIDE:
+ return 2;
+ default:
+ return 1;
+ }
+}
+
+static int wil_tx_cb_mode_to_n_bonded(u8 cb_mode)
+{
+ switch (cb_mode) {
+ case WMI_TX_MODE_DMG:
+ case WMI_TX_MODE_EDMG_CB1:
+ return 1;
+ case WMI_TX_MODE_EDMG_CB2:
+ return 2;
+ default:
+ return 1;
+ }
+}
+
static void
wil_memdup_ie(u8 **pdst, size_t *pdst_len, const u8 *src, size_t src_len)
{
@@ -82,6 +131,12 @@ void update_supported_bands(struct wil6210_priv *wil)
wiphy->bands[NL80211_BAND_60GHZ]->n_channels =
wil_num_supported_channels(wil);
+
+ if (test_bit(WMI_FW_CAPABILITY_CHANNEL_BONDING, wil->fw_capabilities))
+ wiphy->bands[NL80211_BAND_60GHZ]->edmg_cap.channels =
+ WIL_EDMG_CHANNELS;
+ wiphy->bands[NL80211_BAND_60GHZ]->edmg_cap.bw_config =
+ WIL_EDMG_BW_CONFIGURATION;
}
/* Vendor id to be used in vendor specific command and events
@@ -296,6 +351,86 @@ int wil_iftype_nl2wmi(enum nl80211_iftype type)
return -EOPNOTSUPP;
}
+int wil_spec2wmi_ch(u8 spec_ch, u8 *wmi_ch)
+{
+ switch (spec_ch) {
+ case 1:
+ *wmi_ch = WMI_CHANNEL_1;
+ break;
+ case 2:
+ *wmi_ch = WMI_CHANNEL_2;
+ break;
+ case 3:
+ *wmi_ch = WMI_CHANNEL_3;
+ break;
+ case 4:
+ *wmi_ch = WMI_CHANNEL_4;
+ break;
+ case 5:
+ *wmi_ch = WMI_CHANNEL_5;
+ break;
+ case 6:
+ *wmi_ch = WMI_CHANNEL_6;
+ break;
+ case 9:
+ *wmi_ch = WMI_CHANNEL_9;
+ break;
+ case 10:
+ *wmi_ch = WMI_CHANNEL_10;
+ break;
+ case 11:
+ *wmi_ch = WMI_CHANNEL_11;
+ break;
+ case 12:
+ *wmi_ch = WMI_CHANNEL_12;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+int wil_wmi2spec_ch(u8 wmi_ch, u8 *spec_ch)
+{
+ switch (wmi_ch) {
+ case WMI_CHANNEL_1:
+ *spec_ch = 1;
+ break;
+ case WMI_CHANNEL_2:
+ *spec_ch = 2;
+ break;
+ case WMI_CHANNEL_3:
+ *spec_ch = 3;
+ break;
+ case WMI_CHANNEL_4:
+ *spec_ch = 4;
+ break;
+ case WMI_CHANNEL_5:
+ *spec_ch = 5;
+ break;
+ case WMI_CHANNEL_6:
+ *spec_ch = 6;
+ break;
+ case WMI_CHANNEL_9:
+ *spec_ch = 9;
+ break;
+ case WMI_CHANNEL_10:
+ *spec_ch = 10;
+ break;
+ case WMI_CHANNEL_11:
+ *spec_ch = 11;
+ break;
+ case WMI_CHANNEL_12:
+ *spec_ch = 12;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
struct station_info *sinfo)
{
@@ -310,6 +445,7 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
} __packed reply;
struct wil_net_stats *stats = &wil->sta[cid].stats;
int rc;
+ u8 txflag = RATE_INFO_FLAGS_DMG;
memset(&reply, 0, sizeof(reply));
@@ -322,7 +458,8 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
" MCS %d TSF 0x%016llx\n"
" BF status 0x%08x RSSI %d SQI %d%%\n"
" Tx Tpt %d goodput %d Rx goodput %d\n"
- " Sectors(rx:tx) my %d:%d peer %d:%d\n""}\n",
+ " Sectors(rx:tx) my %d:%d peer %d:%d\n"
+ " Tx mode %d}\n",
cid, vif->mid, le16_to_cpu(reply.evt.bf_mcs),
le64_to_cpu(reply.evt.tsf), reply.evt.status,
reply.evt.rssi,
@@ -333,7 +470,8 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
le16_to_cpu(reply.evt.my_rx_sector),
le16_to_cpu(reply.evt.my_tx_sector),
le16_to_cpu(reply.evt.other_rx_sector),
- le16_to_cpu(reply.evt.other_tx_sector));
+ le16_to_cpu(reply.evt.other_tx_sector),
+ reply.evt.tx_mode);
sinfo->generation = wil->sinfo_gen;
@@ -346,9 +484,16 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
BIT_ULL(NL80211_STA_INFO_RX_DROP_MISC) |
BIT_ULL(NL80211_STA_INFO_TX_FAILED);
- sinfo->txrate.flags = RATE_INFO_FLAGS_DMG;
+ if (wil->use_enhanced_dma_hw && reply.evt.tx_mode != WMI_TX_MODE_DMG)
+ txflag = RATE_INFO_FLAGS_EDMG;
+
+ sinfo->txrate.flags = txflag;
sinfo->txrate.mcs = le16_to_cpu(reply.evt.bf_mcs);
sinfo->rxrate.mcs = stats->last_mcs_rx;
+ sinfo->txrate.n_bonded_ch =
+ wil_tx_cb_mode_to_n_bonded(reply.evt.tx_mode);
+ sinfo->rxrate.n_bonded_ch =
+ wil_rx_cb_mode_to_n_bonded(stats->last_cb_mode_rx);
sinfo->rx_bytes = stats->rx_bytes;
sinfo->rx_packets = stats->rx_packets;
sinfo->rx_dropped_misc = stats->rx_dropped;
@@ -1006,6 +1151,33 @@ static int wil_ft_connect(struct wiphy *wiphy,
return rc;
}
+static int wil_get_wmi_edmg_channel(struct wil6210_priv *wil, u8 edmg_bw_config,
+ u8 edmg_channels, u8 *wmi_ch)
+{
+ if (!edmg_bw_config) {
+ *wmi_ch = 0;
+ return 0;
+ } else if (edmg_bw_config == WIL_EDMG_BW_CONFIGURATION) {
+ /* convert from edmg channel bitmap into edmg channel number */
+ switch (edmg_channels) {
+ case WIL_EDMG_CHANNEL_9_SUBCHANNELS:
+ return wil_spec2wmi_ch(9, wmi_ch);
+ case WIL_EDMG_CHANNEL_10_SUBCHANNELS:
+ return wil_spec2wmi_ch(10, wmi_ch);
+ case WIL_EDMG_CHANNEL_11_SUBCHANNELS:
+ return wil_spec2wmi_ch(11, wmi_ch);
+ default:
+ wil_err(wil, "Unsupported edmg channel bitmap 0x%x\n",
+ edmg_channels);
+ return -EINVAL;
+ }
+ } else {
+ wil_err(wil, "Unsupported EDMG BW configuration %d\n",
+ edmg_bw_config);
+ return -EINVAL;
+ }
+}
+
static int wil_cfg80211_connect(struct wiphy *wiphy,
struct net_device *ndev,
struct cfg80211_connect_params *sme)
@@ -1151,6 +1323,11 @@ static int wil_cfg80211_connect(struct wiphy *wiphy,
memcpy(conn.ssid, ssid_eid+2, conn.ssid_len);
conn.channel = ch - 1;
+ rc = wil_get_wmi_edmg_channel(wil, sme->edmg_bw_config,
+ sme->edmg_channels, &conn.edmg_channel);
+ if (rc < 0)
+ return rc;
+
ether_addr_copy(conn.bssid, bss->bssid);
ether_addr_copy(conn.dst_mac, bss->bssid);
@@ -1707,7 +1884,7 @@ static int _wil_cfg80211_set_ies(struct wil6210_vif *vif,
static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
struct net_device *ndev,
const u8 *ssid, size_t ssid_len, u32 privacy,
- int bi, u8 chan,
+ int bi, u8 chan, u8 wmi_edmg_channel,
struct cfg80211_beacon_data *bcon,
u8 hidden_ssid, u32 pbss)
{
@@ -1770,6 +1947,7 @@ static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
vif->privacy = privacy;
vif->channel = chan;
+ vif->wmi_edmg_channel = wmi_edmg_channel;
vif->hidden_ssid = hidden_ssid;
vif->pbss = pbss;
vif->bi = bi;
@@ -1780,7 +1958,8 @@ static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
if (!wil_has_other_active_ifaces(wil, ndev, false, true))
wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS);
- rc = wmi_pcp_start(vif, bi, wmi_nettype, chan, hidden_ssid, is_go);
+ rc = wmi_pcp_start(vif, bi, wmi_nettype, chan, wmi_edmg_channel,
+ hidden_ssid, is_go);
if (rc)
goto err_pcp_start;
@@ -1832,7 +2011,8 @@ void wil_cfg80211_ap_recovery(struct wil6210_priv *wil)
rc = _wil_cfg80211_start_ap(wiphy, ndev,
vif->ssid, vif->ssid_len,
vif->privacy, vif->bi,
- vif->channel, &bcon,
+ vif->channel,
+ vif->wmi_edmg_channel, &bcon,
vif->hidden_ssid, vif->pbss);
if (rc) {
wil_err(wil, "vif %d recovery failed (%d)\n", i, rc);
@@ -1882,7 +2062,8 @@ static int wil_cfg80211_change_beacon(struct wiphy *wiphy,
rc = _wil_cfg80211_start_ap(wiphy, ndev, vif->ssid,
vif->ssid_len, privacy,
wdev->beacon_interval,
- vif->channel, bcon,
+ vif->channel,
+ vif->wmi_edmg_channel, bcon,
vif->hidden_ssid,
vif->pbss);
} else {
@@ -1901,10 +2082,17 @@ static int wil_cfg80211_start_ap(struct wiphy *wiphy,
struct ieee80211_channel *channel = info->chandef.chan;
struct cfg80211_beacon_data *bcon = &info->beacon;
struct cfg80211_crypto_settings *crypto = &info->crypto;
+ u8 wmi_edmg_channel;
u8 hidden_ssid;
wil_dbg_misc(wil, "start_ap\n");
+ rc = wil_get_wmi_edmg_channel(wil, info->chandef.edmg_bw_config,
+ info->chandef.edmg_channels,
+ &wmi_edmg_channel);
+ if (rc < 0)
+ return rc;
+
if (!channel) {
wil_err(wil, "AP: No channel???\n");
return -EINVAL;
@@ -1944,7 +2132,8 @@ static int wil_cfg80211_start_ap(struct wiphy *wiphy,
rc = _wil_cfg80211_start_ap(wiphy, ndev,
info->ssid, info->ssid_len, info->privacy,
info->beacon_interval, channel->hw_value,
- bcon, hidden_ssid, info->pbss);
+ wmi_edmg_channel, bcon, hidden_ssid,
+ info->pbss);
return rc;
}
diff --git a/drivers/net/wireless/ath/wil6210/txrx_edma.c b/drivers/net/wireless/ath/wil6210/txrx_edma.c
index c387738..0c9bb2c 100644
--- a/drivers/net/wireless/ath/wil6210/txrx_edma.c
+++ b/drivers/net/wireless/ath/wil6210/txrx_edma.c
@@ -1006,6 +1006,8 @@ static struct sk_buff *wil_sring_reap_rx_edma(struct wil6210_priv *wil,
stats->rx_per_mcs[stats->last_mcs_rx]++;
}
+ stats->last_cb_mode_rx = wil_rx_status_get_cb_mode(msg);
+
if (!wil->use_rx_hw_reordering && !wil->use_compressed_rx_status &&
wil_check_bar(wil, msg, cid, skb, stats) == -EAGAIN) {
kfree_skb(skb);
diff --git a/drivers/net/wireless/ath/wil6210/txrx_edma.h b/drivers/net/wireless/ath/wil6210/txrx_edma.h
index 343516a..2680ffc 100644
--- a/drivers/net/wireless/ath/wil6210/txrx_edma.h
+++ b/drivers/net/wireless/ath/wil6210/txrx_edma.h
@@ -366,6 +366,12 @@ static inline u8 wil_rx_status_get_mcs(void *msg)
16, 21);
}
+static inline u8 wil_rx_status_get_cb_mode(void *msg)
+{
+ return WIL_GET_BITS(((struct wil_rx_status_compressed *)msg)->d1,
+ 22, 23);
+}
+
static inline u16 wil_rx_status_get_flow_id(void *msg)
{
return WIL_GET_BITS(((struct wil_rx_status_compressed *)msg)->d0,
diff --git a/drivers/net/wireless/ath/wil6210/wil6210.h b/drivers/net/wireless/ath/wil6210/wil6210.h
index e1b1039b..d32c0bf 100644
--- a/drivers/net/wireless/ath/wil6210/wil6210.h
+++ b/drivers/net/wireless/ath/wil6210/wil6210.h
@@ -590,6 +590,7 @@ struct wil_net_stats {
unsigned long rx_amsdu_error; /* eDMA specific */
unsigned long rx_csum_err;
u16 last_mcs_rx;
+ u8 last_cb_mode_rx;
u64 rx_per_mcs[WIL_MCS_MAX + 1];
u32 ft_roams; /* relevant in STA mode */
};
@@ -851,6 +852,7 @@ struct wil6210_vif {
DECLARE_BITMAP(status, wil_vif_status_last);
u32 privacy; /* secure connection? */
u16 channel; /* relevant in AP mode */
+ u8 wmi_edmg_channel; /* relevant in AP mode */
u8 hidden_ssid; /* relevant in AP mode */
u32 ap_isolate; /* no intra-BSS communication */
bool pbss;
@@ -1313,7 +1315,7 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
int wmi_set_mac_address(struct wil6210_priv *wil, void *addr);
int wmi_pcp_start(struct wil6210_vif *vif, int bi, u8 wmi_nettype, u8 chan,
- u8 hidden_ssid, u8 is_go);
+ u8 edmg_chan, u8 hidden_ssid, u8 is_go);
int wmi_pcp_stop(struct wil6210_vif *vif);
int wmi_led_cfg(struct wil6210_priv *wil, bool enable);
int wmi_abort_scan(struct wil6210_vif *vif);
@@ -1389,6 +1391,10 @@ int wmi_start_sched_scan(struct wil6210_priv *wil,
int wmi_mgmt_tx_ext(struct wil6210_vif *vif, const u8 *buf, size_t len,
u8 channel, u16 duration_ms);
+int wil_wmi2spec_ch(u8 wmi_ch, u8 *spec_ch);
+int wil_spec2wmi_ch(u8 spec_ch, u8 *wmi_ch);
+void wil_update_supported_bands(struct wil6210_priv *wil);
+
int reverse_memcmp(const void *cs, const void *ct, size_t count);
/* WMI for enhanced DMA */
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index bda4a97..fe8530d 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -2123,8 +2123,8 @@ int wmi_led_cfg(struct wil6210_priv *wil, bool enable)
return rc;
}
-int wmi_pcp_start(struct wil6210_vif *vif,
- int bi, u8 wmi_nettype, u8 chan, u8 hidden_ssid, u8 is_go)
+int wmi_pcp_start(struct wil6210_vif *vif, int bi, u8 wmi_nettype,
+ u8 chan, u8 wmi_edmg_chan, u8 hidden_ssid, u8 is_go)
{
struct wil6210_priv *wil = vif_to_wil(vif);
int rc;
@@ -2134,6 +2134,7 @@ int wmi_pcp_start(struct wil6210_vif *vif,
.network_type = wmi_nettype,
.disable_sec_offload = 1,
.channel = chan - 1,
+ .edmg_channel = wmi_edmg_chan,
.pcp_max_assoc_sta = max_assoc_sta,
.hidden_ssid = hidden_ssid,
.is_go = is_go,
diff --git a/drivers/net/wireless/ath/wil6210/wmi.h b/drivers/net/wireless/ath/wil6210/wmi.h
index b668758..1b39aeb 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.h
+++ b/drivers/net/wireless/ath/wil6210/wmi.h
@@ -95,6 +95,7 @@ enum wmi_fw_capability {
WMI_FW_CAPABILITY_SET_SILENT_RSSI_TABLE = 13,
WMI_FW_CAPABILITY_LO_POWER_CALIB_FROM_OTP = 14,
WMI_FW_CAPABILITY_PNO = 15,
+ WMI_FW_CAPABILITY_CHANNEL_BONDING = 17,
WMI_FW_CAPABILITY_REF_CLOCK_CONTROL = 18,
WMI_FW_CAPABILITY_AP_SME_OFFLOAD_NONE = 19,
WMI_FW_CAPABILITY_MULTI_VIFS = 20,
@@ -355,6 +356,19 @@ enum wmi_connect_ctrl_flag_bits {
#define WMI_MAX_SSID_LEN (32)
+enum wmi_channel {
+ WMI_CHANNEL_1 = 0x00,
+ WMI_CHANNEL_2 = 0x01,
+ WMI_CHANNEL_3 = 0x02,
+ WMI_CHANNEL_4 = 0x03,
+ WMI_CHANNEL_5 = 0x04,
+ WMI_CHANNEL_6 = 0x05,
+ WMI_CHANNEL_9 = 0x06,
+ WMI_CHANNEL_10 = 0x07,
+ WMI_CHANNEL_11 = 0x08,
+ WMI_CHANNEL_12 = 0x09,
+};
+
/* WMI_CONNECT_CMDID */
struct wmi_connect_cmd {
u8 network_type;
@@ -366,8 +380,12 @@ struct wmi_connect_cmd {
u8 group_crypto_len;
u8 ssid_len;
u8 ssid[WMI_MAX_SSID_LEN];
+ /* enum wmi_channel WMI_CHANNEL_1..WMI_CHANNEL_6; for EDMG this is
+ * the primary channel number
+ */
u8 channel;
- u8 reserved0;
+ /* enum wmi_channel WMI_CHANNEL_9..WMI_CHANNEL_12 */
+ u8 edmg_channel;
u8 bssid[WMI_MAC_LEN];
__le32 ctrl_flags;
u8 dst_mac[WMI_MAC_LEN];
@@ -2267,7 +2285,9 @@ struct wmi_notify_req_done_event {
__le32 status;
__le64 tsf;
s8 rssi;
- u8 reserved0[3];
+ /* enum wmi_edmg_tx_mode */
+ u8 tx_mode;
+ u8 reserved0[2];
__le32 tx_tpt;
__le32 tx_goodput;
__le32 rx_goodput;
@@ -2283,8 +2303,12 @@ struct wmi_notify_req_done_event {
/* WMI_CONNECT_EVENTID */
struct wmi_connect_event {
+ /* enum wmi_channel WMI_CHANNEL_1..WMI_CHANNEL_6; for EDMG this is
+ * the primary channel number
+ */
u8 channel;
- u8 reserved0;
+ /* enum wmi_channel WMI_CHANNEL_9..WMI_CHANNEL_12 */
+ u8 edmg_channel;
u8 bssid[WMI_MAC_LEN];
__le16 listen_interval;
__le16 beacon_interval;
--
1.9.1
^ permalink raw reply related
* [PATCH] ath10k: enabling tx stats support over pktlog
From: Balaji Pothunoori @ 2019-05-13 14:53 UTC (permalink / raw)
To: ath10k, linux-wireless; +Cc: Balaji Pothunoori
For QCA988X target, pktlog gives details of the tx bitrate
which is used in the driver for station info.
Enabling pktlog by default will cause more interrupts
in target to host CE pipe, which can impact more CPU usage
for targets ex:WCN3990 and also not required for all other
platforms (eg: WCN3990), for getting tx bitrate.
Enable pktlog only for QCA988X based on hardware params.
Tested HW : WCN3990
Tested FW : WLAN.HL.3.1-00784-QCAHLSWMTPLZ-1
Fixes: e8123bb74c4e ("ath10k: add per peer tx stats support for 10.2.4")
Signed-off-by: Balaji Pothunoori <bpothuno@codeaurora.org>
---
drivers/net/wireless/ath/ath10k/core.c | 15 +++++++++++++++
drivers/net/wireless/ath/ath10k/hw.h | 3 +++
drivers/net/wireless/ath/ath10k/mac.c | 3 ++-
3 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 61ef903..252e9af 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -83,6 +83,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = true,
},
{
.id = QCA988X_HW_2_0_VERSION,
@@ -117,6 +118,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = true,
},
{
.id = QCA9887_HW_1_0_VERSION,
@@ -152,6 +154,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA6174_HW_3_2_VERSION,
@@ -179,6 +182,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.ast_skid_limit = 0x10,
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA6174_HW_2_1_VERSION,
@@ -213,6 +217,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA6174_HW_2_1_VERSION,
@@ -247,6 +252,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA6174_HW_3_0_VERSION,
@@ -281,6 +287,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA6174_HW_3_2_VERSION,
@@ -318,6 +325,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA99X0_HW_2_0_DEV_VERSION,
@@ -358,6 +366,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA9984_HW_1_0_DEV_VERSION,
@@ -405,6 +414,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA9888_HW_2_0_DEV_VERSION,
@@ -449,6 +459,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA9377_HW_1_0_DEV_VERSION,
@@ -483,6 +494,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -519,6 +531,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .tx_stats_over_pktlog = false,
},
{
.id = QCA4019_HW_1_0_DEV_VERSION,
@@ -560,6 +573,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
{
.id = WCN3990_HW_1_0_DEV_VERSION,
@@ -587,6 +601,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = true,
.hw_filter_reset_required = false,
.fw_diag_ce_download = false,
+ .tx_stats_over_pktlog = false,
},
};
diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
index 248cfb4..1e80beb 100644
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -612,6 +612,9 @@ struct ath10k_hw_params {
* firmware bug
*/
bool uart_pin_workaround;
+
+ /* tx stats support over pktlog */
+ bool tx_stats_over_pktlog;
};
struct htt_rx_desc;
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index b500fd4..40e7cea 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7877,7 +7877,8 @@ ath10k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw,
arvif->vdev_id, ret);
}
- if (ath10k_peer_stats_enabled(ar)) {
+ if (ath10k_peer_stats_enabled(ar) &&
+ ar->hw_params.tx_stats_over_pktlog) {
ar->pktlog_filter |= ATH10K_PKTLOG_PEER_STATS;
ret = ath10k_wmi_pdev_pktlog_enable(ar,
ar->pktlog_filter);
--
2.7.4
^ permalink raw reply related
* Re: [PATCH] mt76: mt7603: add debugfs knob to enable/disable edcca
From: Lorenzo Bianconi @ 2019-05-13 15:41 UTC (permalink / raw)
To: Kalle Valo; +Cc: nbd, lorenzo.bianconi, linux-wireless
In-Reply-To: <87sgtiil7n.fsf@codeaurora.org>
[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]
> Lorenzo Bianconi <lorenzo@kernel.org> writes:
>
> >> Lorenzo Bianconi <lorenzo@kernel.org> writes:
> >>
> >> > Introduce a knob in mt7603 debugfs in order to enable/disable
> >> > edcca processing
> >> >
> >> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> >>
> >> It's good to explain what edcca does and how the file is used supposed
> >> to be used. In other words, have a small introduction for the user.
> >
> > Hi Kalle,
> >
> > edcca is used for adjusting energy detect based on CCA thresholds.
> > The code was already there so I just reported the acronym.
>
> A lot of people read commit logs but not everyone (myself included) are
> familiar with mt76 internals so please try to explain the acronyms and
> the background of the patch. Also you should explain in the commit log
> _why_ you are adding the debugfs file, how it helps the user and how to
> use it.
sorry for not been so clear.
ED/CCA is used to control tx power according to the CCA MIB counters (e.g do not
transmit if the channel busy time is higher than 90% for given amount of time
in a row).
As already done in commit 643749d4a82b ("mt76: mt76x02: disable ED/CCA by default"),
this patch adds the possibility to enable/disable the processing according to an
entry in the debugfs. The reason behind this patch is ED/CCA caused
instability in the past so it could be useful to disable it.
Regards,
Lorenzo
>
> --
> Kalle Valo
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply
* ath10k 5Ghz RSSI low
From: Sam Samy @ 2019-05-13 16:56 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <CAPGJ1o_KskiCKQ8V-6U0nxWGgXXa4NWHV0EEwo41bMPSj1bbdg@mail.gmail.com>
Hi,
I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
(2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
pretty low on any channel I put it in. In one feet range I see -60dB
RSSI, where as the stock firmware that came with the AP gives an RSSI
of -36dB at one foot distance.The downstream transmit rates are MCS8/9
for most part. The 2Ghz is working fine. Its using the cal data from
the flash that came with the AP.
Can you please suggest anyway to debug this or improve the RSSI?
Thanks you!
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Ben Greear @ 2019-05-13 17:00 UTC (permalink / raw)
To: Sam Samy, linux-wireless
In-Reply-To: <CAPGJ1o9qDYPQF882cw65uysjCmUYi6kJCmL2EUa0AXbwHj59Mg@mail.gmail.com>
On 5/13/19 9:56 AM, Sam Samy wrote:
> Hi,
> I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
> band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
> (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
> fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
> pretty low on any channel I put it in. In one feet range I see -60dB
> RSSI, where as the stock firmware that came with the AP gives an RSSI
> of -36dB at one foot distance.The downstream transmit rates are MCS8/9
> for most part. The 2Ghz is working fine. Its using the cal data from
> the flash that came with the AP.
>
> Can you please suggest anyway to debug this or improve the RSSI?
>
> Thanks you!
>
Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
please try QCA firmware and let me know if that fixes the problem.
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Sam Samy @ 2019-05-13 17:26 UTC (permalink / raw)
To: Ben Greear; +Cc: linux-wireless
In-Reply-To: <a236cf47-556d-c515-0093-82dce6e8ad8e@candelatech.com>
hi Ben,
> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> please try QCA firmware and let me know if that fixes the problem.
>
I tried both. Both have the same problem. I tried various versions
of the both(-ct and QCA) firmware as well. All have the same problem.
Thanks
On Mon, May 13, 2019 at 10:00 AM Ben Greear <greearb@candelatech.com> wrote:
>
> On 5/13/19 9:56 AM, Sam Samy wrote:
> > Hi,
> > I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
> > band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
> > (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
> > fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
> > pretty low on any channel I put it in. In one feet range I see -60dB
> > RSSI, where as the stock firmware that came with the AP gives an RSSI
> > of -36dB at one foot distance.The downstream transmit rates are MCS8/9
> > for most part. The 2Ghz is working fine. Its using the cal data from
> > the flash that came with the AP.
> >
> > Can you please suggest anyway to debug this or improve the RSSI?
> >
> > Thanks you!
> >
>
> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> please try QCA firmware and let me know if that fixes the problem.
>
> Thanks,
> Ben
>
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc http://www.candelatech.com
>
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Ben Greear @ 2019-05-13 17:27 UTC (permalink / raw)
To: Sam Samy; +Cc: linux-wireless
In-Reply-To: <CAPGJ1o96QSfoFzFpSPbh_4TwSgAU-1FGhX6P5MVCmfZv_bugHw@mail.gmail.com>
On 5/13/19 10:26 AM, Sam Samy wrote:
> hi Ben,
>
>> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
>> please try QCA firmware and let me know if that fixes the problem.
>>
> I tried both. Both have the same problem. I tried various versions
> of the both(-ct and QCA) firmware as well. All have the same problem.
Probably it is a board-file and/or calibration data issue then.
The debugfs 'ath10k/tpc_stats' file may show very low values?
Thanks,
Ben
>
> Thanks
>
> On Mon, May 13, 2019 at 10:00 AM Ben Greear <greearb@candelatech.com> wrote:
>>
>> On 5/13/19 9:56 AM, Sam Samy wrote:
>>> Hi,
>>> I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
>>> band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
>>> (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
>>> fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
>>> pretty low on any channel I put it in. In one feet range I see -60dB
>>> RSSI, where as the stock firmware that came with the AP gives an RSSI
>>> of -36dB at one foot distance.The downstream transmit rates are MCS8/9
>>> for most part. The 2Ghz is working fine. Its using the cal data from
>>> the flash that came with the AP.
>>>
>>> Can you please suggest anyway to debug this or improve the RSSI?
>>>
>>> Thanks you!
>>>
>>
>> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
>> please try QCA firmware and let me know if that fixes the problem.
>>
>> Thanks,
>> Ben
>>
>> --
>> Ben Greear <greearb@candelatech.com>
>> Candela Technologies Inc http://www.candelatech.com
>>
>
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Sam Samy @ 2019-05-13 17:36 UTC (permalink / raw)
To: Ben Greear; +Cc: linux-wireless
In-Reply-To: <79695018-5ac9-d7c8-a386-c6dd3f9ed474@candelatech.com>
> Probably it is a board-file and/or calibration data issue then.
>
> The debugfs 'ath10k/tpc_stats' file may show very low values?
I am not sure if the values are right. Here is one of the 5Ghz radio stats:
root@OpenWrt:/sys# cat ./kernel/debug/ieee80211/phy0/ath10k/tpc_stats
*************************************
TPC config for channel 5320 mode 10
*************************************
CTL = 0x10 Reg. Domain = 58
Antenna Gain = 0 Reg. Max Antenna Gain = 0
Power Limit = 46 Reg. Max Power = 46
Num tx chains = 2 Num supported rates = 129
********************************
******************* CDD POWER TABLE ****************
********************************
No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
0 CCK 0x40 0 0
1 CCK 0x41 0 0
2 CCK 0x42 0 0
3 CCK 0x43 0 0
4 OFDM 0x 0 36 34
5 OFDM 0x 1 38 34
6 OFDM 0x 2 38 34
7 OFDM 0x 3 38 34
8 OFDM 0x 4 34 34
9 OFDM 0x 5 38 34
10 OFDM 0x 6 38 34
11 OFDM 0x 7 38 34
12 HT20 0x80 38 34
13 HT20 0x81 38 34
14 HT20 0x82 38 34
15 HT20 0x83 38 34
16 HT20 0x84 38 34
17 HT20 0x85 36 34
18 HT20 0x86 34 34
19 HT20 0x87 32 32
20 HT20 0x90 38 38
21 HT20 0x91 38 38
22 HT20 0x92 38 38
23 HT20 0x93 38 38
24 HT20 0x94 38 38
25 HT20 0x95 36 36
26 HT20 0x96 34 34
27 HT20 0x97 32 32
28 HT40 0x80 37 34
29 HT40 0x81 37 34
30 HT40 0x82 37 34
31 HT40 0x83 37 34
32 HT40 0x84 37 34
33 HT40 0x85 35 34
34 HT40 0x86 33 33
35 HT40 0x87 31 31
36 HT40 0x90 37 37
37 HT40 0x91 37 37
38 HT40 0x92 37 37
39 HT40 0x93 37 37
40 HT40 0x94 37 37
41 HT40 0x95 35 35
42 HT40 0x96 33 33
43 HT40 0x97 31 31
44 VHT20 0xc0 38 34
45 VHT20 0xc1 38 34
46 VHT20 0xc2 38 34
47 VHT20 0xc3 38 34
48 VHT20 0xc4 38 34
49 VHT20 0xc5 36 34
50 VHT20 0xc6 34 34
51 VHT20 0xc7 32 32
52 VHT20 0xc8 31 31
53 VHT20 0xc9 30 30
54 VHT20 0xd0 38 38
55 VHT20 0xd1 38 38
56 VHT20 0xd2 38 38
57 VHT20 0xd3 38 38
58 VHT20 0xd4 38 38
59 VHT20 0xd5 36 36
60 VHT20 0xd6 34 34
61 VHT20 0xd7 32 32
62 VHT20 0xd8 31 31
63 VHT20 0xd9 30 30
64 VHT40 0xc0 37 34
65 VHT40 0xc1 37 34
66 VHT40 0xc2 37 34
67 VHT40 0xc3 37 34
68 VHT40 0xc4 37 34
69 VHT40 0xc5 35 34
70 VHT40 0xc6 33 33
71 VHT40 0xc7 31 31
72 VHT40 0xc8 30 30
73 VHT40 0xc9 29 29
74 VHT40 0xd0 37 37
75 VHT40 0xd1 37 37
76 VHT40 0xd2 37 37
77 VHT40 0xd3 37 37
78 VHT40 0xd4 37 37
79 VHT40 0xd5 35 35
80 VHT40 0xd6 33 33
81 VHT40 0xd7 31 31
82 VHT40 0xd8 30 30
83 VHT40 0xd9 29 29
84 VHT80 0xc0 36 34
85 VHT80 0xc1 36 34
86 VHT80 0xc2 36 34
87 VHT80 0xc3 36 34
88 VHT80 0xc4 36 34
89 VHT80 0xc5 34 34
90 VHT80 0xc6 32 32
91 VHT80 0xc7 30 30
92 VHT80 0xc8 29 29
93 VHT80 0xc9 28 28
94 VHT80 0xd0 36 36
95 VHT80 0xd1 36 36
96 VHT80 0xd2 36 36
97 VHT80 0xd3 36 36
98 VHT80 0xd4 36 36
99 VHT80 0xd5 34 34
100 VHT80 0xd6 32 32
101 VHT80 0xd7 30 30
102 VHT80 0xd8 29 29
103 VHT80 0xd9 28 28
104 HTCUP 0x40 36 36
105 HTCUP 0x 0 36 34
106 HTCUP 0x40 36 36
107 HTCUP 0x 0 36 34
108 HTCUP 0x 0 36 34
109 HTCUP 0x7a 34 34
110 HTCUP 0x8a 32 32
111 HTCUP 0x a 30 30
112 HTCUP 0xee 27 27
113 HTCUP 0xa6 26 26
114 HTCUP 0x90 36 36
115 HTCUP 0x1d 36 36
116 HTCUP 0x80 36 34
117 HTCUP 0x41 36 36
118 HTCUP 0xd9 36 36
119 HTCUP 0x64 34 34
120 HTCUP 0xf9 32 32
121 HTCUP 0x 0 30 30
122 HTCUP 0x 0 27 27
123 HTCUP 0x 0 26 26
124 HTCUP 0x64 0 0
125 HTCUP 0x 0 37 34
126 HTCUP 0x31 0 0
127 HTCUP 0x 4 37 34
128 HTCUP 0x 0 38 34
***********************************
********************************
******************* STBC POWER TABLE ****************
********************************
No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
0 CCK 0x40 0 0
1 CCK 0x41 0 0
2 CCK 0x42 0 0
3 CCK 0x43 0 0
4 OFDM 0x 0 36 36
5 OFDM 0x 1 38 38
6 OFDM 0x 2 38 38
7 OFDM 0x 3 38 38
8 OFDM 0x 4 34 34
9 OFDM 0x 5 38 38
10 OFDM 0x 6 38 38
11 OFDM 0x 7 38 38
12 HT20 0x80 38 38
13 HT20 0x81 38 38
14 HT20 0x82 38 38
15 HT20 0x83 38 38
16 HT20 0x84 38 38
17 HT20 0x85 36 36
18 HT20 0x86 34 34
19 HT20 0x87 32 32
20 HT20 0x90 38 38
21 HT20 0x91 38 38
22 HT20 0x92 38 38
23 HT20 0x93 38 38
24 HT20 0x94 38 38
25 HT20 0x95 36 36
26 HT20 0x96 34 34
27 HT20 0x97 32 32
28 HT40 0x80 37 37
29 HT40 0x81 37 37
30 HT40 0x82 37 37
31 HT40 0x83 37 37
32 HT40 0x84 37 37
33 HT40 0x85 35 35
34 HT40 0x86 33 33
35 HT40 0x87 31 31
36 HT40 0x90 37 37
37 HT40 0x91 37 37
38 HT40 0x92 37 37
39 HT40 0x93 37 37
40 HT40 0x94 37 37
41 HT40 0x95 35 35
42 HT40 0x96 33 33
43 HT40 0x97 31 31
44 VHT20 0xc0 38 38
45 VHT20 0xc1 38 38
46 VHT20 0xc2 38 38
47 VHT20 0xc3 38 38
48 VHT20 0xc4 38 38
49 VHT20 0xc5 36 36
50 VHT20 0xc6 34 34
51 VHT20 0xc7 32 32
52 VHT20 0xc8 31 31
53 VHT20 0xc9 30 30
54 VHT20 0xd0 38 38
55 VHT20 0xd1 38 38
56 VHT20 0xd2 38 38
57 VHT20 0xd3 38 38
58 VHT20 0xd4 38 38
59 VHT20 0xd5 36 36
60 VHT20 0xd6 34 34
61 VHT20 0xd7 32 32
62 VHT20 0xd8 31 31
63 VHT20 0xd9 30 30
64 VHT40 0xc0 37 37
65 VHT40 0xc1 37 37
66 VHT40 0xc2 37 37
67 VHT40 0xc3 37 37
68 VHT40 0xc4 37 37
69 VHT40 0xc5 35 35
70 VHT40 0xc6 33 33
71 VHT40 0xc7 31 31
72 VHT40 0xc8 30 30
73 VHT40 0xc9 29 29
74 VHT40 0xd0 37 37
75 VHT40 0xd1 37 37
76 VHT40 0xd2 37 37
77 VHT40 0xd3 37 37
78 VHT40 0xd4 37 37
79 VHT40 0xd5 35 35
80 VHT40 0xd6 33 33
81 VHT40 0xd7 31 31
82 VHT40 0xd8 30 30
83 VHT40 0xd9 29 29
84 VHT80 0xc0 36 36
85 VHT80 0xc1 36 36
86 VHT80 0xc2 36 36
87 VHT80 0xc3 36 36
88 VHT80 0xc4 36 36
89 VHT80 0xc5 34 34
90 VHT80 0xc6 32 32
91 VHT80 0xc7 30 30
92 VHT80 0xc8 29 29
93 VHT80 0xc9 28 28
94 VHT80 0xd0 36 36
95 VHT80 0xd1 36 36
96 VHT80 0xd2 36 36
97 VHT80 0xd3 36 36
98 VHT80 0xd4 36 36
99 VHT80 0xd5 34 34
100 VHT80 0xd6 32 32
101 VHT80 0xd7 30 30
102 VHT80 0xd8 29 29
103 VHT80 0xd9 28 28
104 HTCUP 0x40 36 36
105 HTCUP 0x 0 36 36
106 HTCUP 0x40 36 36
107 HTCUP 0x 0 36 36
108 HTCUP 0x 0 36 36
109 HTCUP 0x7a 34 34
110 HTCUP 0x8a 32 32
111 HTCUP 0x a 30 30
112 HTCUP 0xee 27 27
113 HTCUP 0xa6 26 26
114 HTCUP 0x90 36 36
115 HTCUP 0x1d 36 36
116 HTCUP 0x80 36 36
117 HTCUP 0x41 36 36
118 HTCUP 0xd9 36 36
119 HTCUP 0x64 34 34
120 HTCUP 0xf9 32 32
121 HTCUP 0x 0 30 30
122 HTCUP 0x 0 27 27
123 HTCUP 0x 0 26 26
124 HTCUP 0x64 0 0
125 HTCUP 0x 0 37 37
126 HTCUP 0x31 0 0
127 HTCUP 0x 4 37 37
128 HTCUP 0x 0 38 38
***********************************
TXBF not supported
***************************
root@OpenWrt:/sys#
Thanks
On Mon, May 13, 2019 at 10:27 AM Ben Greear <greearb@candelatech.com> wrote:
>
> On 5/13/19 10:26 AM, Sam Samy wrote:
> > hi Ben,
> >
> >> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> >> please try QCA firmware and let me know if that fixes the problem.
> >>
> > I tried both. Both have the same problem. I tried various versions
> > of the both(-ct and QCA) firmware as well. All have the same problem.
>
> Probably it is a board-file and/or calibration data issue then.
>
> The debugfs 'ath10k/tpc_stats' file may show very low values?
>
> Thanks,
> Ben
>
> >
> > Thanks
> >
> > On Mon, May 13, 2019 at 10:00 AM Ben Greear <greearb@candelatech.com> wrote:
> >>
> >> On 5/13/19 9:56 AM, Sam Samy wrote:
> >>> Hi,
> >>> I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
> >>> band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
> >>> (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
> >>> fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
> >>> pretty low on any channel I put it in. In one feet range I see -60dB
> >>> RSSI, where as the stock firmware that came with the AP gives an RSSI
> >>> of -36dB at one foot distance.The downstream transmit rates are MCS8/9
> >>> for most part. The 2Ghz is working fine. Its using the cal data from
> >>> the flash that came with the AP.
> >>>
> >>> Can you please suggest anyway to debug this or improve the RSSI?
> >>>
> >>> Thanks you!
> >>>
> >>
> >> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> >> please try QCA firmware and let me know if that fixes the problem.
> >>
> >> Thanks,
> >> Ben
> >>
> >> --
> >> Ben Greear <greearb@candelatech.com>
> >> Candela Technologies Inc http://www.candelatech.com
> >>
> >
>
>
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc http://www.candelatech.com
>
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Sam Samy @ 2019-05-13 18:10 UTC (permalink / raw)
To: Ben Greear; +Cc: linux-wireless
In-Reply-To: <CAPGJ1o8k4WoK1cwBBYMge8m6n-Mm5nC7G=ku29iMRrSsJ1AMQw@mail.gmail.com>
hi Ben,
I also looked at the TPC on the stock firmware on the AP. There is a
difference.
Here is the snippet from stock firmware:
TPC Config for channel 5765 mode 10
**************************************************
CTL = 0x10 Reg. Domain = 20
Antenna Gain = 0 Reg. Max Antenna Gain = 12
Power Limit = 63 Reg. Max Power = 60
Num tx chains = 2 Num Supported Rates = 109
**************************************************
**************** CDD POWER TABLE ****************
**************************************************
Where as in openwrt it is:
*************************************
TPC config for channel 5765 mode 10
*************************************
CTL = 0x10 Reg. Domain = 58
Antenna Gain = 0 Reg. Max Antenna Gain = 0
Power Limit = 60 Reg. Max Power = 30
Num tx chains = 2 Num supported rates = 109
********************************
So looks like reg ,domain is different even though both are US.
(Although I didnt set anything on stock firmware. The countrycode from
iwpriv get_countrycode says its 841.)
Also, the antenna gain seems different between stock and openwrt firmware..
How to change the reg. domain like in stock firmware in openwrt
although I set to US in the uci.
root@OpenWrt:/sys# uci show | grep country
uhttpd.defaults.country='ZZ'
wireless.radio0.country='US'
wireless.radio1.country='US'
wireless.radio2.country='US'
root@OpenWrt:/sys#
Thanks
On Mon, May 13, 2019 at 10:36 AM Sam Samy <to.swami1@gmail.com> wrote:
>
> > Probably it is a board-file and/or calibration data issue then.
> >
> > The debugfs 'ath10k/tpc_stats' file may show very low values?
>
> I am not sure if the values are right. Here is one of the 5Ghz radio stats:
>
> root@OpenWrt:/sys# cat ./kernel/debug/ieee80211/phy0/ath10k/tpc_stats
>
> *************************************
> TPC config for channel 5320 mode 10
> *************************************
> CTL = 0x10 Reg. Domain = 58
> Antenna Gain = 0 Reg. Max Antenna Gain = 0
> Power Limit = 46 Reg. Max Power = 46
> Num tx chains = 2 Num supported rates = 129
> ********************************
> ******************* CDD POWER TABLE ****************
> ********************************
> No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
> 0 CCK 0x40 0 0
> 1 CCK 0x41 0 0
> 2 CCK 0x42 0 0
> 3 CCK 0x43 0 0
> 4 OFDM 0x 0 36 34
> 5 OFDM 0x 1 38 34
> 6 OFDM 0x 2 38 34
> 7 OFDM 0x 3 38 34
> 8 OFDM 0x 4 34 34
> 9 OFDM 0x 5 38 34
> 10 OFDM 0x 6 38 34
> 11 OFDM 0x 7 38 34
> 12 HT20 0x80 38 34
> 13 HT20 0x81 38 34
> 14 HT20 0x82 38 34
> 15 HT20 0x83 38 34
> 16 HT20 0x84 38 34
> 17 HT20 0x85 36 34
> 18 HT20 0x86 34 34
> 19 HT20 0x87 32 32
> 20 HT20 0x90 38 38
> 21 HT20 0x91 38 38
> 22 HT20 0x92 38 38
> 23 HT20 0x93 38 38
> 24 HT20 0x94 38 38
> 25 HT20 0x95 36 36
> 26 HT20 0x96 34 34
> 27 HT20 0x97 32 32
> 28 HT40 0x80 37 34
> 29 HT40 0x81 37 34
> 30 HT40 0x82 37 34
> 31 HT40 0x83 37 34
> 32 HT40 0x84 37 34
> 33 HT40 0x85 35 34
> 34 HT40 0x86 33 33
> 35 HT40 0x87 31 31
> 36 HT40 0x90 37 37
> 37 HT40 0x91 37 37
> 38 HT40 0x92 37 37
> 39 HT40 0x93 37 37
> 40 HT40 0x94 37 37
> 41 HT40 0x95 35 35
> 42 HT40 0x96 33 33
> 43 HT40 0x97 31 31
> 44 VHT20 0xc0 38 34
> 45 VHT20 0xc1 38 34
> 46 VHT20 0xc2 38 34
> 47 VHT20 0xc3 38 34
> 48 VHT20 0xc4 38 34
> 49 VHT20 0xc5 36 34
> 50 VHT20 0xc6 34 34
> 51 VHT20 0xc7 32 32
> 52 VHT20 0xc8 31 31
> 53 VHT20 0xc9 30 30
> 54 VHT20 0xd0 38 38
> 55 VHT20 0xd1 38 38
> 56 VHT20 0xd2 38 38
> 57 VHT20 0xd3 38 38
> 58 VHT20 0xd4 38 38
> 59 VHT20 0xd5 36 36
> 60 VHT20 0xd6 34 34
> 61 VHT20 0xd7 32 32
> 62 VHT20 0xd8 31 31
> 63 VHT20 0xd9 30 30
> 64 VHT40 0xc0 37 34
> 65 VHT40 0xc1 37 34
> 66 VHT40 0xc2 37 34
> 67 VHT40 0xc3 37 34
> 68 VHT40 0xc4 37 34
> 69 VHT40 0xc5 35 34
> 70 VHT40 0xc6 33 33
> 71 VHT40 0xc7 31 31
> 72 VHT40 0xc8 30 30
> 73 VHT40 0xc9 29 29
> 74 VHT40 0xd0 37 37
> 75 VHT40 0xd1 37 37
> 76 VHT40 0xd2 37 37
> 77 VHT40 0xd3 37 37
> 78 VHT40 0xd4 37 37
> 79 VHT40 0xd5 35 35
> 80 VHT40 0xd6 33 33
> 81 VHT40 0xd7 31 31
> 82 VHT40 0xd8 30 30
> 83 VHT40 0xd9 29 29
> 84 VHT80 0xc0 36 34
> 85 VHT80 0xc1 36 34
> 86 VHT80 0xc2 36 34
> 87 VHT80 0xc3 36 34
> 88 VHT80 0xc4 36 34
> 89 VHT80 0xc5 34 34
> 90 VHT80 0xc6 32 32
> 91 VHT80 0xc7 30 30
> 92 VHT80 0xc8 29 29
> 93 VHT80 0xc9 28 28
> 94 VHT80 0xd0 36 36
> 95 VHT80 0xd1 36 36
> 96 VHT80 0xd2 36 36
> 97 VHT80 0xd3 36 36
> 98 VHT80 0xd4 36 36
> 99 VHT80 0xd5 34 34
> 100 VHT80 0xd6 32 32
> 101 VHT80 0xd7 30 30
> 102 VHT80 0xd8 29 29
> 103 VHT80 0xd9 28 28
> 104 HTCUP 0x40 36 36
> 105 HTCUP 0x 0 36 34
> 106 HTCUP 0x40 36 36
> 107 HTCUP 0x 0 36 34
> 108 HTCUP 0x 0 36 34
> 109 HTCUP 0x7a 34 34
> 110 HTCUP 0x8a 32 32
> 111 HTCUP 0x a 30 30
> 112 HTCUP 0xee 27 27
> 113 HTCUP 0xa6 26 26
> 114 HTCUP 0x90 36 36
> 115 HTCUP 0x1d 36 36
> 116 HTCUP 0x80 36 34
> 117 HTCUP 0x41 36 36
> 118 HTCUP 0xd9 36 36
> 119 HTCUP 0x64 34 34
> 120 HTCUP 0xf9 32 32
> 121 HTCUP 0x 0 30 30
> 122 HTCUP 0x 0 27 27
> 123 HTCUP 0x 0 26 26
> 124 HTCUP 0x64 0 0
> 125 HTCUP 0x 0 37 34
> 126 HTCUP 0x31 0 0
> 127 HTCUP 0x 4 37 34
> 128 HTCUP 0x 0 38 34
> ***********************************
> ********************************
> ******************* STBC POWER TABLE ****************
> ********************************
> No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
> 0 CCK 0x40 0 0
> 1 CCK 0x41 0 0
> 2 CCK 0x42 0 0
> 3 CCK 0x43 0 0
> 4 OFDM 0x 0 36 36
> 5 OFDM 0x 1 38 38
> 6 OFDM 0x 2 38 38
> 7 OFDM 0x 3 38 38
> 8 OFDM 0x 4 34 34
> 9 OFDM 0x 5 38 38
> 10 OFDM 0x 6 38 38
> 11 OFDM 0x 7 38 38
> 12 HT20 0x80 38 38
> 13 HT20 0x81 38 38
> 14 HT20 0x82 38 38
> 15 HT20 0x83 38 38
> 16 HT20 0x84 38 38
> 17 HT20 0x85 36 36
> 18 HT20 0x86 34 34
> 19 HT20 0x87 32 32
> 20 HT20 0x90 38 38
> 21 HT20 0x91 38 38
> 22 HT20 0x92 38 38
> 23 HT20 0x93 38 38
> 24 HT20 0x94 38 38
> 25 HT20 0x95 36 36
> 26 HT20 0x96 34 34
> 27 HT20 0x97 32 32
> 28 HT40 0x80 37 37
> 29 HT40 0x81 37 37
> 30 HT40 0x82 37 37
> 31 HT40 0x83 37 37
> 32 HT40 0x84 37 37
> 33 HT40 0x85 35 35
> 34 HT40 0x86 33 33
> 35 HT40 0x87 31 31
> 36 HT40 0x90 37 37
> 37 HT40 0x91 37 37
> 38 HT40 0x92 37 37
> 39 HT40 0x93 37 37
> 40 HT40 0x94 37 37
> 41 HT40 0x95 35 35
> 42 HT40 0x96 33 33
> 43 HT40 0x97 31 31
> 44 VHT20 0xc0 38 38
> 45 VHT20 0xc1 38 38
> 46 VHT20 0xc2 38 38
> 47 VHT20 0xc3 38 38
> 48 VHT20 0xc4 38 38
> 49 VHT20 0xc5 36 36
> 50 VHT20 0xc6 34 34
> 51 VHT20 0xc7 32 32
> 52 VHT20 0xc8 31 31
> 53 VHT20 0xc9 30 30
> 54 VHT20 0xd0 38 38
> 55 VHT20 0xd1 38 38
> 56 VHT20 0xd2 38 38
> 57 VHT20 0xd3 38 38
> 58 VHT20 0xd4 38 38
> 59 VHT20 0xd5 36 36
> 60 VHT20 0xd6 34 34
> 61 VHT20 0xd7 32 32
> 62 VHT20 0xd8 31 31
> 63 VHT20 0xd9 30 30
> 64 VHT40 0xc0 37 37
> 65 VHT40 0xc1 37 37
> 66 VHT40 0xc2 37 37
> 67 VHT40 0xc3 37 37
> 68 VHT40 0xc4 37 37
> 69 VHT40 0xc5 35 35
> 70 VHT40 0xc6 33 33
> 71 VHT40 0xc7 31 31
> 72 VHT40 0xc8 30 30
> 73 VHT40 0xc9 29 29
> 74 VHT40 0xd0 37 37
> 75 VHT40 0xd1 37 37
> 76 VHT40 0xd2 37 37
> 77 VHT40 0xd3 37 37
> 78 VHT40 0xd4 37 37
> 79 VHT40 0xd5 35 35
> 80 VHT40 0xd6 33 33
> 81 VHT40 0xd7 31 31
> 82 VHT40 0xd8 30 30
> 83 VHT40 0xd9 29 29
> 84 VHT80 0xc0 36 36
> 85 VHT80 0xc1 36 36
> 86 VHT80 0xc2 36 36
> 87 VHT80 0xc3 36 36
> 88 VHT80 0xc4 36 36
> 89 VHT80 0xc5 34 34
> 90 VHT80 0xc6 32 32
> 91 VHT80 0xc7 30 30
> 92 VHT80 0xc8 29 29
> 93 VHT80 0xc9 28 28
> 94 VHT80 0xd0 36 36
> 95 VHT80 0xd1 36 36
> 96 VHT80 0xd2 36 36
> 97 VHT80 0xd3 36 36
> 98 VHT80 0xd4 36 36
> 99 VHT80 0xd5 34 34
> 100 VHT80 0xd6 32 32
> 101 VHT80 0xd7 30 30
> 102 VHT80 0xd8 29 29
> 103 VHT80 0xd9 28 28
> 104 HTCUP 0x40 36 36
> 105 HTCUP 0x 0 36 36
> 106 HTCUP 0x40 36 36
> 107 HTCUP 0x 0 36 36
> 108 HTCUP 0x 0 36 36
> 109 HTCUP 0x7a 34 34
> 110 HTCUP 0x8a 32 32
> 111 HTCUP 0x a 30 30
> 112 HTCUP 0xee 27 27
> 113 HTCUP 0xa6 26 26
> 114 HTCUP 0x90 36 36
> 115 HTCUP 0x1d 36 36
> 116 HTCUP 0x80 36 36
> 117 HTCUP 0x41 36 36
> 118 HTCUP 0xd9 36 36
> 119 HTCUP 0x64 34 34
> 120 HTCUP 0xf9 32 32
> 121 HTCUP 0x 0 30 30
> 122 HTCUP 0x 0 27 27
> 123 HTCUP 0x 0 26 26
> 124 HTCUP 0x64 0 0
> 125 HTCUP 0x 0 37 37
> 126 HTCUP 0x31 0 0
> 127 HTCUP 0x 4 37 37
> 128 HTCUP 0x 0 38 38
> ***********************************
> TXBF not supported
> ***************************
> root@OpenWrt:/sys#
>
>
> Thanks
>
> On Mon, May 13, 2019 at 10:27 AM Ben Greear <greearb@candelatech.com> wrote:
> >
> > On 5/13/19 10:26 AM, Sam Samy wrote:
> > > hi Ben,
> > >
> > >> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> > >> please try QCA firmware and let me know if that fixes the problem.
> > >>
> > > I tried both. Both have the same problem. I tried various versions
> > > of the both(-ct and QCA) firmware as well. All have the same problem.
> >
> > Probably it is a board-file and/or calibration data issue then.
> >
> > The debugfs 'ath10k/tpc_stats' file may show very low values?
> >
> > Thanks,
> > Ben
> >
> > >
> > > Thanks
> > >
> > > On Mon, May 13, 2019 at 10:00 AM Ben Greear <greearb@candelatech.com> wrote:
> > >>
> > >> On 5/13/19 9:56 AM, Sam Samy wrote:
> > >>> Hi,
> > >>> I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
> > >>> band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
> > >>> (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
> > >>> fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
> > >>> pretty low on any channel I put it in. In one feet range I see -60dB
> > >>> RSSI, where as the stock firmware that came with the AP gives an RSSI
> > >>> of -36dB at one foot distance.The downstream transmit rates are MCS8/9
> > >>> for most part. The 2Ghz is working fine. Its using the cal data from
> > >>> the flash that came with the AP.
> > >>>
> > >>> Can you please suggest anyway to debug this or improve the RSSI?
> > >>>
> > >>> Thanks you!
> > >>>
> > >>
> > >> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> > >> please try QCA firmware and let me know if that fixes the problem.
> > >>
> > >> Thanks,
> > >> Ben
> > >>
> > >> --
> > >> Ben Greear <greearb@candelatech.com>
> > >> Candela Technologies Inc http://www.candelatech.com
> > >>
> > >
> >
> >
> > --
> > Ben Greear <greearb@candelatech.com>
> > Candela Technologies Inc http://www.candelatech.com
> >
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Ben Greear @ 2019-05-13 18:17 UTC (permalink / raw)
To: Sam Samy; +Cc: linux-wireless
In-Reply-To: <CAPGJ1o-i8Gy8baAf+MHcuWoF6oHuSiRYwyADCZDkYS8fmeOy8A@mail.gmail.com>
On 5/13/19 11:10 AM, Sam Samy wrote:
> hi Ben,
>
> I also looked at the TPC on the stock firmware on the AP. There is a
> difference.
I think you should write to the openwrt mailing list and/or its bug tracker
and see if they can help.
Thanks,
Ben
>
> Here is the snippet from stock firmware:
>
> TPC Config for channel 5765 mode 10
> **************************************************
> CTL = 0x10 Reg. Domain = 20
> Antenna Gain = 0 Reg. Max Antenna Gain = 12
> Power Limit = 63 Reg. Max Power = 60
> Num tx chains = 2 Num Supported Rates = 109
> **************************************************
> **************** CDD POWER TABLE ****************
> **************************************************
>
> Where as in openwrt it is:
>
> *************************************
> TPC config for channel 5765 mode 10
> *************************************
> CTL = 0x10 Reg. Domain = 58
> Antenna Gain = 0 Reg. Max Antenna Gain = 0
> Power Limit = 60 Reg. Max Power = 30
> Num tx chains = 2 Num supported rates = 109
> ********************************
>
>
> So looks like reg ,domain is different even though both are US.
> (Although I didnt set anything on stock firmware. The countrycode from
> iwpriv get_countrycode says its 841.)
>
> Also, the antenna gain seems different between stock and openwrt firmware..
>
>
> How to change the reg. domain like in stock firmware in openwrt
> although I set to US in the uci.
>
> root@OpenWrt:/sys# uci show | grep country
> uhttpd.defaults.country='ZZ'
> wireless.radio0.country='US'
> wireless.radio1.country='US'
> wireless.radio2.country='US'
> root@OpenWrt:/sys#
>
> Thanks
>
>
> On Mon, May 13, 2019 at 10:36 AM Sam Samy <to.swami1@gmail.com> wrote:
>>
>>> Probably it is a board-file and/or calibration data issue then.
>>>
>>> The debugfs 'ath10k/tpc_stats' file may show very low values?
>>
>> I am not sure if the values are right. Here is one of the 5Ghz radio stats:
>>
>> root@OpenWrt:/sys# cat ./kernel/debug/ieee80211/phy0/ath10k/tpc_stats
>>
>> *************************************
>> TPC config for channel 5320 mode 10
>> *************************************
>> CTL = 0x10 Reg. Domain = 58
>> Antenna Gain = 0 Reg. Max Antenna Gain = 0
>> Power Limit = 46 Reg. Max Power = 46
>> Num tx chains = 2 Num supported rates = 129
>> ********************************
>> ******************* CDD POWER TABLE ****************
>> ********************************
>> No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
>> 0 CCK 0x40 0 0
>> 1 CCK 0x41 0 0
>> 2 CCK 0x42 0 0
>> 3 CCK 0x43 0 0
>> 4 OFDM 0x 0 36 34
>> 5 OFDM 0x 1 38 34
>> 6 OFDM 0x 2 38 34
>> 7 OFDM 0x 3 38 34
>> 8 OFDM 0x 4 34 34
>> 9 OFDM 0x 5 38 34
>> 10 OFDM 0x 6 38 34
>> 11 OFDM 0x 7 38 34
>> 12 HT20 0x80 38 34
>> 13 HT20 0x81 38 34
>> 14 HT20 0x82 38 34
>> 15 HT20 0x83 38 34
>> 16 HT20 0x84 38 34
>> 17 HT20 0x85 36 34
>> 18 HT20 0x86 34 34
>> 19 HT20 0x87 32 32
>> 20 HT20 0x90 38 38
>> 21 HT20 0x91 38 38
>> 22 HT20 0x92 38 38
>> 23 HT20 0x93 38 38
>> 24 HT20 0x94 38 38
>> 25 HT20 0x95 36 36
>> 26 HT20 0x96 34 34
>> 27 HT20 0x97 32 32
>> 28 HT40 0x80 37 34
>> 29 HT40 0x81 37 34
>> 30 HT40 0x82 37 34
>> 31 HT40 0x83 37 34
>> 32 HT40 0x84 37 34
>> 33 HT40 0x85 35 34
>> 34 HT40 0x86 33 33
>> 35 HT40 0x87 31 31
>> 36 HT40 0x90 37 37
>> 37 HT40 0x91 37 37
>> 38 HT40 0x92 37 37
>> 39 HT40 0x93 37 37
>> 40 HT40 0x94 37 37
>> 41 HT40 0x95 35 35
>> 42 HT40 0x96 33 33
>> 43 HT40 0x97 31 31
>> 44 VHT20 0xc0 38 34
>> 45 VHT20 0xc1 38 34
>> 46 VHT20 0xc2 38 34
>> 47 VHT20 0xc3 38 34
>> 48 VHT20 0xc4 38 34
>> 49 VHT20 0xc5 36 34
>> 50 VHT20 0xc6 34 34
>> 51 VHT20 0xc7 32 32
>> 52 VHT20 0xc8 31 31
>> 53 VHT20 0xc9 30 30
>> 54 VHT20 0xd0 38 38
>> 55 VHT20 0xd1 38 38
>> 56 VHT20 0xd2 38 38
>> 57 VHT20 0xd3 38 38
>> 58 VHT20 0xd4 38 38
>> 59 VHT20 0xd5 36 36
>> 60 VHT20 0xd6 34 34
>> 61 VHT20 0xd7 32 32
>> 62 VHT20 0xd8 31 31
>> 63 VHT20 0xd9 30 30
>> 64 VHT40 0xc0 37 34
>> 65 VHT40 0xc1 37 34
>> 66 VHT40 0xc2 37 34
>> 67 VHT40 0xc3 37 34
>> 68 VHT40 0xc4 37 34
>> 69 VHT40 0xc5 35 34
>> 70 VHT40 0xc6 33 33
>> 71 VHT40 0xc7 31 31
>> 72 VHT40 0xc8 30 30
>> 73 VHT40 0xc9 29 29
>> 74 VHT40 0xd0 37 37
>> 75 VHT40 0xd1 37 37
>> 76 VHT40 0xd2 37 37
>> 77 VHT40 0xd3 37 37
>> 78 VHT40 0xd4 37 37
>> 79 VHT40 0xd5 35 35
>> 80 VHT40 0xd6 33 33
>> 81 VHT40 0xd7 31 31
>> 82 VHT40 0xd8 30 30
>> 83 VHT40 0xd9 29 29
>> 84 VHT80 0xc0 36 34
>> 85 VHT80 0xc1 36 34
>> 86 VHT80 0xc2 36 34
>> 87 VHT80 0xc3 36 34
>> 88 VHT80 0xc4 36 34
>> 89 VHT80 0xc5 34 34
>> 90 VHT80 0xc6 32 32
>> 91 VHT80 0xc7 30 30
>> 92 VHT80 0xc8 29 29
>> 93 VHT80 0xc9 28 28
>> 94 VHT80 0xd0 36 36
>> 95 VHT80 0xd1 36 36
>> 96 VHT80 0xd2 36 36
>> 97 VHT80 0xd3 36 36
>> 98 VHT80 0xd4 36 36
>> 99 VHT80 0xd5 34 34
>> 100 VHT80 0xd6 32 32
>> 101 VHT80 0xd7 30 30
>> 102 VHT80 0xd8 29 29
>> 103 VHT80 0xd9 28 28
>> 104 HTCUP 0x40 36 36
>> 105 HTCUP 0x 0 36 34
>> 106 HTCUP 0x40 36 36
>> 107 HTCUP 0x 0 36 34
>> 108 HTCUP 0x 0 36 34
>> 109 HTCUP 0x7a 34 34
>> 110 HTCUP 0x8a 32 32
>> 111 HTCUP 0x a 30 30
>> 112 HTCUP 0xee 27 27
>> 113 HTCUP 0xa6 26 26
>> 114 HTCUP 0x90 36 36
>> 115 HTCUP 0x1d 36 36
>> 116 HTCUP 0x80 36 34
>> 117 HTCUP 0x41 36 36
>> 118 HTCUP 0xd9 36 36
>> 119 HTCUP 0x64 34 34
>> 120 HTCUP 0xf9 32 32
>> 121 HTCUP 0x 0 30 30
>> 122 HTCUP 0x 0 27 27
>> 123 HTCUP 0x 0 26 26
>> 124 HTCUP 0x64 0 0
>> 125 HTCUP 0x 0 37 34
>> 126 HTCUP 0x31 0 0
>> 127 HTCUP 0x 4 37 34
>> 128 HTCUP 0x 0 38 34
>> ***********************************
>> ********************************
>> ******************* STBC POWER TABLE ****************
>> ********************************
>> No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
>> 0 CCK 0x40 0 0
>> 1 CCK 0x41 0 0
>> 2 CCK 0x42 0 0
>> 3 CCK 0x43 0 0
>> 4 OFDM 0x 0 36 36
>> 5 OFDM 0x 1 38 38
>> 6 OFDM 0x 2 38 38
>> 7 OFDM 0x 3 38 38
>> 8 OFDM 0x 4 34 34
>> 9 OFDM 0x 5 38 38
>> 10 OFDM 0x 6 38 38
>> 11 OFDM 0x 7 38 38
>> 12 HT20 0x80 38 38
>> 13 HT20 0x81 38 38
>> 14 HT20 0x82 38 38
>> 15 HT20 0x83 38 38
>> 16 HT20 0x84 38 38
>> 17 HT20 0x85 36 36
>> 18 HT20 0x86 34 34
>> 19 HT20 0x87 32 32
>> 20 HT20 0x90 38 38
>> 21 HT20 0x91 38 38
>> 22 HT20 0x92 38 38
>> 23 HT20 0x93 38 38
>> 24 HT20 0x94 38 38
>> 25 HT20 0x95 36 36
>> 26 HT20 0x96 34 34
>> 27 HT20 0x97 32 32
>> 28 HT40 0x80 37 37
>> 29 HT40 0x81 37 37
>> 30 HT40 0x82 37 37
>> 31 HT40 0x83 37 37
>> 32 HT40 0x84 37 37
>> 33 HT40 0x85 35 35
>> 34 HT40 0x86 33 33
>> 35 HT40 0x87 31 31
>> 36 HT40 0x90 37 37
>> 37 HT40 0x91 37 37
>> 38 HT40 0x92 37 37
>> 39 HT40 0x93 37 37
>> 40 HT40 0x94 37 37
>> 41 HT40 0x95 35 35
>> 42 HT40 0x96 33 33
>> 43 HT40 0x97 31 31
>> 44 VHT20 0xc0 38 38
>> 45 VHT20 0xc1 38 38
>> 46 VHT20 0xc2 38 38
>> 47 VHT20 0xc3 38 38
>> 48 VHT20 0xc4 38 38
>> 49 VHT20 0xc5 36 36
>> 50 VHT20 0xc6 34 34
>> 51 VHT20 0xc7 32 32
>> 52 VHT20 0xc8 31 31
>> 53 VHT20 0xc9 30 30
>> 54 VHT20 0xd0 38 38
>> 55 VHT20 0xd1 38 38
>> 56 VHT20 0xd2 38 38
>> 57 VHT20 0xd3 38 38
>> 58 VHT20 0xd4 38 38
>> 59 VHT20 0xd5 36 36
>> 60 VHT20 0xd6 34 34
>> 61 VHT20 0xd7 32 32
>> 62 VHT20 0xd8 31 31
>> 63 VHT20 0xd9 30 30
>> 64 VHT40 0xc0 37 37
>> 65 VHT40 0xc1 37 37
>> 66 VHT40 0xc2 37 37
>> 67 VHT40 0xc3 37 37
>> 68 VHT40 0xc4 37 37
>> 69 VHT40 0xc5 35 35
>> 70 VHT40 0xc6 33 33
>> 71 VHT40 0xc7 31 31
>> 72 VHT40 0xc8 30 30
>> 73 VHT40 0xc9 29 29
>> 74 VHT40 0xd0 37 37
>> 75 VHT40 0xd1 37 37
>> 76 VHT40 0xd2 37 37
>> 77 VHT40 0xd3 37 37
>> 78 VHT40 0xd4 37 37
>> 79 VHT40 0xd5 35 35
>> 80 VHT40 0xd6 33 33
>> 81 VHT40 0xd7 31 31
>> 82 VHT40 0xd8 30 30
>> 83 VHT40 0xd9 29 29
>> 84 VHT80 0xc0 36 36
>> 85 VHT80 0xc1 36 36
>> 86 VHT80 0xc2 36 36
>> 87 VHT80 0xc3 36 36
>> 88 VHT80 0xc4 36 36
>> 89 VHT80 0xc5 34 34
>> 90 VHT80 0xc6 32 32
>> 91 VHT80 0xc7 30 30
>> 92 VHT80 0xc8 29 29
>> 93 VHT80 0xc9 28 28
>> 94 VHT80 0xd0 36 36
>> 95 VHT80 0xd1 36 36
>> 96 VHT80 0xd2 36 36
>> 97 VHT80 0xd3 36 36
>> 98 VHT80 0xd4 36 36
>> 99 VHT80 0xd5 34 34
>> 100 VHT80 0xd6 32 32
>> 101 VHT80 0xd7 30 30
>> 102 VHT80 0xd8 29 29
>> 103 VHT80 0xd9 28 28
>> 104 HTCUP 0x40 36 36
>> 105 HTCUP 0x 0 36 36
>> 106 HTCUP 0x40 36 36
>> 107 HTCUP 0x 0 36 36
>> 108 HTCUP 0x 0 36 36
>> 109 HTCUP 0x7a 34 34
>> 110 HTCUP 0x8a 32 32
>> 111 HTCUP 0x a 30 30
>> 112 HTCUP 0xee 27 27
>> 113 HTCUP 0xa6 26 26
>> 114 HTCUP 0x90 36 36
>> 115 HTCUP 0x1d 36 36
>> 116 HTCUP 0x80 36 36
>> 117 HTCUP 0x41 36 36
>> 118 HTCUP 0xd9 36 36
>> 119 HTCUP 0x64 34 34
>> 120 HTCUP 0xf9 32 32
>> 121 HTCUP 0x 0 30 30
>> 122 HTCUP 0x 0 27 27
>> 123 HTCUP 0x 0 26 26
>> 124 HTCUP 0x64 0 0
>> 125 HTCUP 0x 0 37 37
>> 126 HTCUP 0x31 0 0
>> 127 HTCUP 0x 4 37 37
>> 128 HTCUP 0x 0 38 38
>> ***********************************
>> TXBF not supported
>> ***************************
>> root@OpenWrt:/sys#
>>
>>
>> Thanks
>>
>> On Mon, May 13, 2019 at 10:27 AM Ben Greear <greearb@candelatech.com> wrote:
>>>
>>> On 5/13/19 10:26 AM, Sam Samy wrote:
>>>> hi Ben,
>>>>
>>>>> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
>>>>> please try QCA firmware and let me know if that fixes the problem.
>>>>>
>>>> I tried both. Both have the same problem. I tried various versions
>>>> of the both(-ct and QCA) firmware as well. All have the same problem.
>>>
>>> Probably it is a board-file and/or calibration data issue then.
>>>
>>> The debugfs 'ath10k/tpc_stats' file may show very low values?
>>>
>>> Thanks,
>>> Ben
>>>
>>>>
>>>> Thanks
>>>>
>>>> On Mon, May 13, 2019 at 10:00 AM Ben Greear <greearb@candelatech.com> wrote:
>>>>>
>>>>> On 5/13/19 9:56 AM, Sam Samy wrote:
>>>>>> Hi,
>>>>>> I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
>>>>>> band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
>>>>>> (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
>>>>>> fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
>>>>>> pretty low on any channel I put it in. In one feet range I see -60dB
>>>>>> RSSI, where as the stock firmware that came with the AP gives an RSSI
>>>>>> of -36dB at one foot distance.The downstream transmit rates are MCS8/9
>>>>>> for most part. The 2Ghz is working fine. Its using the cal data from
>>>>>> the flash that came with the AP.
>>>>>>
>>>>>> Can you please suggest anyway to debug this or improve the RSSI?
>>>>>>
>>>>>> Thanks you!
>>>>>>
>>>>>
>>>>> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
>>>>> please try QCA firmware and let me know if that fixes the problem.
>>>>>
>>>>> Thanks,
>>>>> Ben
>>>>>
>>>>> --
>>>>> Ben Greear <greearb@candelatech.com>
>>>>> Candela Technologies Inc http://www.candelatech.com
>>>>>
>>>>
>>>
>>>
>>> --
>>> Ben Greear <greearb@candelatech.com>
>>> Candela Technologies Inc http://www.candelatech.com
>>>
>
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: [linux-nfc] ThinkPad T470 and NXP PN5xx (PN547 or PN548)
From: Sedat Dilek @ 2019-05-13 19:46 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Oleg Zhurakivskyy, Samuel Ortiz, linux-wireless, linux-nfc
In-Reply-To: <20190513141128.GY9224@smile.fi.intel.com>
On Mon, May 13, 2019 at 4:11 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Mon, May 13, 2019 at 03:32:52PM +0200, Sedat Dilek wrote:
> > BTW, which Linux Kconfig setting are minimum?
> >
> > scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C
> >
> > What about?
> >
> > scripts/config -m NFC_NCI_SPI -m NFC_NCI_UART -m I2C_GPIO -m SPI_GPIO
> >
> > Required?
> > Not needed?
>
> I2C_GPIO and SPI_GPIO has nothing to do with all this. What indeed is needed is
> the pin control of the actual Intel SoC (unfortunately I don't know what
> exactly you have, so, you better to check yourself), something like
> CONFIG_PINCTRL_SKYLAKE=y.
>
I played a bit with the Kconfigs...
scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C
...is sufficient.
I don't know which CONFIG_PINCTRL_XXX is needed.
- Sedat -
^ permalink raw reply
* Re: [PATCH v2 00/12] NFC: nxp-nci: clean up and support new ID
From: Sedat Dilek @ 2019-05-13 19:48 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Clément Perrochaud, Charles Gorand, linux-nfc, Samuel Ortiz,
linux-wireless, Oleg Zhurakivskyy
In-Reply-To: <20190513104358.59716-1-andriy.shevchenko@linux.intel.com>
On Mon, May 13, 2019 at 12:44 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> It has been reported that some laptops, equipped with NXP NFC300, have
> different ID then mentioned in the driver.
>
> While at it, I found that the driver has a lot of duplication and redundant
> platform data. The rest of the series (11 out of 12 patches) is dedicated to
> clean the driver up.
>
> Sedat, would be nice if you can compile kernel with this patch series applied
> and test on your laptop.
>
> In v2:
> - added new ID patch
> - added new clean up patch
> - Cc'ed to linux-wireless@ as well, since linux-nfc@ bounces my mails
> - Cc'ed to the reported of the problem with T470 laptop
>
> Andy Shevchenko (12):
> NFC: nxp-nci: Add NXP1001 to the ACPI ID table
> NFC: nxp-nci: Get rid of platform data
> NFC: nxp-nci: Convert to use GPIO descriptor
> NFC: nxp-nci: Add GPIO ACPI mapping table
> NFC: nxp-nci: Get rid of code duplication in ->probe()
> NFC: nxp-nci: Get rid of useless label
> NFC: nxp-nci: Constify acpi_device_id
> NFC: nxp-nci: Drop of_match_ptr() use
> NFC: nxp-nci: Drop comma in terminator lines
> NFC: nxp-nci: Remove unused macro pr_fmt()
> NFC: nxp-nci: Remove 'default n' for tests
> NFC: nxp-nci: Convert to SPDX license tags
>
> MAINTAINERS | 1 -
> drivers/nfc/nxp-nci/Kconfig | 1 -
> drivers/nfc/nxp-nci/core.c | 15 +--
> drivers/nfc/nxp-nci/firmware.c | 13 +--
> drivers/nfc/nxp-nci/i2c.c | 147 ++++++--------------------
> drivers/nfc/nxp-nci/nxp-nci.h | 1 -
> include/linux/platform_data/nxp-nci.h | 27 -----
> 7 files changed, 37 insertions(+), 168 deletions(-)
> delete mode 100644 include/linux/platform_data/nxp-nci.h
>
> --
> 2.20.1
>
Is it possible to have an info in dmesg log when nxp-nci_i2c kernel
module is loaded?
- Sedat -
^ permalink raw reply
* Re: [linux-nfc] ThinkPad T470 and NXP PN5xx (PN547 or PN548)
From: Sedat Dilek @ 2019-05-13 20:02 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Oleg Zhurakivskyy, Samuel Ortiz, linux-wireless, linux-nfc
In-Reply-To: <CA+icZUUsutHt1NXLNFd17J3QK-LtFCuUUEw4qqp9urJ++dDaKA@mail.gmail.com>
On Mon, May 13, 2019 at 9:46 PM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Mon, May 13, 2019 at 4:11 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> >
> > On Mon, May 13, 2019 at 03:32:52PM +0200, Sedat Dilek wrote:
> > > BTW, which Linux Kconfig setting are minimum?
> > >
> > > scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C
> > >
> > > What about?
> > >
> > > scripts/config -m NFC_NCI_SPI -m NFC_NCI_UART -m I2C_GPIO -m SPI_GPIO
> > >
> > > Required?
> > > Not needed?
> >
> > I2C_GPIO and SPI_GPIO has nothing to do with all this. What indeed is needed is
> > the pin control of the actual Intel SoC (unfortunately I don't know what
> > exactly you have, so, you better to check yourself), something like
> > CONFIG_PINCTRL_SKYLAKE=y.
> >
>
> I played a bit with the Kconfigs...
>
> scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C
>
> ...is sufficient.
>
> I don't know which CONFIG_PINCTRL_XXX is needed.
>
I looked at lspci output and I see a lot of "Intel Corporation Sunrise
Point-LP", especially...
00:15.0 Signal processing controller: Intel Corporation Sunrise
Point-LP Serial IO I2C Controller #0 (rev 21)
I have set...
CONFIG_PINCTRL_SUNRISEPOINT=y
From [1]:
config PINCTRL_SUNRISEPOINT
tristate "Intel Sunrisepoint pinctrl and GPIO driver"
depends on ACPI
select PINCTRL_INTEL
help
Sunrisepoint is the PCH of Intel Skylake. This pinctrl driver
provides an interface that allows configuring of PCH pins and
using them as GPIOs.
- Sedat -
[1] https://github.com/torvalds/linux/blob/master/drivers/pinctrl/intel/Kconfig#L109
^ permalink raw reply
* Re: ath10k 5Ghz RSSI low
From: Sam Samy @ 2019-05-13 20:14 UTC (permalink / raw)
To: Ben Greear; +Cc: linux-wireless
In-Reply-To: <3ed8dd0c-47e0-16a0-082d-c60f1dabdce7@candelatech.com>
>I think you should write to the openwrt mailing list and/or its bug tracker
>and see if they can help.
Ok. Thanks Ben. will do. Just curious. I am not able to get the reg.
domain codes in TPC by googling. Do you know where I can get those?
What is the reg. domains 0x20 and 0x58 value points to?
Thanks
On Mon, May 13, 2019 at 11:17 AM Ben Greear <greearb@candelatech.com> wrote:
>
> On 5/13/19 11:10 AM, Sam Samy wrote:
> > hi Ben,
> >
> > I also looked at the TPC on the stock firmware on the AP. There is a
> > difference.
>
> I think you should write to the openwrt mailing list and/or its bug tracker
> and see if they can help.
>
> Thanks,
> Ben
>
> >
> > Here is the snippet from stock firmware:
> >
> > TPC Config for channel 5765 mode 10
> > **************************************************
> > CTL = 0x10 Reg. Domain = 20
> > Antenna Gain = 0 Reg. Max Antenna Gain = 12
> > Power Limit = 63 Reg. Max Power = 60
> > Num tx chains = 2 Num Supported Rates = 109
> > **************************************************
> > **************** CDD POWER TABLE ****************
> > **************************************************
> >
> > Where as in openwrt it is:
> >
> > *************************************
> > TPC config for channel 5765 mode 10
> > *************************************
> > CTL = 0x10 Reg. Domain = 58
> > Antenna Gain = 0 Reg. Max Antenna Gain = 0
> > Power Limit = 60 Reg. Max Power = 30
> > Num tx chains = 2 Num supported rates = 109
> > ********************************
> >
> >
> > So looks like reg ,domain is different even though both are US.
> > (Although I didnt set anything on stock firmware. The countrycode from
> > iwpriv get_countrycode says its 841.)
> >
> > Also, the antenna gain seems different between stock and openwrt firmware..
> >
> >
> > How to change the reg. domain like in stock firmware in openwrt
> > although I set to US in the uci.
> >
> > root@OpenWrt:/sys# uci show | grep country
> > uhttpd.defaults.country='ZZ'
> > wireless.radio0.country='US'
> > wireless.radio1.country='US'
> > wireless.radio2.country='US'
> > root@OpenWrt:/sys#
> >
> > Thanks
> >
> >
> > On Mon, May 13, 2019 at 10:36 AM Sam Samy <to.swami1@gmail.com> wrote:
> >>
> >>> Probably it is a board-file and/or calibration data issue then.
> >>>
> >>> The debugfs 'ath10k/tpc_stats' file may show very low values?
> >>
> >> I am not sure if the values are right. Here is one of the 5Ghz radio stats:
> >>
> >> root@OpenWrt:/sys# cat ./kernel/debug/ieee80211/phy0/ath10k/tpc_stats
> >>
> >> *************************************
> >> TPC config for channel 5320 mode 10
> >> *************************************
> >> CTL = 0x10 Reg. Domain = 58
> >> Antenna Gain = 0 Reg. Max Antenna Gain = 0
> >> Power Limit = 46 Reg. Max Power = 46
> >> Num tx chains = 2 Num supported rates = 129
> >> ********************************
> >> ******************* CDD POWER TABLE ****************
> >> ********************************
> >> No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
> >> 0 CCK 0x40 0 0
> >> 1 CCK 0x41 0 0
> >> 2 CCK 0x42 0 0
> >> 3 CCK 0x43 0 0
> >> 4 OFDM 0x 0 36 34
> >> 5 OFDM 0x 1 38 34
> >> 6 OFDM 0x 2 38 34
> >> 7 OFDM 0x 3 38 34
> >> 8 OFDM 0x 4 34 34
> >> 9 OFDM 0x 5 38 34
> >> 10 OFDM 0x 6 38 34
> >> 11 OFDM 0x 7 38 34
> >> 12 HT20 0x80 38 34
> >> 13 HT20 0x81 38 34
> >> 14 HT20 0x82 38 34
> >> 15 HT20 0x83 38 34
> >> 16 HT20 0x84 38 34
> >> 17 HT20 0x85 36 34
> >> 18 HT20 0x86 34 34
> >> 19 HT20 0x87 32 32
> >> 20 HT20 0x90 38 38
> >> 21 HT20 0x91 38 38
> >> 22 HT20 0x92 38 38
> >> 23 HT20 0x93 38 38
> >> 24 HT20 0x94 38 38
> >> 25 HT20 0x95 36 36
> >> 26 HT20 0x96 34 34
> >> 27 HT20 0x97 32 32
> >> 28 HT40 0x80 37 34
> >> 29 HT40 0x81 37 34
> >> 30 HT40 0x82 37 34
> >> 31 HT40 0x83 37 34
> >> 32 HT40 0x84 37 34
> >> 33 HT40 0x85 35 34
> >> 34 HT40 0x86 33 33
> >> 35 HT40 0x87 31 31
> >> 36 HT40 0x90 37 37
> >> 37 HT40 0x91 37 37
> >> 38 HT40 0x92 37 37
> >> 39 HT40 0x93 37 37
> >> 40 HT40 0x94 37 37
> >> 41 HT40 0x95 35 35
> >> 42 HT40 0x96 33 33
> >> 43 HT40 0x97 31 31
> >> 44 VHT20 0xc0 38 34
> >> 45 VHT20 0xc1 38 34
> >> 46 VHT20 0xc2 38 34
> >> 47 VHT20 0xc3 38 34
> >> 48 VHT20 0xc4 38 34
> >> 49 VHT20 0xc5 36 34
> >> 50 VHT20 0xc6 34 34
> >> 51 VHT20 0xc7 32 32
> >> 52 VHT20 0xc8 31 31
> >> 53 VHT20 0xc9 30 30
> >> 54 VHT20 0xd0 38 38
> >> 55 VHT20 0xd1 38 38
> >> 56 VHT20 0xd2 38 38
> >> 57 VHT20 0xd3 38 38
> >> 58 VHT20 0xd4 38 38
> >> 59 VHT20 0xd5 36 36
> >> 60 VHT20 0xd6 34 34
> >> 61 VHT20 0xd7 32 32
> >> 62 VHT20 0xd8 31 31
> >> 63 VHT20 0xd9 30 30
> >> 64 VHT40 0xc0 37 34
> >> 65 VHT40 0xc1 37 34
> >> 66 VHT40 0xc2 37 34
> >> 67 VHT40 0xc3 37 34
> >> 68 VHT40 0xc4 37 34
> >> 69 VHT40 0xc5 35 34
> >> 70 VHT40 0xc6 33 33
> >> 71 VHT40 0xc7 31 31
> >> 72 VHT40 0xc8 30 30
> >> 73 VHT40 0xc9 29 29
> >> 74 VHT40 0xd0 37 37
> >> 75 VHT40 0xd1 37 37
> >> 76 VHT40 0xd2 37 37
> >> 77 VHT40 0xd3 37 37
> >> 78 VHT40 0xd4 37 37
> >> 79 VHT40 0xd5 35 35
> >> 80 VHT40 0xd6 33 33
> >> 81 VHT40 0xd7 31 31
> >> 82 VHT40 0xd8 30 30
> >> 83 VHT40 0xd9 29 29
> >> 84 VHT80 0xc0 36 34
> >> 85 VHT80 0xc1 36 34
> >> 86 VHT80 0xc2 36 34
> >> 87 VHT80 0xc3 36 34
> >> 88 VHT80 0xc4 36 34
> >> 89 VHT80 0xc5 34 34
> >> 90 VHT80 0xc6 32 32
> >> 91 VHT80 0xc7 30 30
> >> 92 VHT80 0xc8 29 29
> >> 93 VHT80 0xc9 28 28
> >> 94 VHT80 0xd0 36 36
> >> 95 VHT80 0xd1 36 36
> >> 96 VHT80 0xd2 36 36
> >> 97 VHT80 0xd3 36 36
> >> 98 VHT80 0xd4 36 36
> >> 99 VHT80 0xd5 34 34
> >> 100 VHT80 0xd6 32 32
> >> 101 VHT80 0xd7 30 30
> >> 102 VHT80 0xd8 29 29
> >> 103 VHT80 0xd9 28 28
> >> 104 HTCUP 0x40 36 36
> >> 105 HTCUP 0x 0 36 34
> >> 106 HTCUP 0x40 36 36
> >> 107 HTCUP 0x 0 36 34
> >> 108 HTCUP 0x 0 36 34
> >> 109 HTCUP 0x7a 34 34
> >> 110 HTCUP 0x8a 32 32
> >> 111 HTCUP 0x a 30 30
> >> 112 HTCUP 0xee 27 27
> >> 113 HTCUP 0xa6 26 26
> >> 114 HTCUP 0x90 36 36
> >> 115 HTCUP 0x1d 36 36
> >> 116 HTCUP 0x80 36 34
> >> 117 HTCUP 0x41 36 36
> >> 118 HTCUP 0xd9 36 36
> >> 119 HTCUP 0x64 34 34
> >> 120 HTCUP 0xf9 32 32
> >> 121 HTCUP 0x 0 30 30
> >> 122 HTCUP 0x 0 27 27
> >> 123 HTCUP 0x 0 26 26
> >> 124 HTCUP 0x64 0 0
> >> 125 HTCUP 0x 0 37 34
> >> 126 HTCUP 0x31 0 0
> >> 127 HTCUP 0x 4 37 34
> >> 128 HTCUP 0x 0 38 34
> >> ***********************************
> >> ********************************
> >> ******************* STBC POWER TABLE ****************
> >> ********************************
> >> No. Preamble Rate_code tpc_value0 tpc_value1 tpc_value2 tpc_value3
> >> 0 CCK 0x40 0 0
> >> 1 CCK 0x41 0 0
> >> 2 CCK 0x42 0 0
> >> 3 CCK 0x43 0 0
> >> 4 OFDM 0x 0 36 36
> >> 5 OFDM 0x 1 38 38
> >> 6 OFDM 0x 2 38 38
> >> 7 OFDM 0x 3 38 38
> >> 8 OFDM 0x 4 34 34
> >> 9 OFDM 0x 5 38 38
> >> 10 OFDM 0x 6 38 38
> >> 11 OFDM 0x 7 38 38
> >> 12 HT20 0x80 38 38
> >> 13 HT20 0x81 38 38
> >> 14 HT20 0x82 38 38
> >> 15 HT20 0x83 38 38
> >> 16 HT20 0x84 38 38
> >> 17 HT20 0x85 36 36
> >> 18 HT20 0x86 34 34
> >> 19 HT20 0x87 32 32
> >> 20 HT20 0x90 38 38
> >> 21 HT20 0x91 38 38
> >> 22 HT20 0x92 38 38
> >> 23 HT20 0x93 38 38
> >> 24 HT20 0x94 38 38
> >> 25 HT20 0x95 36 36
> >> 26 HT20 0x96 34 34
> >> 27 HT20 0x97 32 32
> >> 28 HT40 0x80 37 37
> >> 29 HT40 0x81 37 37
> >> 30 HT40 0x82 37 37
> >> 31 HT40 0x83 37 37
> >> 32 HT40 0x84 37 37
> >> 33 HT40 0x85 35 35
> >> 34 HT40 0x86 33 33
> >> 35 HT40 0x87 31 31
> >> 36 HT40 0x90 37 37
> >> 37 HT40 0x91 37 37
> >> 38 HT40 0x92 37 37
> >> 39 HT40 0x93 37 37
> >> 40 HT40 0x94 37 37
> >> 41 HT40 0x95 35 35
> >> 42 HT40 0x96 33 33
> >> 43 HT40 0x97 31 31
> >> 44 VHT20 0xc0 38 38
> >> 45 VHT20 0xc1 38 38
> >> 46 VHT20 0xc2 38 38
> >> 47 VHT20 0xc3 38 38
> >> 48 VHT20 0xc4 38 38
> >> 49 VHT20 0xc5 36 36
> >> 50 VHT20 0xc6 34 34
> >> 51 VHT20 0xc7 32 32
> >> 52 VHT20 0xc8 31 31
> >> 53 VHT20 0xc9 30 30
> >> 54 VHT20 0xd0 38 38
> >> 55 VHT20 0xd1 38 38
> >> 56 VHT20 0xd2 38 38
> >> 57 VHT20 0xd3 38 38
> >> 58 VHT20 0xd4 38 38
> >> 59 VHT20 0xd5 36 36
> >> 60 VHT20 0xd6 34 34
> >> 61 VHT20 0xd7 32 32
> >> 62 VHT20 0xd8 31 31
> >> 63 VHT20 0xd9 30 30
> >> 64 VHT40 0xc0 37 37
> >> 65 VHT40 0xc1 37 37
> >> 66 VHT40 0xc2 37 37
> >> 67 VHT40 0xc3 37 37
> >> 68 VHT40 0xc4 37 37
> >> 69 VHT40 0xc5 35 35
> >> 70 VHT40 0xc6 33 33
> >> 71 VHT40 0xc7 31 31
> >> 72 VHT40 0xc8 30 30
> >> 73 VHT40 0xc9 29 29
> >> 74 VHT40 0xd0 37 37
> >> 75 VHT40 0xd1 37 37
> >> 76 VHT40 0xd2 37 37
> >> 77 VHT40 0xd3 37 37
> >> 78 VHT40 0xd4 37 37
> >> 79 VHT40 0xd5 35 35
> >> 80 VHT40 0xd6 33 33
> >> 81 VHT40 0xd7 31 31
> >> 82 VHT40 0xd8 30 30
> >> 83 VHT40 0xd9 29 29
> >> 84 VHT80 0xc0 36 36
> >> 85 VHT80 0xc1 36 36
> >> 86 VHT80 0xc2 36 36
> >> 87 VHT80 0xc3 36 36
> >> 88 VHT80 0xc4 36 36
> >> 89 VHT80 0xc5 34 34
> >> 90 VHT80 0xc6 32 32
> >> 91 VHT80 0xc7 30 30
> >> 92 VHT80 0xc8 29 29
> >> 93 VHT80 0xc9 28 28
> >> 94 VHT80 0xd0 36 36
> >> 95 VHT80 0xd1 36 36
> >> 96 VHT80 0xd2 36 36
> >> 97 VHT80 0xd3 36 36
> >> 98 VHT80 0xd4 36 36
> >> 99 VHT80 0xd5 34 34
> >> 100 VHT80 0xd6 32 32
> >> 101 VHT80 0xd7 30 30
> >> 102 VHT80 0xd8 29 29
> >> 103 VHT80 0xd9 28 28
> >> 104 HTCUP 0x40 36 36
> >> 105 HTCUP 0x 0 36 36
> >> 106 HTCUP 0x40 36 36
> >> 107 HTCUP 0x 0 36 36
> >> 108 HTCUP 0x 0 36 36
> >> 109 HTCUP 0x7a 34 34
> >> 110 HTCUP 0x8a 32 32
> >> 111 HTCUP 0x a 30 30
> >> 112 HTCUP 0xee 27 27
> >> 113 HTCUP 0xa6 26 26
> >> 114 HTCUP 0x90 36 36
> >> 115 HTCUP 0x1d 36 36
> >> 116 HTCUP 0x80 36 36
> >> 117 HTCUP 0x41 36 36
> >> 118 HTCUP 0xd9 36 36
> >> 119 HTCUP 0x64 34 34
> >> 120 HTCUP 0xf9 32 32
> >> 121 HTCUP 0x 0 30 30
> >> 122 HTCUP 0x 0 27 27
> >> 123 HTCUP 0x 0 26 26
> >> 124 HTCUP 0x64 0 0
> >> 125 HTCUP 0x 0 37 37
> >> 126 HTCUP 0x31 0 0
> >> 127 HTCUP 0x 4 37 37
> >> 128 HTCUP 0x 0 38 38
> >> ***********************************
> >> TXBF not supported
> >> ***************************
> >> root@OpenWrt:/sys#
> >>
> >>
> >> Thanks
> >>
> >> On Mon, May 13, 2019 at 10:27 AM Ben Greear <greearb@candelatech.com> wrote:
> >>>
> >>> On 5/13/19 10:26 AM, Sam Samy wrote:
> >>>> hi Ben,
> >>>>
> >>>>> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> >>>>> please try QCA firmware and let me know if that fixes the problem.
> >>>>>
> >>>> I tried both. Both have the same problem. I tried various versions
> >>>> of the both(-ct and QCA) firmware as well. All have the same problem.
> >>>
> >>> Probably it is a board-file and/or calibration data issue then.
> >>>
> >>> The debugfs 'ath10k/tpc_stats' file may show very low values?
> >>>
> >>> Thanks,
> >>> Ben
> >>>
> >>>>
> >>>> Thanks
> >>>>
> >>>> On Mon, May 13, 2019 at 10:00 AM Ben Greear <greearb@candelatech.com> wrote:
> >>>>>
> >>>>> On 5/13/19 9:56 AM, Sam Samy wrote:
> >>>>>> Hi,
> >>>>>> I installed master branch openwrt onto Asus MAP-AC2200 AP. It has tri
> >>>>>> band. Its based on IPQ4019 DK04 QCA reference platform. 2 radios
> >>>>>> (2Ghz/5Ghz) on AHB bus and one 5GHZ on PCIe bus. Its generally working
> >>>>>> fine except one problem in 5Ghz. On both the 5Ghz radios the RSSI is
> >>>>>> pretty low on any channel I put it in. In one feet range I see -60dB
> >>>>>> RSSI, where as the stock firmware that came with the AP gives an RSSI
> >>>>>> of -36dB at one foot distance.The downstream transmit rates are MCS8/9
> >>>>>> for most part. The 2Ghz is working fine. Its using the cal data from
> >>>>>> the flash that came with the AP.
> >>>>>>
> >>>>>> Can you please suggest anyway to debug this or improve the RSSI?
> >>>>>>
> >>>>>> Thanks you!
> >>>>>>
> >>>>>
> >>>>> Hello, what firmware are you using (ath10k-ct, or QCA?) If using -ct firmware,
> >>>>> please try QCA firmware and let me know if that fixes the problem.
> >>>>>
> >>>>> Thanks,
> >>>>> Ben
> >>>>>
> >>>>> --
> >>>>> Ben Greear <greearb@candelatech.com>
> >>>>> Candela Technologies Inc http://www.candelatech.com
> >>>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Ben Greear <greearb@candelatech.com>
> >>> Candela Technologies Inc http://www.candelatech.com
> >>>
> >
>
>
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc http://www.candelatech.com
>
^ permalink raw reply
* Re: NXP NFC version and ACPI
From: Sedat Dilek @ 2019-05-13 20:15 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Samuel Ortiz, linux-wireless, linux-nfc, robert.dolca,
oleg.zhurakivskyy, clement.perrochaud, charles.gorand,
Andy Shevchenko
In-Reply-To: <c2d0d19f-d814-8f41-4860-77b9cc7f9d26@linaro.org>
On Wed, Dec 5, 2018 at 8:38 AM Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
>
>
> Hi,
>
> the discussion reference is on github [1].
>
> I acquired a Lenovo x280 with a NFC chip. It is unclear what chip is it
> really, it is called NXP NPC300 which could be a PN7xxx chip range.
>
> A hacked version of an old deprecated out-of-tree module made the PN5xxx
> to work with my laptop but I suspect it brought some subtle instability
> on my system.
>
> Now it would be nice to have this correctly supported upstream.
>
> I dumped the ACPI DSDT table and got the id NXP1001. This one is not
> listed in the match table of the nxp-nci driver.
>
> - is the driver missing for the so called NXP NPC300 ?
> - should the NXP1001 matching string to be added to nxp-nci?
> - is my firmware sending me garbage ?
>
> Thanks in advance for any input
>
[ CC Andy ]
Hi Daniel,
I was able to get a NXP NPC300 NFC device run on Lenovo ThinkPad T470.
Look at the patchset "[PATCH v2 00/12] NFC: nxp-nci: clean up and
support new ID".
I have tested on top of Linux v5.1.1.
Here I have set...
scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C -e
PINCTRL_SUNRISEPOINT
Please give this a try and report.
For details see the below references.
Thanks.
Regards,
- Sedat -
[1] https://patchwork.kernel.org/project/linux-wireless/list/?submitter=33142
[2] https://marc.info/?t=155740978400003&r=1&w=2
[3] https://marc.info/?t=155774435600001&r=1&w=2
^ permalink raw reply
* Re: [PATCH][next] iwlwifi: lib: Use struct_size() helper
From: Luciano Coelho @ 2019-05-14 5:16 UTC (permalink / raw)
To: Gustavo A. R. Silva, Johannes Berg, Emmanuel Grumbach,
Intel Linux Wireless, Kalle Valo, David S. Miller
Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <20190403155901.GA22686@embeddedor>
On Wed, 2019-04-03 at 10:59 -0500, Gustavo A. R. Silva wrote:
> Make use of the struct_size() helper instead of an open-coded version
> in order to avoid any potential type mistakes, in particular in the
> context in which this code is being used.
>
> So, change the following form:
>
> sizeof(*pattern_cmd) +
> wowlan->n_patterns * sizeof(struct
> iwlagn_wowlan_pattern)
>
> to :
>
> struct_size(pattern_cmd, patterns, wowlan->n_patterns)
>
> This code was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
> b/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
> index b2f172d4f78a..cae9cd438697 100644
> --- a/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
> +++ b/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
> @@ -1022,8 +1022,7 @@ int iwlagn_send_patterns(struct iwl_priv *priv,
> if (!wowlan->n_patterns)
> return 0;
>
> - cmd.len[0] = sizeof(*pattern_cmd) +
> - wowlan->n_patterns * sizeof(struct
> iwlagn_wowlan_pattern);
> + cmd.len[0] = struct_size(pattern_cmd, patterns, wowlan-
> >n_patterns);
>
> pattern_cmd = kmalloc(cmd.len[0], GFP_KERNEL);
> if (!pattern_cmd)
Thanks! Applied to our internal tree and it will reach the mainline
following our normal upstreaming process.
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH][next] iwlwifi: d3: Use struct_size() helper
From: Luciano Coelho @ 2019-05-14 5:16 UTC (permalink / raw)
To: Gustavo A. R. Silva, Johannes Berg, Emmanuel Grumbach,
Intel Linux Wireless, Kalle Valo, David S. Miller
Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <20190403160342.GA24396@embeddedor>
On Wed, 2019-04-03 at 11:03 -0500, Gustavo A. R. Silva wrote:
> Make use of the struct_size() helper instead of an open-coded version
> in order to avoid any potential type mistakes, in particular in the
> context in which this code is being used.
>
> So, change the following form:
>
> sizeof(*pattern_cmd) +
> wowlan->n_patterns * sizeof(struct
> iwlagn_wowlan_pattern)
>
> to :
>
> struct_size(pattern_cmd, patterns, wowlan->n_patterns)
>
> This code was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
> b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
> index 83fd7f93d9f5..99589b910bce 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
> @@ -398,8 +398,7 @@ static int iwl_mvm_send_patterns(struct iwl_mvm
> *mvm,
> if (!wowlan->n_patterns)
> return 0;
>
> - cmd.len[0] = sizeof(*pattern_cmd) +
> - wowlan->n_patterns * sizeof(struct iwl_wowlan_pattern);
> + cmd.len[0] = struct_size(pattern_cmd, patterns, wowlan-
> >n_patterns);
>
> pattern_cmd = kmalloc(cmd.len[0], GFP_KERNEL);
> if (!pattern_cmd)
Thanks! Applied to our internal tree and it will reach the mainline
following our normal upstreaming process.
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH] net: wireless: iwlwifi: Fix double-free problems in iwl_req_fw_callback()
From: Luca Coelho @ 2019-05-14 5:33 UTC (permalink / raw)
To: Jia-Ju Bai, johannes.berg, emmanuel.grumbach, linuxwifi, kvalo,
davem
Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <20190504093305.19360-1-baijiaju1990@gmail.com>
On Sat, 2019-05-04 at 17:33 +0800, Jia-Ju Bai wrote:
> In the error handling code of iwl_req_fw_callback(),
> iwl_dealloc_ucode()
> is called to free data. In iwl_drv_stop(), iwl_dealloc_ucode() is
> called
> again, which can cause double-free problems.
>
> To fix this bug, the call to iwl_dealloc_ucode() in
> iwl_req_fw_callback() is deleted.
>
> This bug is found by a runtime fuzzing tool named FIZZER written by
> us.
>
> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
> ---
> drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> index 689a65b11cc3..4fd1737d768b 100644
> --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> @@ -1579,7 +1579,6 @@ static void iwl_req_fw_callback(const struct
> firmware *ucode_raw, void *context)
> goto free;
>
> out_free_fw:
> - iwl_dealloc_ucode(drv);
> release_firmware(ucode_raw);
> out_unbind:
> complete(&drv->request_firmware_complete);
Thanks! Applied to our internal tree and will reach the mainline
following our normal upstreaming process.
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH] iwlwifi: remove some unnecessary NULL checks
From: Luca Coelho @ 2019-05-14 5:39 UTC (permalink / raw)
To: Dan Carpenter, Johannes Berg
Cc: Emmanuel Grumbach, Intel Linux Wireless, Kalle Valo,
Naftali Goldstein, Sara Sharon, Shaul Triebitz,
Mordechay Goodstein, Liad Kaufman, Gregory Greenman,
linux-wireless, kernel-janitors
In-Reply-To: <20190506125409.GC13799@mwanda>
On Mon, 2019-05-06 at 15:54 +0300, Dan Carpenter wrote:
> These pointers are an offset into the "sta" struct. They're assigned
> like this:
>
> const struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap;
>
> They're not the first member of the struct (->supp_rates[] is first) so
> they can't be NULL.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> .../net/wireless/intel/iwlwifi/mvm/rs-fw.c | 23 +++++++++----------
> 1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
> index 659e21b2d4e7..b6fb670d249c 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
> @@ -101,7 +101,7 @@ static u8 rs_fw_sgi_cw_support(struct ieee80211_sta *sta)
> struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
> u8 supp = 0;
>
> - if (he_cap && he_cap->has_he)
> + if (he_cap->has_he)
> return 0;
>
> if (ht_cap->cap & IEEE80211_HT_CAP_SGI_20)
> @@ -123,12 +123,12 @@ static u16 rs_fw_get_config_flags(struct iwl_mvm *mvm,
> struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap;
> struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap;
> struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
> - bool vht_ena = vht_cap && vht_cap->vht_supported;
> + bool vht_ena = vht_cap->vht_supported;
> u16 flags = 0;
>
> if (mvm->cfg->ht_params->stbc &&
> (num_of_ant(iwl_mvm_get_valid_tx_ant(mvm)) > 1)) {
> - if (he_cap && he_cap->has_he) {
> + if (he_cap->has_he) {
> if (he_cap->he_cap_elem.phy_cap_info[2] &
> IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ)
> flags |= IWL_TLC_MNG_CFG_FLAGS_STBC_MSK;
> @@ -136,15 +136,14 @@ static u16 rs_fw_get_config_flags(struct iwl_mvm *mvm,
> if (he_cap->he_cap_elem.phy_cap_info[7] &
> IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ)
> flags |= IWL_TLC_MNG_CFG_FLAGS_HE_STBC_160MHZ_MSK;
> - } else if ((ht_cap &&
> - (ht_cap->cap & IEEE80211_HT_CAP_RX_STBC)) ||
> + } else if ((ht_cap->cap & IEEE80211_HT_CAP_RX_STBC) ||
> (vht_ena &&
> (vht_cap->cap & IEEE80211_VHT_CAP_RXSTBC_MASK)))
> flags |= IWL_TLC_MNG_CFG_FLAGS_STBC_MSK;
> }
>
> if (mvm->cfg->ht_params->ldpc &&
> - ((ht_cap && (ht_cap->cap & IEEE80211_HT_CAP_LDPC_CODING)) ||
> + ((ht_cap->cap & IEEE80211_HT_CAP_LDPC_CODING) ||
> (vht_ena && (vht_cap->cap & IEEE80211_VHT_CAP_RXLDPC))))
> flags |= IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK;
>
> @@ -154,7 +153,7 @@ static u16 rs_fw_get_config_flags(struct iwl_mvm *mvm,
> IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD))
> flags &= ~IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK;
>
> - if (he_cap && he_cap->has_he &&
> + if (he_cap->has_he &&
> (he_cap->he_cap_elem.phy_cap_info[3] &
> IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK))
> flags |= IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_1_MSK;
> @@ -293,13 +292,13 @@ static void rs_fw_set_supp_rates(struct ieee80211_sta *sta,
> cmd->mode = IWL_TLC_MNG_MODE_NON_HT;
>
> /* HT/VHT rates */
> - if (he_cap && he_cap->has_he) {
> + if (he_cap->has_he) {
> cmd->mode = IWL_TLC_MNG_MODE_HE;
> rs_fw_he_set_enabled_rates(sta, sband, cmd);
> - } else if (vht_cap && vht_cap->vht_supported) {
> + } else if (vht_cap->vht_supported) {
> cmd->mode = IWL_TLC_MNG_MODE_VHT;
> rs_fw_vht_set_enabled_rates(sta, vht_cap, cmd);
> - } else if (ht_cap && ht_cap->ht_supported) {
> + } else if (ht_cap->ht_supported) {
> cmd->mode = IWL_TLC_MNG_MODE_HT;
> cmd->ht_rates[0][0] = cpu_to_le16(ht_cap->mcs.rx_mask[0]);
> cmd->ht_rates[1][0] = cpu_to_le16(ht_cap->mcs.rx_mask[1]);
> @@ -381,7 +380,7 @@ static u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta)
> const struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap;
> const struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap;
>
> - if (vht_cap && vht_cap->vht_supported) {
> + if (vht_cap->vht_supported) {
> switch (vht_cap->cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK) {
> case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454:
> return IEEE80211_MAX_MPDU_LEN_VHT_11454;
> @@ -391,7 +390,7 @@ static u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta)
> return IEEE80211_MAX_MPDU_LEN_VHT_3895;
> }
>
> - } else if (ht_cap && ht_cap->ht_supported) {
> + } else if (ht_cap->ht_supported) {
> if (ht_cap->cap & IEEE80211_HT_CAP_MAX_AMSDU)
> /*
> * agg is offloaded so we need to assume that agg
Thanks! Applied to our internal tree and it will reach the mainline
following our normal upstreaming process.
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH] iwlwifi: trans: fix killer series loadded incorrect firmware
From: Luca Coelho @ 2019-05-14 5:56 UTC (permalink / raw)
To: Cyrus Lien, Johannes Berg, Emmanuel Grumbach,
Intel Linux Wireless, Kalle Valo, David S. Miller,
Shahar S Matityahu, Sara Sharon, Golan Ben Ami, Lior Cohen,
Shaul Triebitz, linux-wireless, netdev, linux-kernel
Cc: Cyrus Lien
In-Reply-To: <20190513133335.14536-1-cyrus.lien@canonical.com>
On Mon, 2019-05-13 at 21:33 +0800, Cyrus Lien wrote:
> Killer series loadded IWL_22000_HR_B_FW_PRE prefixed firmware instead
> IWL_CC_A_FW_PRE prefixed firmware.
>
> Add killer series to the check logic as iwl_ax200_cfg_cc.
>
> Signed-off-by: Cyrus Lien <cyrus.lien@canonical.com>
> ---
> drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
> b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
> index 79c1dc05f948..576c2186b6bf 100644
> --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
> @@ -3565,7 +3565,9 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct
> pci_dev *pdev,
> }
> } else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
> CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
> - (trans->cfg != &iwl_ax200_cfg_cc ||
> + ((trans->cfg != &iwl_ax200_cfg_cc &&
> + trans->cfg != &killer1650x_2ax_cfg &&
> + trans->cfg != &killer1650w_2ax_cfg) ||
> trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0)) {
> u32 hw_status;
>
Thanks for your patch, Cyrus! We already have an identical patch in our
internal tree and it will reach the mainline soon.
--
Cheers,
Luca.
^ permalink raw reply
* Re: NXP NFC version and ACPI
From: Daniel Lezcano @ 2019-05-14 6:42 UTC (permalink / raw)
To: sedat.dilek
Cc: Samuel Ortiz, linux-wireless, linux-nfc, robert.dolca,
oleg.zhurakivskyy, clement.perrochaud, charles.gorand,
Andy Shevchenko
In-Reply-To: <CA+icZUVz7sB6hv4fhL_rqhR_D8RePBJFXk1PaUy5tMw2z4xC_Q@mail.gmail.com>
On 13/05/2019 22:15, Sedat Dilek wrote:
> On Wed, Dec 5, 2018 at 8:38 AM Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
>>
>>
>> Hi,
>>
>> the discussion reference is on github [1].
>>
>> I acquired a Lenovo x280 with a NFC chip. It is unclear what chip is it
>> really, it is called NXP NPC300 which could be a PN7xxx chip range.
>>
>> A hacked version of an old deprecated out-of-tree module made the PN5xxx
>> to work with my laptop but I suspect it brought some subtle instability
>> on my system.
>>
>> Now it would be nice to have this correctly supported upstream.
>>
>> I dumped the ACPI DSDT table and got the id NXP1001. This one is not
>> listed in the match table of the nxp-nci driver.
>>
>> - is the driver missing for the so called NXP NPC300 ?
>> - should the NXP1001 matching string to be added to nxp-nci?
>> - is my firmware sending me garbage ?
>>
>> Thanks in advance for any input
>>
>
> [ CC Andy ]
>
> Hi Daniel,
>
> I was able to get a NXP NPC300 NFC device run on Lenovo ThinkPad T470.
>
> Look at the patchset "[PATCH v2 00/12] NFC: nxp-nci: clean up and
> support new ID".
> I have tested on top of Linux v5.1.1.
Hi Sedat,
yes, I have them see. Thanks for letting me know.
> Here I have set...
>
> scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C -e
> PINCTRL_SUNRISEPOINT
>
> Please give this a try and report.
My laptop is the first one I have with a NFC reader, so I'm not used to
test this as it was not working yet.
I booted the machine with a 5.1.1, the series applied on top, and the
config options set as mentioned above.
The nxp-nci kernel module is loaded and neard is installed.
I used the sniffing tool with the command libnfc -d nfc0 -n but when
passing my NFC devices on the laptop's NFC mark, nothing happens.
Is that correct?
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply
* Re: NXP NFC version and ACPI
From: Sedat Dilek @ 2019-05-14 6:52 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Samuel Ortiz, linux-wireless, linux-nfc, robert.dolca,
oleg.zhurakivskyy, clement.perrochaud, charles.gorand,
Andy Shevchenko
In-Reply-To: <5ae87449-83a1-ecce-c72c-b4742c507497@linaro.org>
On Tue, May 14, 2019 at 8:43 AM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
>
> On 13/05/2019 22:15, Sedat Dilek wrote:
> > On Wed, Dec 5, 2018 at 8:38 AM Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
> >>
> >>
> >> Hi,
> >>
> >> the discussion reference is on github [1].
> >>
> >> I acquired a Lenovo x280 with a NFC chip. It is unclear what chip is it
> >> really, it is called NXP NPC300 which could be a PN7xxx chip range.
> >>
> >> A hacked version of an old deprecated out-of-tree module made the PN5xxx
> >> to work with my laptop but I suspect it brought some subtle instability
> >> on my system.
> >>
> >> Now it would be nice to have this correctly supported upstream.
> >>
> >> I dumped the ACPI DSDT table and got the id NXP1001. This one is not
> >> listed in the match table of the nxp-nci driver.
> >>
> >> - is the driver missing for the so called NXP NPC300 ?
> >> - should the NXP1001 matching string to be added to nxp-nci?
> >> - is my firmware sending me garbage ?
> >>
> >> Thanks in advance for any input
> >>
> >
> > [ CC Andy ]
> >
> > Hi Daniel,
> >
> > I was able to get a NXP NPC300 NFC device run on Lenovo ThinkPad T470.
> >
> > Look at the patchset "[PATCH v2 00/12] NFC: nxp-nci: clean up and
> > support new ID".
> > I have tested on top of Linux v5.1.1.
>
> Hi Sedat,
>
> yes, I have them see. Thanks for letting me know.
>
> > Here I have set...
> >
> > scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C -e
> > PINCTRL_SUNRISEPOINT
> >
> > Please give this a try and report.
>
> My laptop is the first one I have with a NFC reader, so I'm not used to
> test this as it was not working yet.
>
> I booted the machine with a 5.1.1, the series applied on top, and the
> config options set as mentioned above.
>
> The nxp-nci kernel module is loaded and neard is installed.
>
> I used the sniffing tool with the command libnfc -d nfc0 -n but when
> passing my NFC devices on the laptop's NFC mark, nothing happens.
>
> Is that correct?
>
Hi Daniel,
I am new to the topic Linux NFC.
I have installed neard (daemon) v0.16 and neard-tools from Debian/buster AMD64.
root@iniza:~# systemctl is-active neard.service
active
root@iniza:~# nfctool --list
nfc0:
Tags: [ ]
Devices: [ ]
Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
Powered: No
RF Mode: None
lto: 150
rw: 15
miux: 2047
root@iniza:~# nfctool --poll -d nfc0
Start polling on nfc0 as initiator
...
Throwing my YubiKey Neo-5 NFC on my ThinkPad T470 NFC sticker shows me...
Targets found for nfc0
Tags: [ tag0 ]
Devices: [ ]
Hope that helps.
Regards,
- Sedat -
^ permalink raw reply
* Re: NXP NFC version and ACPI
From: Sedat Dilek @ 2019-05-14 6:56 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Samuel Ortiz, linux-wireless, linux-nfc, oleg.zhurakivskyy,
clement.perrochaud, charles.gorand, Andy Shevchenko
In-Reply-To: <CA+icZUWLBjTtcFS0Fo8M5gSb90GbEUpetUgwr3fy=NxGAVqCyw@mail.gmail.com>
On Tue, May 14, 2019 at 8:52 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Tue, May 14, 2019 at 8:43 AM Daniel Lezcano
> <daniel.lezcano@linaro.org> wrote:
> >
> > On 13/05/2019 22:15, Sedat Dilek wrote:
> > > On Wed, Dec 5, 2018 at 8:38 AM Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
> > >>
> > >>
> > >> Hi,
> > >>
> > >> the discussion reference is on github [1].
> > >>
> > >> I acquired a Lenovo x280 with a NFC chip. It is unclear what chip is it
> > >> really, it is called NXP NPC300 which could be a PN7xxx chip range.
> > >>
> > >> A hacked version of an old deprecated out-of-tree module made the PN5xxx
> > >> to work with my laptop but I suspect it brought some subtle instability
> > >> on my system.
> > >>
> > >> Now it would be nice to have this correctly supported upstream.
> > >>
> > >> I dumped the ACPI DSDT table and got the id NXP1001. This one is not
> > >> listed in the match table of the nxp-nci driver.
> > >>
> > >> - is the driver missing for the so called NXP NPC300 ?
> > >> - should the NXP1001 matching string to be added to nxp-nci?
> > >> - is my firmware sending me garbage ?
> > >>
> > >> Thanks in advance for any input
> > >>
> > >
> > > [ CC Andy ]
> > >
> > > Hi Daniel,
> > >
> > > I was able to get a NXP NPC300 NFC device run on Lenovo ThinkPad T470.
> > >
> > > Look at the patchset "[PATCH v2 00/12] NFC: nxp-nci: clean up and
> > > support new ID".
> > > I have tested on top of Linux v5.1.1.
> >
> > Hi Sedat,
> >
> > yes, I have them see. Thanks for letting me know.
> >
> > > Here I have set...
> > >
> > > scripts/config -m NFC_NCI -m NFC_NXP_NCI -m NFC_NXP_NCI_I2C -e
> > > PINCTRL_SUNRISEPOINT
> > >
> > > Please give this a try and report.
> >
> > My laptop is the first one I have with a NFC reader, so I'm not used to
> > test this as it was not working yet.
> >
> > I booted the machine with a 5.1.1, the series applied on top, and the
> > config options set as mentioned above.
> >
> > The nxp-nci kernel module is loaded and neard is installed.
> >
> > I used the sniffing tool with the command libnfc -d nfc0 -n but when
> > passing my NFC devices on the laptop's NFC mark, nothing happens.
> >
> > Is that correct?
> >
>
> Hi Daniel,
>
> I am new to the topic Linux NFC.
>
> I have installed neard (daemon) v0.16 and neard-tools from Debian/buster AMD64.
>
> root@iniza:~# systemctl is-active neard.service
> active
>
> root@iniza:~# nfctool --list
> nfc0:
> Tags: [ ]
> Devices: [ ]
> Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
> Powered: No
> RF Mode: None
> lto: 150
> rw: 15
> miux: 2047
>
> root@iniza:~# nfctool --poll -d nfc0
> Start polling on nfc0 as initiator
>
> ...
>
> Throwing my YubiKey Neo-5 NFC on my ThinkPad T470 NFC sticker shows me...
>
> Targets found for nfc0
> Tags: [ tag0 ]
> Devices: [ ]
>
> Hope that helps.
>
[ UN-CC Robert (Email is no more valid) ]
Re-invoking after YubiKey touched...
root@iniza:~# nfctool --list
nfc0:
Tags: [ tag0 ]
Devices: [ ]
Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
Powered: Yes
RF Mode: Initiator
lto: 150
rw: 15
miux: 204
...now shows "Powered: Yes".
- Sedat -
^ permalink raw reply
* Re: NXP NFC version and ACPI
From: Daniel Lezcano @ 2019-05-14 6:57 UTC (permalink / raw)
To: sedat.dilek
Cc: Samuel Ortiz, linux-wireless, linux-nfc, robert.dolca,
oleg.zhurakivskyy, clement.perrochaud, charles.gorand,
Andy Shevchenko
In-Reply-To: <CA+icZUWLBjTtcFS0Fo8M5gSb90GbEUpetUgwr3fy=NxGAVqCyw@mail.gmail.com>
On 14/05/2019 08:52, Sedat Dilek wrote:
[ ... ]
>>> Please give this a try and report.
>>
>> My laptop is the first one I have with a NFC reader, so I'm not used to
>> test this as it was not working yet.
>>
>> I booted the machine with a 5.1.1, the series applied on top, and the
>> config options set as mentioned above.
>>
>> The nxp-nci kernel module is loaded and neard is installed.
>>
>> I used the sniffing tool with the command libnfc -d nfc0 -n but when
>> passing my NFC devices on the laptop's NFC mark, nothing happens.
>>
>> Is that correct?
>>
>
> Hi Daniel,
>
> I am new to the topic Linux NFC.
>
> I have installed neard (daemon) v0.16 and neard-tools from Debian/buster AMD64.
>
> root@iniza:~# systemctl is-active neard.service
> active
Same for me
> root@iniza:~# nfctool --list
> nfc0:
> Tags: [ ]
> Devices: [ ]
> Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
> Powered: No
> RF Mode: None
> lto: 150
> rw: 15
> miux: 2047
I have:
nfc0:
Tags: [ ]
Devices: [ ]
Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
Powered: Yes
RF Mode: None
lto: 150
rw: 15
miux: 2047
The powered field is different.
> root@iniza:~# nfctool --poll -d nfc0
> Start polling on nfc0 as initiator
>
I have:
Protocol error
And the dmesg show me the errors related to nci:
[ 343.056021] nci: nci_ntf_packet: unknown ntf opcode 0x0
...
[31611.394308] nci: nci_start_poll: failed to set local general bytes
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply
* Re: NXP NFC version and ACPI
From: Sedat Dilek @ 2019-05-14 7:12 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Samuel Ortiz, linux-wireless, linux-nfc, oleg.zhurakivskyy,
clement.perrochaud, charles.gorand, Andy Shevchenko
In-Reply-To: <ecfdf017-59b0-dcb8-f684-1e4ba3d82a28@linaro.org>
On Tue, May 14, 2019 at 8:57 AM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
>
> On 14/05/2019 08:52, Sedat Dilek wrote:
>
> [ ... ]
>
> >>> Please give this a try and report.
> >>
> >> My laptop is the first one I have with a NFC reader, so I'm not used to
> >> test this as it was not working yet.
> >>
> >> I booted the machine with a 5.1.1, the series applied on top, and the
> >> config options set as mentioned above.
> >>
> >> The nxp-nci kernel module is loaded and neard is installed.
> >>
> >> I used the sniffing tool with the command libnfc -d nfc0 -n but when
> >> passing my NFC devices on the laptop's NFC mark, nothing happens.
> >>
> >> Is that correct?
> >>
> >
> > Hi Daniel,
> >
> > I am new to the topic Linux NFC.
> >
> > I have installed neard (daemon) v0.16 and neard-tools from Debian/buster AMD64.
> >
> > root@iniza:~# systemctl is-active neard.service
> > active
>
> Same for me
>
> > root@iniza:~# nfctool --list
> > nfc0:
> > Tags: [ ]
> > Devices: [ ]
> > Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
> > Powered: No
> > RF Mode: None
> > lto: 150
> > rw: 15
> > miux: 2047
>
> I have:
>
> nfc0:
> Tags: [ ]
> Devices: [ ]
> Protocols: [ Felica MIFARE Jewel ISO-DEP NFC-DEP ]
> Powered: Yes
> RF Mode: None
> lto: 150
> rw: 15
> miux: 2047
>
> The powered field is different.
>
> > root@iniza:~# nfctool --poll -d nfc0
>
> > Start polling on nfc0 as initiator
> >
>
> I have:
>
> Protocol error
>
>
> And the dmesg show me the errors related to nci:
>
> [ 343.056021] nci: nci_ntf_packet: unknown ntf opcode 0x0
> ...
> [31611.394308] nci: nci_start_poll: failed to set local general bytes
>
>
I cannot say much to this.
For the sake of completeness:
I have the patch "NFC: fix attrs checks in netlink interface" applied.
- Sedat -
[1] https://patchwork.kernel.org/patch/10339089/
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox