* [PATCH v2 0/3] Add support for Qualcomm WCN3610
@ 2026-03-05 0:32 Kerigan Creighton
2026-03-05 0:32 ` [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible Kerigan Creighton
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Kerigan Creighton @ 2026-03-05 0:32 UTC (permalink / raw)
To: linux-wireless
Cc: loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel, Kerigan Creighton
The WCN3610 is a 2.4GHz-only WLAN/BT combo chip used in some
cheaper Android and Windows phones such as the Lumia 550, and
IoT devices like the Anki Vector robot. It shares a lot in
common with the WCN3620.
This series adds support for the WCN3610 across the necessary
subsystems:
* Document the new compatible string (patch 1).
* Add compatible string in qcom_wcnss_iris (patch 2).
* Add rf_id and CFGs for the WCN3610 in wcn36xx, disable
powersave for this specific chip, ensure it is 2.4GHz-only
(patch 3).
Tested on an Anki Vector 1.0 and 2.0 robot. Support for other
WCN36xx chips has not been affected.
Changes in v2:
- Move the Documentation patch to the beginning of the patch set.
- Move remoteproc compatible string addition to the middle of
the patch set.
- Add Reviewed-by Dmitry (thanks!) to remoteproc compatible patch.
- Move wcn36xx driver changes to the end of the patch set.
Kerigan Creighton (3):
dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible
remoteproc: qcom_wcnss_iris: add support for WCN3610
wifi: wcn36xx: add support for WCN3610
.../bindings/remoteproc/qcom,wcnss-pil.yaml | 1 +
drivers/net/wireless/ath/wcn36xx/main.c | 4 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 70 ++++++++++++++++++-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/remoteproc/qcom_wcnss_iris.c | 1 +
5 files changed, 75 insertions(+), 2 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible
2026-03-05 0:32 [PATCH v2 0/3] Add support for Qualcomm WCN3610 Kerigan Creighton
@ 2026-03-05 0:32 ` Kerigan Creighton
2026-03-05 8:05 ` Krzysztof Kozlowski
2026-03-05 0:32 ` [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610 Kerigan Creighton
2026-03-05 0:32 ` [PATCH v2 3/3] wifi: wcn36xx: " Kerigan Creighton
2 siblings, 1 reply; 10+ messages in thread
From: Kerigan Creighton @ 2026-03-05 0:32 UTC (permalink / raw)
To: linux-wireless
Cc: loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel, Kerigan Creighton
Document the qcom,wcn3610 compatible string for use with
the qcom_wcnss_iris remoteproc driver.
Signed-off-by: Kerigan Creighton <kerigancreighton@gmail.com>
---
Changes in v2:
- Move the Documentation patch to the beginning of the patch set.
---
Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml
index 117fb4d0c4..018cdf5177 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml
@@ -109,6 +109,7 @@ properties:
properties:
compatible:
enum:
+ - qcom,wcn3610
- qcom,wcn3620
- qcom,wcn3660
- qcom,wcn3660b
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610
2026-03-05 0:32 [PATCH v2 0/3] Add support for Qualcomm WCN3610 Kerigan Creighton
2026-03-05 0:32 ` [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible Kerigan Creighton
@ 2026-03-05 0:32 ` Kerigan Creighton
2026-03-05 8:06 ` Krzysztof Kozlowski
2026-03-05 0:32 ` [PATCH v2 3/3] wifi: wcn36xx: " Kerigan Creighton
2 siblings, 1 reply; 10+ messages in thread
From: Kerigan Creighton @ 2026-03-05 0:32 UTC (permalink / raw)
To: linux-wireless
Cc: loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel, Kerigan Creighton, Dmitry Baryshkov
Add a qcom,wcn3610 compatible string.
The WCN3610 shares the same register configuration as the
WCN3620, so its configuration is being reused.
Signed-off-by: Kerigan Creighton <kerigancreighton@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v2:
- Move remoteproc compatible string addition to the middle of
the patch set.
- Add Reviewed-by Dmitry (thanks!)
---
drivers/remoteproc/qcom_wcnss_iris.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/remoteproc/qcom_wcnss_iris.c b/drivers/remoteproc/qcom_wcnss_iris.c
index 2b89b4db6c..e58b59355f 100644
--- a/drivers/remoteproc/qcom_wcnss_iris.c
+++ b/drivers/remoteproc/qcom_wcnss_iris.c
@@ -95,6 +95,7 @@ void qcom_iris_disable(struct qcom_iris *iris)
}
static const struct of_device_id iris_of_match[] = {
+ { .compatible = "qcom,wcn3610", .data = &wcn3620_data },
{ .compatible = "qcom,wcn3620", .data = &wcn3620_data },
{ .compatible = "qcom,wcn3660", .data = &wcn3660_data },
{ .compatible = "qcom,wcn3660b", .data = &wcn3680_data },
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 3/3] wifi: wcn36xx: add support for WCN3610
2026-03-05 0:32 [PATCH v2 0/3] Add support for Qualcomm WCN3610 Kerigan Creighton
2026-03-05 0:32 ` [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible Kerigan Creighton
2026-03-05 0:32 ` [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610 Kerigan Creighton
@ 2026-03-05 0:32 ` Kerigan Creighton
2026-03-05 8:41 ` Konrad Dybcio
2 siblings, 1 reply; 10+ messages in thread
From: Kerigan Creighton @ 2026-03-05 0:32 UTC (permalink / raw)
To: linux-wireless
Cc: loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel, Kerigan Creighton
The WCN3610 has a lot in common with the WCN3620, so much
of that code was reused.
Tested on an Anki Vector 1.0 and 2.0 robot. Support for other
WCN36xx chips has not been affected.
The WCN3610 requires specific BTC configuration values for
stable Wi-Fi. Without these values, there's some packet loss.
An extra CFG table was made so other chips are not affected.
STA_POWERSAVE causes firmware bugs (long hangs) with the
WCN3610, thus it has been disabled just for this chip.
Signed-off-by: Kerigan Creighton <kerigancreighton@gmail.com>
---
Changes in v2:
- Move wcn36xx driver changes to the end of the patch set.
---
drivers/net/wireless/ath/wcn36xx/main.c | 4 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 70 +++++++++++++++++++++-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
3 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index c3f0860873..6c90c13251 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -1438,7 +1438,7 @@ static int wcn36xx_init_ieee80211(struct wcn36xx *wcn)
BIT(NL80211_IFTYPE_MESH_POINT);
wcn->hw->wiphy->bands[NL80211_BAND_2GHZ] = &wcn_band_2ghz;
- if (wcn->rf_id != RF_IRIS_WCN3620)
+ if (wcn->rf_id != RF_IRIS_WCN3620 && wcn->rf_id != RF_IRIS_WCN3610)
wcn->hw->wiphy->bands[NL80211_BAND_5GHZ] = &wcn_band_5ghz;
if (wcn->rf_id == RF_IRIS_WCN3680)
@@ -1535,6 +1535,8 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn,
/* External RF module */
iris_node = of_get_child_by_name(mmio_node, "iris");
if (iris_node) {
+ if (of_device_is_compatible(iris_node, "qcom,wcn3610"))
+ wcn->rf_id = RF_IRIS_WCN3610;
if (of_device_is_compatible(iris_node, "qcom,wcn3620"))
wcn->rf_id = RF_IRIS_WCN3620;
if (of_device_is_compatible(iris_node, "qcom,wcn3660") ||
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 813553edcb..7352c73f32 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -83,6 +83,70 @@ static struct wcn36xx_cfg_val wcn36xx_cfg_vals[] = {
WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 1000),
};
+static struct wcn36xx_cfg_val wcn3610_cfg_vals[] = {
+ WCN36XX_CFG_VAL(CURRENT_TX_ANTENNA, 1),
+ WCN36XX_CFG_VAL(CURRENT_RX_ANTENNA, 1),
+ WCN36XX_CFG_VAL(LOW_GAIN_OVERRIDE, 0),
+ WCN36XX_CFG_VAL(POWER_STATE_PER_CHAIN, 785),
+ WCN36XX_CFG_VAL(CAL_PERIOD, 5),
+ WCN36XX_CFG_VAL(CAL_CONTROL, 1),
+ WCN36XX_CFG_VAL(PROXIMITY, 0),
+ WCN36XX_CFG_VAL(NETWORK_DENSITY, 3),
+ WCN36XX_CFG_VAL(MAX_MEDIUM_TIME, 6000),
+ WCN36XX_CFG_VAL(MAX_MPDUS_IN_AMPDU, 64),
+ WCN36XX_CFG_VAL(RTS_THRESHOLD, 2347),
+ WCN36XX_CFG_VAL(SHORT_RETRY_LIMIT, 15),
+ WCN36XX_CFG_VAL(LONG_RETRY_LIMIT, 15),
+ WCN36XX_CFG_VAL(FRAGMENTATION_THRESHOLD, 8000),
+ WCN36XX_CFG_VAL(DYNAMIC_THRESHOLD_ZERO, 5),
+ WCN36XX_CFG_VAL(DYNAMIC_THRESHOLD_ONE, 10),
+ WCN36XX_CFG_VAL(DYNAMIC_THRESHOLD_TWO, 15),
+ WCN36XX_CFG_VAL(FIXED_RATE, 0),
+ WCN36XX_CFG_VAL(RETRYRATE_POLICY, 4),
+ WCN36XX_CFG_VAL(RETRYRATE_SECONDARY, 131),
+ WCN36XX_CFG_VAL(RETRYRATE_TERTIARY, 129),
+ WCN36XX_CFG_VAL(FORCE_POLICY_PROTECTION, 5),
+ WCN36XX_CFG_VAL(FIXED_RATE_MULTICAST_24GHZ, 1),
+ WCN36XX_CFG_VAL(FIXED_RATE_MULTICAST_5GHZ, 5),
+ WCN36XX_CFG_VAL(DEFAULT_RATE_INDEX_5GHZ, 5),
+ WCN36XX_CFG_VAL(DEFAULT_RATE_INDEX_24GHZ, 6),
+ WCN36XX_CFG_VAL(MAX_BA_SESSIONS, 40),
+ WCN36XX_CFG_VAL(PS_DATA_INACTIVITY_TIMEOUT, 200),
+ WCN36XX_CFG_VAL(PS_ENABLE_BCN_FILTER, 1),
+ WCN36XX_CFG_VAL(PS_ENABLE_RSSI_MONITOR, 1),
+ WCN36XX_CFG_VAL(NUM_BEACON_PER_RSSI_AVERAGE, 20),
+ WCN36XX_CFG_VAL(STATS_PERIOD, 10),
+ WCN36XX_CFG_VAL(CFP_MAX_DURATION, 30000),
+ WCN36XX_CFG_VAL(FRAME_TRANS_ENABLED, 0),
+ WCN36XX_CFG_VAL(BA_THRESHOLD_HIGH, 128),
+ WCN36XX_CFG_VAL(MAX_BA_BUFFERS, 2560),
+ WCN36XX_CFG_VAL(DYNAMIC_PS_POLL_VALUE, 0),
+ WCN36XX_CFG_VAL(TX_PWR_CTRL_ENABLE, 1),
+ WCN36XX_CFG_VAL(ENABLE_CLOSE_LOOP, 1),
+ WCN36XX_CFG_VAL(ENABLE_LPWR_IMG_TRANSITION, 0),
+ /*
+ * BTC_EXECUTION_MODE
+ * 0: SMART_COEX
+ * 1: WLAN_ONLY
+ * 2: PTA_ONLY
+ * 3: SMART_MAX_WLAN
+ * 4: SMART_MAX_BT
+ * 5: SMART_BT_A2DP
+ */
+ WCN36XX_CFG_VAL(BTC_EXECUTION_MODE, 2),
+ WCN36XX_CFG_VAL(BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN, 90000),
+ WCN36XX_CFG_VAL(BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN, 60000),
+ WCN36XX_CFG_VAL(BTC_STATIC_OPP_WLAN_IDLE_WLAN_LEN, 30000),
+ WCN36XX_CFG_VAL(BTC_STATIC_OPP_WLAN_IDLE_BT_LEN, 120000),
+ WCN36XX_CFG_VAL(BTC_FAST_WLAN_CONN_PREF, 1),
+ WCN36XX_CFG_VAL(BTC_STATIC_LEN_LE_BT, 120000),
+ WCN36XX_CFG_VAL(BTC_STATIC_LEN_LE_WLAN, 30000),
+ WCN36XX_CFG_VAL(MAX_ASSOC_LIMIT, 10),
+ WCN36XX_CFG_VAL(ENABLE_MCC_ADAPTIVE_SCHEDULER, 0),
+ WCN36XX_CFG_VAL(ENABLE_DYNAMIC_RA_START_RATE, 0), /* Let the firmware handle it */
+ WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 1000),
+};
+
static struct wcn36xx_cfg_val wcn3680_cfg_vals[] = {
WCN36XX_CFG_VAL(CURRENT_TX_ANTENNA, 1),
WCN36XX_CFG_VAL(CURRENT_RX_ANTENNA, 1),
@@ -632,6 +696,9 @@ int wcn36xx_smd_start(struct wcn36xx *wcn)
if (wcn->rf_id == RF_IRIS_WCN3680) {
cfg_vals = wcn3680_cfg_vals;
cfg_elements = ARRAY_SIZE(wcn3680_cfg_vals);
+ } else if (wcn->rf_id == RF_IRIS_WCN3610) {
+ cfg_vals = wcn3610_cfg_vals;
+ cfg_elements = ARRAY_SIZE(wcn3610_cfg_vals);
} else {
cfg_vals = wcn36xx_cfg_vals;
cfg_elements = ARRAY_SIZE(wcn36xx_cfg_vals);
@@ -2380,7 +2447,8 @@ int wcn36xx_smd_feature_caps_exchange(struct wcn36xx *wcn)
mutex_lock(&wcn->hal_mutex);
INIT_HAL_MSG(msg_body, WCN36XX_HAL_FEATURE_CAPS_EXCHANGE_REQ);
- wcn36xx_firmware_set_feat_caps(msg_body.feat_caps, STA_POWERSAVE);
+ if (wcn->rf_id != RF_IRIS_WCN3610)
+ wcn36xx_firmware_set_feat_caps(msg_body.feat_caps, STA_POWERSAVE);
if (wcn->rf_id == RF_IRIS_WCN3680) {
wcn36xx_firmware_set_feat_caps(msg_body.feat_caps, DOT11AC);
wcn36xx_firmware_set_feat_caps(msg_body.feat_caps, WLAN_CH144);
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index 7ee79593cd..cb409d48f7 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -96,6 +96,7 @@ enum wcn36xx_ampdu_state {
#define WCN36XX_MAX_POWER(__wcn) (__wcn->hw->conf.chandef.chan->max_power)
#define RF_UNKNOWN 0x0000
+#define RF_IRIS_WCN3610 0x3610
#define RF_IRIS_WCN3620 0x3620
#define RF_IRIS_WCN3660 0x3660
#define RF_IRIS_WCN3680 0x3680
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible
2026-03-05 0:32 ` [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible Kerigan Creighton
@ 2026-03-05 8:05 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-05 8:05 UTC (permalink / raw)
To: Kerigan Creighton
Cc: linux-wireless, loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel
On Wed, Mar 04, 2026 at 06:32:51PM -0600, Kerigan Creighton wrote:
> Document the qcom,wcn3610 compatible string for use with
> the qcom_wcnss_iris remoteproc driver.
No, do not document for drivers. Please explain here the hardware.
Also, one patchset per 24h.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610
2026-03-05 0:32 ` [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610 Kerigan Creighton
@ 2026-03-05 8:06 ` Krzysztof Kozlowski
2026-03-13 19:27 ` Dmitry Baryshkov
0 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-05 8:06 UTC (permalink / raw)
To: Kerigan Creighton
Cc: linux-wireless, loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel, Dmitry Baryshkov
On Wed, Mar 04, 2026 at 06:32:52PM -0600, Kerigan Creighton wrote:
> Add a qcom,wcn3610 compatible string.
> The WCN3610 shares the same register configuration as the
> WCN3620, so its configuration is being reused.
>
> Signed-off-by: Kerigan Creighton <kerigancreighton@gmail.com>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> Changes in v2:
> - Move remoteproc compatible string addition to the middle of
> the patch set.
> - Add Reviewed-by Dmitry (thanks!)
> ---
> drivers/remoteproc/qcom_wcnss_iris.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/remoteproc/qcom_wcnss_iris.c b/drivers/remoteproc/qcom_wcnss_iris.c
> index 2b89b4db6c..e58b59355f 100644
> --- a/drivers/remoteproc/qcom_wcnss_iris.c
> +++ b/drivers/remoteproc/qcom_wcnss_iris.c
> @@ -95,6 +95,7 @@ void qcom_iris_disable(struct qcom_iris *iris)
> }
>
> static const struct of_device_id iris_of_match[] = {
> + { .compatible = "qcom,wcn3610", .data = &wcn3620_data },
So compatible with wcn3620? Why are you adding it in such case? Drop the
change and express compatibility or explain lack of it in the bindings
patch.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/3] wifi: wcn36xx: add support for WCN3610
2026-03-05 0:32 ` [PATCH v2 3/3] wifi: wcn36xx: " Kerigan Creighton
@ 2026-03-05 8:41 ` Konrad Dybcio
[not found] ` <CAN6+ztxfcNR8xR1qwgHQcHHM=zoQbMd-8oggb785ssPZ7f=y4w@mail.gmail.com>
0 siblings, 1 reply; 10+ messages in thread
From: Konrad Dybcio @ 2026-03-05 8:41 UTC (permalink / raw)
To: Kerigan Creighton, linux-wireless
Cc: loic.poulain, wcn36xx, andersson, mathieu.poirier,
linux-remoteproc, linux-arm-msm, robh, krzk+dt, conor+dt,
devicetree, linux-kernel
On 3/5/26 1:32 AM, Kerigan Creighton wrote:
> The WCN3610 has a lot in common with the WCN3620, so much
> of that code was reused.
>
> Tested on an Anki Vector 1.0 and 2.0 robot. Support for other
> WCN36xx chips has not been affected.
>
> The WCN3610 requires specific BTC configuration values for
> stable Wi-Fi. Without these values, there's some packet loss.
> An extra CFG table was made so other chips are not affected.
>
> STA_POWERSAVE causes firmware bugs (long hangs) with the
> WCN3610, thus it has been disabled just for this chip.
Is that something you've observed, or does the downstream kernel
mention these issues?
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/3] wifi: wcn36xx: add support for WCN3610
[not found] ` <CAN6+ztxfcNR8xR1qwgHQcHHM=zoQbMd-8oggb785ssPZ7f=y4w@mail.gmail.com>
@ 2026-03-05 19:16 ` Loic Poulain
2026-03-05 19:33 ` Kerigan Creighton
0 siblings, 1 reply; 10+ messages in thread
From: Loic Poulain @ 2026-03-05 19:16 UTC (permalink / raw)
To: Kerigan Creighton
Cc: Konrad Dybcio, linux-wireless, wcn36xx, andersson,
mathieu.poirier, linux-remoteproc, linux-arm-msm, robh, krzk+dt,
conor+dt, devicetree, linux-kernel
On Thu, Mar 5, 2026 at 4:51 PM Kerigan Creighton
<kerigancreighton@gmail.com> wrote:
>
> [resending to the correct people]
>
> Some of it is observed behavior, some of it came from seeing what
> the downstream prima driver does.
>
> With the default configuration the WCN3610 shows extremely high
> packet loss (~95%). Setting ENABLE_DYNAMIC_RA_START_RATE=0
> (as done in the downstream prima driver) improves this significantly to
> around 5% packet loss.
>
> Further experimentation showed that configuring
> BTC_EXECUTION_MODE=2 eliminates the remaining packet loss.
> With the firmware default (BTC_EXECUTION_MODE=0) the chip emits
> BTC-related SMD events that the wcn36xx driver does not currently handle.
>
> BTC_EXECUTION_MODE=2 forces PTA_ONLY coexistence which avoids
> those events and results in stable operation. The downside is that this may
> increase power consumption because PA remains active.
Could you please add these details to the commit message?
Regards,
Loic
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/3] wifi: wcn36xx: add support for WCN3610
2026-03-05 19:16 ` Loic Poulain
@ 2026-03-05 19:33 ` Kerigan Creighton
0 siblings, 0 replies; 10+ messages in thread
From: Kerigan Creighton @ 2026-03-05 19:33 UTC (permalink / raw)
To: Loic Poulain
Cc: Konrad Dybcio, linux-wireless, wcn36xx, andersson,
mathieu.poirier, linux-remoteproc, linux-arm-msm, robh, krzk+dt,
conor+dt, devicetree, linux-kernel
On Thu, Mar 5, 2026 at 1:16 PM Loic Poulain
<loic.poulain@oss.qualcomm.com> wrote:
>
> Could you please add these details to the commit message?
>
> Regards,
> Loic
Yes, I will send a v3 with more detailed commit messages for all patches.
I was asked to wait 24 hours between sending patch set revisions.
Apologies for my poor etiquette (sending HTML email).
Thanks,
- Kerigan
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610
2026-03-05 8:06 ` Krzysztof Kozlowski
@ 2026-03-13 19:27 ` Dmitry Baryshkov
0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-03-13 19:27 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Kerigan Creighton, linux-wireless, loic.poulain, wcn36xx,
andersson, mathieu.poirier, linux-remoteproc, linux-arm-msm, robh,
krzk+dt, conor+dt, devicetree, linux-kernel
On Thu, Mar 05, 2026 at 09:06:30AM +0100, Krzysztof Kozlowski wrote:
> On Wed, Mar 04, 2026 at 06:32:52PM -0600, Kerigan Creighton wrote:
> > Add a qcom,wcn3610 compatible string.
> > The WCN3610 shares the same register configuration as the
> > WCN3620, so its configuration is being reused.
> >
> > Signed-off-by: Kerigan Creighton <kerigancreighton@gmail.com>
> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > Changes in v2:
> > - Move remoteproc compatible string addition to the middle of
> > the patch set.
> > - Add Reviewed-by Dmitry (thanks!)
> > ---
> > drivers/remoteproc/qcom_wcnss_iris.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/remoteproc/qcom_wcnss_iris.c b/drivers/remoteproc/qcom_wcnss_iris.c
> > index 2b89b4db6c..e58b59355f 100644
> > --- a/drivers/remoteproc/qcom_wcnss_iris.c
> > +++ b/drivers/remoteproc/qcom_wcnss_iris.c
> > @@ -95,6 +95,7 @@ void qcom_iris_disable(struct qcom_iris *iris)
> > }
> >
> > static const struct of_device_id iris_of_match[] = {
> > + { .compatible = "qcom,wcn3610", .data = &wcn3620_data },
>
> So compatible with wcn3620? Why are you adding it in such case? Drop the
> change and express compatibility or explain lack of it in the bindings
> patch.
I'd say, keep the compatible. It's used in the next patch. But yes, it
might need some epxlanation.
>
> Best regards,
> Krzysztof
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-03-13 19:27 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-05 0:32 [PATCH v2 0/3] Add support for Qualcomm WCN3610 Kerigan Creighton
2026-03-05 0:32 ` [PATCH v2 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: add WCN3610 compatible Kerigan Creighton
2026-03-05 8:05 ` Krzysztof Kozlowski
2026-03-05 0:32 ` [PATCH v2 2/3] remoteproc: qcom_wcnss_iris: add support for WCN3610 Kerigan Creighton
2026-03-05 8:06 ` Krzysztof Kozlowski
2026-03-13 19:27 ` Dmitry Baryshkov
2026-03-05 0:32 ` [PATCH v2 3/3] wifi: wcn36xx: " Kerigan Creighton
2026-03-05 8:41 ` Konrad Dybcio
[not found] ` <CAN6+ztxfcNR8xR1qwgHQcHHM=zoQbMd-8oggb785ssPZ7f=y4w@mail.gmail.com>
2026-03-05 19:16 ` Loic Poulain
2026-03-05 19:33 ` Kerigan Creighton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox