QCOM ath12k bringup - #1307
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
There was a problem hiding this comment.
Pull request overview
Adds baseline enablement for the QCOM ATH12K (QCA) platform across OneWifi by extending platform-conditional paths, updating default radio capabilities, and tightening validation logic to align configuration with the active 802.11 variant.
Changes:
- Add US 6 GHz operating class 137 to the operating class map.
- Extend multiple platform
#ifconditionals to include/exclude QCOM ATH12K-specific code paths (systemd notify, probe request matching, CSI/pinger and data-frame send paths). - Add Guard Interval (GI) validation based on the configured 802.11 operating variant, and adjust default radio variant initialization to include AX/BE on QCOM where applicable.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| source/utils/wifi_util.c | Adds US 6 GHz operating class 137. |
| source/stats/wifi_stats_radio_channel.c | Removes an extraneous blank line in the header area. |
| source/stats/wifi_monitor.c | Excludes QCOM ATH12K from XB7 Broadcom-specific data-frame send path. |
| source/dml/wifi_ssp/ssp_main.c | Enables sd_notify PID-file flow for QCOM ATH12K builds. |
| source/dml/tr_181/sbapi/cosa_wifi_apis.c | Includes QCOM ATH12K in platform-gated JSON/bootstrap handling blocks. |
| source/dml/tr_181/ml/plugin_main.c | Trims trailing whitespace in a preprocessor block. |
| source/dml/tr_181/ml/cosa_wifi_dml.c | Adds GI validation based on configured 802.11 variant; adds QCOM ATH12K to CCSP include gate. |
| source/db/wifi_db.c | Extends BE defaulting logic to include QCOM ATH12K under CONFIG_IEEE80211BE. |
| source/db/wifi_db_apis.c | Extends AX/BE defaulting logic to include QCOM ATH12K. |
| source/apps/levl/wifi_levl.c | Skips Broadcom-specific MLO vendor-IE probe matching on QCOM ATH12K. |
| source/apps/csi/wifi_csi.c | Excludes QCOM ATH12K from XB7 Broadcom-specific CSI pinger update path. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| wifi_util_error_print(WIFI_DMCLI, | ||
| "%s:%d: GuardInterval 400ns not supported for EHT mode (variant=0x%x)\n", | ||
| __func__, __LINE__, variant); | ||
| return FALSE; |
| #if defined(CONFIG_IEEE80211BE) && (defined(_PLATFORM_BANANAPI_R4_) || defined(QCOM_ATH12K_PORT)) | ||
| cfg.variant |= WIFI_80211_VARIANT_BE; | ||
| cfg.channelWidth = WIFI_CHANNELBANDWIDTH_40MHZ; | ||
| #endif /* defined(CONFIG_IEEE80211BE) && defined(_PLATFORM_BANANAPI_R4_) */ |
|
recheck |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (3)
source/stats/wifi_monitor.c:2995
- In the IPv6 ping path, the
wifi_hal_sendDataFramecall is passingWIFI_ETH_TYPE_IP(IPv4) instead ofWIFI_ETH_TYPE_IP6, which will mislabel the frame type for ICMPv6 payloads.
#if (defined (_XB7_PRODUCT_REQ_) && !defined (_COSA_BCM_ARM_) && !defined (QCOM_ATH12K_PORT))
wifi_sendDataFrame(ap_idx,
(unsigned char*)mac,
(unsigned char*)buffer,
frame_len,
source/db/wifi_db.c:108
- The
#endiftrailing comment no longer matches the updated preprocessor condition (it still references only_PLATFORM_BANANAPI_R4_). This makes the guard harder to read/maintain.
#if defined(CONFIG_IEEE80211BE) && (defined(_PLATFORM_BANANAPI_R4_) || defined(QCOM_ATH12K_PORT))
cfg.variant |= WIFI_80211_VARIANT_BE;
cfg.channelWidth = WIFI_CHANNELBANDWIDTH_40MHZ;
#endif /* defined(CONFIG_IEEE80211BE) && defined(_PLATFORM_BANANAPI_R4_) */
source/dml/tr_181/ml/cosa_wifi_dml.c:3855
- This branch triggers for both BE (EHT) and AX (HE), but the comment/log message says "EHT" only. That can be misleading when the radio is operating in AX/HE mode.
if ((variant & WIFI_80211_VARIANT_BE) || (variant & WIFI_80211_VARIANT_AX)) {
/* EHT: 800ns, 1600ns, 3200ns only */
if (tmpGuardInterval == wifi_guard_interval_400) {
wifi_util_error_print(WIFI_DMCLI,
"%s:%d: GuardInterval 400ns not supported for EHT mode (variant=0x%x)\n",
Reason for change: Base bringup for QCA platform based on upstream hostapd main branch (2.12-dev) Signed-off-by: Akilesh K <akilkart@qti.qualcomm.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (3)
source/db/wifi_db.c:108
- The
#endifcomment no longer matches the updated#ifcondition (it now also includesQCOM_ATH12K_PORT), which can be misleading during future maintenance.
#if defined(CONFIG_IEEE80211BE) && (defined(_PLATFORM_BANANAPI_R4_) || defined(QCOM_ATH12K_PORT))
cfg.variant |= WIFI_80211_VARIANT_BE;
cfg.channelWidth = WIFI_CHANNELBANDWIDTH_40MHZ;
#endif /* defined(CONFIG_IEEE80211BE) && defined(_PLATFORM_BANANAPI_R4_) */
source/dml/tr_181/ml/cosa_wifi_dml.c:3856
- The GuardInterval validation error text says “EHT mode”, but the surrounding condition includes both AX and BE variants. This makes the log misleading on AX-only configurations.
/* EHT: 800ns, 1600ns, 3200ns only */
if (tmpGuardInterval == wifi_guard_interval_400) {
wifi_util_error_print(WIFI_DMCLI,
"%s:%d: GuardInterval 400ns not supported for EHT mode (variant=0x%x)\n",
__func__, __LINE__, variant);
source/apps/levl/wifi_levl.c:633
- The
#endifcomment doesn’t reflect the updated conditional (it now also excludesQCOM_ATH12K_PORT), which makes it harder to understand why this block is compiled out on some platforms.
#if defined(CONFIG_IEEE80211BE) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(QCOM_ATH12K_PORT)
check_and_correct_reporting_vap_index(msg, mac_str);
#endif /* CONFIG_IEEE80211BE && !_PLATFORM_BANANAPI_R4_ */
[ccsp-one-wifi] QCOM bringup
Reason for change: Add base bringup support for the QCA platform.
This change enables QCOM ATH12K platform-specific paths across OneWifi, including:
Signed-off-by: Akilesh K akilkart@qti.qualcomm.com