mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-19 15:55:05 +04:00
mac80211: read split-PHY topology when QCN9274 OTP is unset
Describe fixed split-PHY topology with an optional qcom,split-phy property on the PCIe radio. Read it only for QCN9274 hw2.0 when the OTP board identifier is zero or erased, before target capability discovery. Valid OTP remains authoritative. Devices without the property and other hardware revisions retain their existing behavior. Leave QMI capability handling and WMI mode selection unchanged. Do not match router identities inside ath12k. Include the proposed binding and driver handling together; board selection is separate. The binding is an RFC for maintainer review. Source checks covered OTP field values, absent inputs, per-device isolation, patch refresh and schema validation. LN6001 startup also exercised the unset-OTP property path in the attended test. Signed-off-by: Satoshi Ikeuchi <satosan.ikm@gmail.com> Link: https://github.com/openwrt/openwrt/pull/25595 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
1 parent
1ec6af5155
commit
d0222636e4
3 files changed
+106
-1
No files matched your search
@@ -12,7 +12,7 @@ PKG_NAME:=mac80211
|
||||
|
||||
PKG_SOURCE_VERSION:=7.2
|
||||
PKG_VERSION:=$(subst -,_,$(PKG_SOURCE_VERSION))
|
||||
PKG_RELEASE:=7
|
||||
PKG_RELEASE:=8
|
||||
PKG_LICENSE:=GPL-2.0-only
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Satoshi Ikeuchi <satosan.ikm@gmail.com>
|
||||
Date: Tue, 29 Sep 2026 00:00:00 +0000
|
||||
Subject: [PATCH] wifi: ath12k: read split-PHY topology when OTP is unset
|
||||
|
||||
QCN9274 hw2.0 needs the single- or dual-MAC selection before target
|
||||
capabilities can be queried. A zero or erased OTP board ID cannot describe
|
||||
the topology, so the driver currently defaults to single MAC.
|
||||
|
||||
Use the radio's qcom,split-phy property for this otherwise ambiguous case.
|
||||
This describes the individual device, without matching a machine name or
|
||||
changing the default for other radios on the same system.
|
||||
|
||||
Keep valid OTP authoritative and retain the existing fallback for devices
|
||||
without the property and for other hardware revisions. Leave later QMI
|
||||
capability discovery and WMI mode selection unchanged.
|
||||
|
||||
Link: https://github.com/torvalds/linux/commit/af9bc78d14fbe77db6e7526efaced162060f27bc
|
||||
Signed-off-by: Satoshi Ikeuchi <satosan.ikm@gmail.com>
|
||||
---
|
||||
--- a/drivers/net/wireless/ath/ath12k/mhi.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/mhi.c
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <linux/msi.h>
|
||||
#include <linux/pci.h>
|
||||
+#include <linux/property.h>
|
||||
#include <linux/firmware.h>
|
||||
|
||||
#include "core.h"
|
||||
@@ -209,8 +210,11 @@ int ath12k_mhi_register(struct ath12k_pc
|
||||
board_id = u32_get_bits(board_id, OTP_BOARD_ID_MASK);
|
||||
|
||||
if (!board_id || (board_id == OTP_INVALID_BOARD_ID)) {
|
||||
+ dualmac = ab->hw_rev == ATH12K_HW_QCN9274_HW20 &&
|
||||
+ device_property_read_bool(ab->dev, "qcom,split-phy");
|
||||
ath12k_dbg(ab, ATH12K_DBG_BOOT,
|
||||
- "failed to read board id\n");
|
||||
+ "invalid OTP, selecting %s-mac\n",
|
||||
+ dualmac ? "dual" : "single");
|
||||
} else if (board_id & OTP_VALID_DUALMAC_BOARD_ID_MASK) {
|
||||
dualmac = true;
|
||||
ath12k_dbg(ab, ATH12K_DBG_BOOT,
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Satoshi Ikeuchi <satosan.ikm@gmail.com>
|
||||
Date: Tue, 29 Sep 2026 00:00:00 +0000
|
||||
Subject: [RFC PATCH] dt-bindings: net: wireless: ath12k: describe split-PHY
|
||||
configuration
|
||||
|
||||
QCN9274 supports single-PHY and split-PHY configurations. Some fixed
|
||||
split-PHY designs do not identify that configuration through the OTP
|
||||
board identifier.
|
||||
|
||||
Describe the fixed configuration with an optional qcom,split-phy flag
|
||||
on the radio node. Use the existing QCN9274 binding, whose WSI ports
|
||||
are optional, without changing WCN7850 requirements or WSI connections.
|
||||
|
||||
This is a proposed binding for review.
|
||||
|
||||
Signed-off-by: Satoshi Ikeuchi <satosan.ikm@gmail.com>
|
||||
---
|
||||
.../bindings/net/wireless/qcom,ath12k-wsi.yaml | 28 +++++++++++++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
|
||||
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
|
||||
@@ -52,6 +52,14 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
+ qcom,split-phy:
|
||||
+ type: boolean
|
||||
+ description:
|
||||
+ The device has a fixed split-PHY configuration with two independent
|
||||
+ PHYs. This property describes the radio topology on designs where
|
||||
+ the device's OTP board identifier does not identify that configuration.
|
||||
+ Only applicable to QCN9274 hw2.0.
|
||||
+
|
||||
qcom,calibration-variant:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description:
|
||||
@@ -201,3 +209,23 @@ examples:
|
||||
};
|
||||
};
|
||||
};
|
||||
+ - |
|
||||
+ pcie {
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ pcie@0 {
|
||||
+ device_type = "pci";
|
||||
+ reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+
|
||||
+ wifi@0 {
|
||||
+ compatible = "pci17cb,1109";
|
||||
+ reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
+
|
||||
+ qcom,split-phy;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
Reference in new issue
Block a user