From nobody Thu Apr 9 20:25:37 2026 Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3F582DF701 for ; Fri, 6 Mar 2026 00:43:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772757843; cv=none; b=WWpRzlQllAJYltcTlIPNwXuSf2aQSD1b8GDXrL5CVO9VwzlwYkJ/rAHSkc1SPAvGqZ3l38+WSTUgLX8EmN6P4VFqd83l5JMQTwSJq8MViXi0mmYDKkEfCW4sgxS6iG/jWgy9PROGvspSanwaRw/Fz+oQk0lrJqpmqz2YF+BJ2gc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772757843; c=relaxed/simple; bh=7+7vEfBpNq1FeJYJEFDLB71C+eZ7mjue1YQ1Lz4VM4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bR6EQoSS81+KzmTh4t6HVyO+xr2S/ycrXgVm3+dezgLJbngn5ORafLkhl2Bl2Apmb9Fe4Wcby2McRHYfJEhL0rZOV4cpXAvL9HErb4bbJzFsHuJxdO1WccW4UdR7xu841rHrPSi7J/7ywj2xfBSkH2RYkB5MpNqMpZTg/mUfY7Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JQGAv6Hb; arc=none smtp.client-ip=209.85.160.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JQGAv6Hb" Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-40f387a688dso2998000fac.0 for ; Thu, 05 Mar 2026 16:43:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772757837; x=1773362637; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DWzAa+zn92+13s1CRMtvzeiMVSLB+iLeHsYqLdK601c=; b=JQGAv6HbUQNC1gjJ68whaYfxEDPpib0XsPN+2anKdPc28e2ptzxcM3hqxmzT46NpY2 PPtuI3H2L6L59816oobgEWbYekvQP2LfTM4/sRW1h43bIrp07lcDsuNfHX44FU+ehV+i +LCuYAodD48FRk+5efGiYRV25gV5RJev5yGxBjEQzbFTQcVjGgDWBCKI9X72iLKSEKlN n1/YRSCeps3tX/DcIBPfWGtCi38EX2GETIYpKuMTYWiEy8bDaISVoDKKMjvXOERox/U+ sU+gUy3x/O/tdjFtGYk7BcXTjEmjCxTpHSPjZRSpipJP5lzvymZQbYSrQHs54BgHDuuP S1mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772757837; x=1773362637; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DWzAa+zn92+13s1CRMtvzeiMVSLB+iLeHsYqLdK601c=; b=MZV3JfxbuPCjLuenA0WRwkG3BjphD8Kwwmv4S64Vz7n9cqfofSUXEaO35pRSN9kref 7f/22vx1c4g4S8qlnSmsmFaaXzjpNLcdYOEX091TygH1jR5V/M7Tj4u1H7oUQVnP1R+P /3kymcOmHdBMCJ57PjE+OP3WSqtO4e9gAOanjnA4MnNCpByjv5OJ3NT5zJNs5kKxEi0U o50Sdx2k2AnZibtTg4UOcoCpcR5/4dfkChYMChQxLxXWTycTSOGG+9Gj2HPHxZqPOMoS dFfNJj7OJsH0YSSzfvuU7wb2sOFUGJ5T/hl9b2wPewNXcwTP+pTJb2iH4FcYFpMKM76g FXWA== X-Forwarded-Encrypted: i=1; AJvYcCXPUEMJBFWiu4pK+Goxc/NoO2OZCucT3E9SHalTiiTfM510u7J/Pmqtke+pG6lXQYBfa3HYLD6E/pqV+m4=@vger.kernel.org X-Gm-Message-State: AOJu0YyE8lQ+/4A1Pw/ywLa9Wv83nzkFAM3Kpdo5gPVscV5c/xAOkyAy hMXiSddZM6MaVwx3pgsxJJeYgsDWpQ4mRptgCiV5tRZ4HtcIUwE44fvQ X-Gm-Gg: ATEYQzzz6o78Eo0Ezf8H5NehYJtj/BraP5NacxvtiLXf9Kt/CwxwdqsYUagO6qYrvwR c/jK5+IpwUztdRXV4KECsX5JOOS8KD+4Im6TBWmk5GGZ5jCcoYtq1GqaL0qQ3ay0sm8PlJVYv7p d809fMZiNxiV/O7xnP5BgR8Xe8PeCKpVTF5HV/6Qgrvhf4qP1uGAPrLcUbaStHK7a9rE2gRKEVR 1QJVosOVKYH/rISPIPqibPtvNL+8/fklEL/9+YtrEEUJ3B3DnEuZcUkg325ifQNa8Tf+TwbFRCp mGPbZs0np0BMYqKYfwJNapBmR/akH8tEvLl9vQroneUcXEow+hm/W0kCQJkZlYMGdguX+VAYYB0 mnaCQd3WXLmlxZagUzeBEQlBFaIRaiBP+fP3rECtSd2jRprUpJm2211N2isY00POQZR00nI3ku7 yoAa5/xu0o3+Kt06Tv7hTgsihPVNNY/k6p79ULc8q/S8JQm0wPhKYCqvjZ8Xbx4Paszxsf5AwCj AEFPG3omqg2pFQbuv7Tpr2XQ0eJfRhw9z/HRCVoVLhJggQRLifL X-Received: by 2002:a05:6870:8252:b0:3e7:e420:6229 with SMTP id 586e51a60fabf-416e3e6fa13mr252903fac.6.1772757836776; Thu, 05 Mar 2026 16:43:56 -0800 (PST) Received: from framework.misc.iastate.edu ([2610:130:110:25d:2aa4:4aff:fed7:9b19]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-416e65b1c82sm69335fac.5.2026.03.05.16.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 16:43:56 -0800 (PST) From: Kerigan Creighton To: linux-wireless@vger.kernel.org Cc: loic.poulain@oss.qualcomm.com, wcn36xx@lists.infradead.org, andersson@kernel.org, mathieu.poirier@linaro.org, linux-remoteproc@vger.kernel.org, linux-arm-msm@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Kerigan Creighton Subject: [PATCH v3 1/3] dt-bindings: remoteproc: qcom,wcnss-pil: Add wcn3610 compatible Date: Thu, 5 Mar 2026 18:43:42 -0600 Message-ID: <20260306004344.10968-2-kerigancreighton@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260306004344.10968-1-kerigancreighton@gmail.com> References: <20260306004344.10968-1-kerigancreighton@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Qualcomm WCN3610 is a 2.4GHz-only WLAN/BT combo chip. It's similar to the WCN3620, though more basic. Add a wcn3610 compatible for use in device trees. It needs its own compatible because of chip-specific configuration done in wcn36xx. Signed-off-by: Kerigan Creighton Acked-by: Krzysztof Kozlowski --- Changes in v2: - Move the Documentation patch to the beginning of the patch set. Changes in v3: - Describe the hardware rather than the driver in the dt-bindings patch [Krzysztof]. --- Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.ya= ml 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 --=20 2.53.0 From nobody Thu Apr 9 20:25:37 2026 Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0E312E62C3 for ; Fri, 6 Mar 2026 00:43:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772757840; cv=none; b=YTD/jhn9zhJaZMNeOgCN08z4dP/fxQnp3iTZDWzLYbckj/jgLkKvPNeBbWUfzvAAsnQ2rHGs0GbGqzMQskKjqEw5qEs+Jwp8jFxbTBNYgKQ09QwfnSQDFE0tlnJBb5of6ND4w/a0zC5csbK/jVEZaDupr8Bc+zV6PwC9ckZfLHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772757840; c=relaxed/simple; bh=SlxNkWeYG2jC8F4dtE1l8oVL/VcZqLqk8x6VI232W0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MIMuUMAO8EHcem2EfzuRZUPJHWheVHAF0ROG7qdDFkDkmtTdBXHtYMA2lYwnMQ1u7mzfkQvowTDjVCJ+kOdMk1fzLQMvlu3zsy2pHrg2Nr45WUKsfsjj/WzP1lSdU4CXMLG8xvLy4UQS6/sBYNzcGCiVJLCygakcn+N8Nt07fHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TgKM4Ee1; arc=none smtp.client-ip=209.85.167.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TgKM4Ee1" Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-4648447e29bso3493155b6e.0 for ; Thu, 05 Mar 2026 16:43:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772757838; x=1773362638; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MQ8acXeUu2flgK+dNZrWf/T7XYkkUKe2qrxt7AXt0W8=; b=TgKM4Ee1shtqjFqAYX/Tvu24mMHzHYWDHwbcUrxByCXE9jIUgDEiA3Tgo6dYq+ifCc WDCcVvSagAULwIIo9hsBP0NVU0erG7BKNDwtloqo9r3vL3TZ2O/9lLAqEb/y7COLWUmi 4GBwj02/d+o9dHsssatWS2WO18AWoxkwndEN/6R8W6r7G3YY925j9OwIeP8XKTdhAV1t D9SXQubmL5WElie9VbBc2GGiYtUvs8EyxLyH516nIDfgb7u0CkfVeLVd+HGGlmSW3jJT 3lA+Kwn2jp3ZATM9bKtGTX0TMSqr0QYmTJo8LXDdmeRE+g3yLYMQQMqtWW6lAxRjfe6c GBuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772757838; x=1773362638; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MQ8acXeUu2flgK+dNZrWf/T7XYkkUKe2qrxt7AXt0W8=; b=mgMbRWLvwuHTvlWzJbzC/kzGRQtT3uSc34qkTofEuwIL9iekQARhrTMhsV36uRJ075 Rq9AD4wbal28U7thiSzsfgeZn0OEIWqoBsCDMpgU+CkTtSPFxu1C99wFvmwBPivWkb99 0vms2osd3w3qA0KoxcjbFLRHv9lg6+7I0+AXtatO71bTGLIRPOg3L5u1SJni5u6nF1mp cC0G8nBFvkoEOZN2ukP2hDO6UxvWCtNjmSLaw6UkqcVXYejVfwq0VnoGEvB1KTvuCp1m 37jpZNEEVEKLvSwGcoNT633PLebMjZIJCweiOTBaHXIKbSG4hx/l32kj1VipxPQ4fT2B +H4A== X-Forwarded-Encrypted: i=1; AJvYcCVY0kPwqKzjSpVXI/abw0OqoxOIUTfwPmMgTfirnEe/IvqnItr5S0V6Rr89e+EHlotIAVVI9yaMAr0goNY=@vger.kernel.org X-Gm-Message-State: AOJu0Ywnmk7Xx1pbR3MZrXFb+SYv8qDTNAZyLkvYe/sSahXG8xQHNpHQ sOveHprMyEAvQFMO5QiVHk0JDD2ruEZmdXJM7/vVKQJMyIEdVXPZYi0/ X-Gm-Gg: ATEYQzya8+CfS3g9z68vdYAQ2K0i/T3vOnOYNz6PRUuaTX+m+VtN9NBw9rMK5jum0Yl rQue6Ai5LV3ZfH8WCMljfr+Qo2OmdhlQWyYUznUCk1y6z3fI6h+VomgyNDtz7QQngyau0IJsDoU X0M7+FESkngkh0ZynxSW1jkigYe6Elegha5goW/ZB1vRz8zplaD3ZhOpTnrEdQROKqHuXHizkPt qa32zihNHTVW3UHRfwjBC4IDaDH9wjIqDiFMdpZ5U5WZBLGYvBDle5xoEsx9WAY4qQvhQhJUlNj AChCAljbluFJbwXuzIV7au0icnKMtZWichnroLRtxVoC8beFw8jkRK2VUjb7MV9MMAwOzXB1poJ PjPp0f6URmBzGgjHuG2Y8RRvqzeR+l55rl5fF5EUQytbFz4YHX29QhxQPXgHEeFkNkfvjAQiDT1 5m81ce+hIu+vYYVzdXRhLE6AQ68JvtyIpYc2t443qHe0ylluWE+VZX26Y+sS9YC2Y95dmEJbNG6 P29J+Cs4FJFBJwyMya0my9VGWHQ6P+afADAU9mCuA== X-Received: by 2002:a05:6808:1a1b:b0:45f:1387:973b with SMTP id 5614622812f47-466dca7e5aamr210025b6e.6.1772757838015; Thu, 05 Mar 2026 16:43:58 -0800 (PST) Received: from framework.misc.iastate.edu ([2610:130:110:25d:2aa4:4aff:fed7:9b19]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-416e65b1c82sm69335fac.5.2026.03.05.16.43.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 16:43:57 -0800 (PST) From: Kerigan Creighton To: linux-wireless@vger.kernel.org Cc: loic.poulain@oss.qualcomm.com, wcn36xx@lists.infradead.org, andersson@kernel.org, mathieu.poirier@linaro.org, linux-remoteproc@vger.kernel.org, linux-arm-msm@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Kerigan Creighton , Dmitry Baryshkov Subject: [PATCH v3 2/3] remoteproc: qcom_wcnss_iris: Add support for WCN3610 Date: Thu, 5 Mar 2026 18:43:43 -0600 Message-ID: <20260306004344.10968-3-kerigancreighton@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260306004344.10968-1-kerigancreighton@gmail.com> References: <20260306004344.10968-1-kerigancreighton@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" WCN3610 has the same regulator requirements as WCN3620, so in qcom_wcnss_iris, we can use wcn3620_data. A separate compatible is needed for WCN3610 because the wcn36xx driver uses it for chip-specific configuration. Specifically, it sets BTC (Bluetooth Coexistence) CFGs, disables ENABLE_DYNAMIC_RA_START_RATE, and disables STA_POWERSAVE for this specific chip for stable functionality. Signed-off-by: Kerigan Creighton Reviewed-by: Dmitry Baryshkov --- Changes in v2: - Move remoteproc compatible string addition to the middle of the patch set. - Add Reviewed-by Dmitry (thanks!) Changes in v3: - Describe why we need a new compatible in the remoteproc patch [Krzysztof]. --- 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) } =20 static const struct of_device_id iris_of_match[] =3D { + { .compatible =3D "qcom,wcn3610", .data =3D &wcn3620_data }, { .compatible =3D "qcom,wcn3620", .data =3D &wcn3620_data }, { .compatible =3D "qcom,wcn3660", .data =3D &wcn3660_data }, { .compatible =3D "qcom,wcn3660b", .data =3D &wcn3680_data }, --=20 2.53.0 From nobody Thu Apr 9 20:25:37 2026 Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1BFA2E7162 for ; Fri, 6 Mar 2026 00:44:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772757843; cv=none; b=drff0PoybkRHssfcE+wU4wKQObgPZ0QUX6Uj2mECOXCuAazGszIM9MqVCjDNoHiZlxZE1++08wVd1Zrk6jLjoMe39hh2ijsml8HGrRqyBzpZXPgjQlcosNolhBxjX1vtZCH/Or4BRTqW6FiPzOBR15anymxCSBIhxvnBeXTeIhM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772757843; c=relaxed/simple; bh=Pbo6Ncs2XH45+RiMK+FfG7zzkVbxY7P2JwHYAbhBwq4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hys+J4qE4NhB3LKoHUwAEsoJdFekKIFjr3pbV36I10A6JG3D8WDOzXdtGMkH4chwZdrv47TfXgeoLL2YD79C36oE95cSSBfUPJEOlgaKCHAraGNfaWZpPqBDYNlDRoUyyMvcptwj9DHMTwh9G/uZ/9gYitpASef97RAbpQuQgG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KPAgmMwV; arc=none smtp.client-ip=209.85.160.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KPAgmMwV" Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-41576c5c01cso2416140fac.3 for ; Thu, 05 Mar 2026 16:44:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772757841; x=1773362641; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XaIluGXx/Vhq+ZEeriR1MIRiJ/bHLPjLpQYgZ6GDJVY=; b=KPAgmMwVvUVDI/orvIxpyx3FSLFlwLlv2Dkv4DHb0wPviju2X4qAWandEZL25ag1+W 1nsvlfNoEUt24V98kHPZdde1x/kFn5uAbZKtfl6UQjWkzJN30YZf8Itg2kV/nsSJkV94 nKXz9vWoUDlcOGLeVzJvAhfbEJ4G/I+evGinSTVGingNamLag4uQ2iypRP2XzdRmAQEY eyGFlDAZSJo4Kl2ozs53tBj8PVELNegdIybO8ipddXk2Oxeup8fK2u7RxM+IT1y5De7m zOtrnZQ12mTK2hMzkJCEURVk/8U8XkL2UxXt9F1+ujUKB9XHIwLzqnmMf9yA+RwhRGY+ aAxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772757841; x=1773362641; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XaIluGXx/Vhq+ZEeriR1MIRiJ/bHLPjLpQYgZ6GDJVY=; b=lRLXl/yQ+rDQEI29J5gnbNGNhi+hsMNHNiyU4tHKlSmwit0DY4Q1NGZ7qO8Cew2Aho TTvKZRnan063By+RTDlQa8Rk/UJkQ11CJu/rmY6oWdiZ2Es4p0i3MoGvq38JWWjH5APO xNj7GSmWM7YbsUHqlSpDlb/wOhR4nGInjOPcn+bATjLVVMxJYWkv3hKZboLd8dZZGL8j Ys9OKpBjuk/IR2buSoaKc5J5JzhmF0uxO41hTxgYGJh/HIVX33zJmWHBLrZPPxL0mmgw JvqIRvqnVTW4HlDeR95zDXdI7s4UAsHPU5muRWJ8f5BG2AE7+DJs/wwEOgDqYm5aoRAK ryhA== X-Forwarded-Encrypted: i=1; AJvYcCVGgTPrwf3SmqSslDal3KTyH/Af34cr1bmud+iwFE6MukX+pqN38fD9LCKIPYVWyDF2t0Ak7qL4N5b2Nx0=@vger.kernel.org X-Gm-Message-State: AOJu0YwRe4VKo0z6FmGl0olaW5eRFW/CK6p+Owe9aV+YZrDKCG6tpjgE FvXX/znMyY4T6h8aLMIL5O+rwwEvFxEmWBrjdv/UW06CxogIAc+sYFIZ X-Gm-Gg: ATEYQzwBTVeoD8GFP4PSzgm619Qe/4+iJEbBiN/V3ZU6TL9auUf6t1ZWuov5syUJ4fh rEWBKU62G5VKoSZC42F3JyUz9mJ1lxjDobo1QrAIZ+A41UFiapdNknJMLxRB/Ipxb2TQ9RNfJy6 8nSJqcXR30YTF3giDs927oMWbhn1Cajvey0Y9VNWQ7RaCEAxpZ6CRI0lMDJM0CpyV2djZtTL6V9 Dr6i3Bp/RIUTarMpbOPfj5+puiQ/oEC7iPV/k/UAWewE6c/xlb40Vd4Hl685LzuW7Oy8KkYBo/e XJSgCJIYtqcIwD25ZhVOVFXAfQ1hElxKqiuPNqy2vivce/eF+wdhBA9XgnvKduPnIZtU5Jta8w8 uJyz+zD0ld+axvlY/b5VLxvBhDExwdpJB/4BHPjUWNA6zx5N5gpinUllubYUceWzZFMeaqO0Yl5 9s84+4Tc/wa5Qc5n+GQNK4lKYoNITlX+3V0N/FxZZCtNZKbDa6wO8M/2sj9y13STS+nGH60zpH2 resPpAbDlfwduR7bci7I3kKW/CLq3zpoeMxfptZxA== X-Received: by 2002:a05:6870:34a:b0:409:5ad9:67d5 with SMTP id 586e51a60fabf-416e452461emr222992fac.40.1772757840712; Thu, 05 Mar 2026 16:44:00 -0800 (PST) Received: from framework.misc.iastate.edu ([2610:130:110:25d:2aa4:4aff:fed7:9b19]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-416e65b1c82sm69335fac.5.2026.03.05.16.43.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 16:43:59 -0800 (PST) From: Kerigan Creighton To: linux-wireless@vger.kernel.org Cc: loic.poulain@oss.qualcomm.com, wcn36xx@lists.infradead.org, andersson@kernel.org, mathieu.poirier@linaro.org, linux-remoteproc@vger.kernel.org, linux-arm-msm@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Kerigan Creighton Subject: [PATCH v3 3/3] wifi: wcn36xx: Add support for WCN3610 Date: Thu, 5 Mar 2026 18:43:44 -0600 Message-ID: <20260306004344.10968-4-kerigancreighton@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260306004344.10968-1-kerigancreighton@gmail.com> References: <20260306004344.10968-1-kerigancreighton@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The WCN3610 has a lot in common with the other wcn36xx chips, so much of that code was reused. The WCN3610 requires specific configuration values for stable Wi-Fi. Without these values, there's packet loss. An extra CFG table was made so other chips are not affected. ENABLE_DYNAMIC_RA_START_RATE=3D0 was discovered from the downstream prima driver. That brought it from 95% to 5% packet loss. The rest of the CFG values came from my own observations and experimentation. The current settings allow for 0% packet loss. STA_POWERSAVE resulted in BMPS errors and unstable functionality, thus it has been disabled for just this chip. Tested on an Anki Vector 1.0 and 2.0 robot with 3 different APs. Support for other WCN36xx chips has not been affected. Signed-off-by: Kerigan Creighton Reviewed-by: Loic Poulain --- Changes in v2: - Move wcn36xx driver changes to the end of the patch set. Changes in v3: - Describe where the CFG values came from in the wcn36xx driver patch [Konrad]. --- drivers/net/wireless/ath/wcn36xx/main.c | 4 +- drivers/net/wireless/ath/wcn36xx/smd.c | 61 +++++++++++++++++++++- drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 + 3 files changed, 64 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); =20 wcn->hw->wiphy->bands[NL80211_BAND_2GHZ] =3D &wcn_band_2ghz; - if (wcn->rf_id !=3D RF_IRIS_WCN3620) + if (wcn->rf_id !=3D RF_IRIS_WCN3620 && wcn->rf_id !=3D RF_IRIS_WCN3610) wcn->hw->wiphy->bands[NL80211_BAND_5GHZ] =3D &wcn_band_5ghz; =20 if (wcn->rf_id =3D=3D RF_IRIS_WCN3680) @@ -1535,6 +1535,8 @@ static int wcn36xx_platform_get_resources(struct wcn3= 6xx *wcn, /* External RF module */ iris_node =3D of_get_child_by_name(mmio_node, "iris"); if (iris_node) { + if (of_device_is_compatible(iris_node, "qcom,wcn3610")) + wcn->rf_id =3D RF_IRIS_WCN3610; if (of_device_is_compatible(iris_node, "qcom,wcn3620")) wcn->rf_id =3D 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..8d5a746de7 100644 --- a/drivers/net/wireless/ath/wcn36xx/smd.c +++ b/drivers/net/wireless/ath/wcn36xx/smd.c @@ -83,6 +83,61 @@ static struct wcn36xx_cfg_val wcn36xx_cfg_vals[] =3D { WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 1000), }; =20 +static struct wcn36xx_cfg_val wcn3610_cfg_vals[] =3D { + 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), + 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), + WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 1000), +}; + static struct wcn36xx_cfg_val wcn3680_cfg_vals[] =3D { WCN36XX_CFG_VAL(CURRENT_TX_ANTENNA, 1), WCN36XX_CFG_VAL(CURRENT_RX_ANTENNA, 1), @@ -632,6 +687,9 @@ int wcn36xx_smd_start(struct wcn36xx *wcn) if (wcn->rf_id =3D=3D RF_IRIS_WCN3680) { cfg_vals =3D wcn3680_cfg_vals; cfg_elements =3D ARRAY_SIZE(wcn3680_cfg_vals); + } else if (wcn->rf_id =3D=3D RF_IRIS_WCN3610) { + cfg_vals =3D wcn3610_cfg_vals; + cfg_elements =3D ARRAY_SIZE(wcn3610_cfg_vals); } else { cfg_vals =3D wcn36xx_cfg_vals; cfg_elements =3D ARRAY_SIZE(wcn36xx_cfg_vals); @@ -2380,7 +2438,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); =20 - wcn36xx_firmware_set_feat_caps(msg_body.feat_caps, STA_POWERSAVE); + if (wcn->rf_id !=3D RF_IRIS_WCN3610) + wcn36xx_firmware_set_feat_caps(msg_body.feat_caps, STA_POWERSAVE); if (wcn->rf_id =3D=3D 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/wirel= ess/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) =20 #define RF_UNKNOWN 0x0000 +#define RF_IRIS_WCN3610 0x3610 #define RF_IRIS_WCN3620 0x3620 #define RF_IRIS_WCN3660 0x3660 #define RF_IRIS_WCN3680 0x3680 --=20 2.53.0