* [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
@ 2024-11-05 18:04 Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI Raj Kumar Bhagat
` (5 more replies)
0 siblings, 6 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-11-05 18:04 UTC (permalink / raw)
To: ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm, Raj Kumar Bhagat
The RDP433 is a Qualcomm Reference Design Platform based on the
IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
PCIe2, and PCIe3. These devices are also interconnected via a WLAN
Serial Interface (WSI) connection. This WSI connection is essential
for exchanging control information among these devices.
This patch series describes the WSI interface found in QCN9274 in
device tree and uses this device tree node in the Ath12k driver to get the
details of WSI connection for Multi Link Operation (MLO) among multiple
QCN9274 devices.
NOTES:
1. As ath12k MLO patches are not ready yet, this patchset does not apply
to the ath.git ath-next branch and that's why the patchset is marked
as RFC. These are the work-in-progress patches we have at the moment.
The full set of MLO patches is available at:
https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
2. The dependency marked below applies only to the DTS patch. The
dt-bindings patches do not have this dependency.
Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
v3:
- Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
devices with WSI interface.
- The "wsi" node is dropped.
- The property "qcom,wsi-master" renamed to "qcom,wsi-controller".
- Updated description for "qcom,wsi-controller".
- The "qcom,wsi-group-id" property is dropped.
- The ath12k driver changes added to dynamically assign wsi group IDs.
- DTS changes done to make device node name generic (wifi).
- The patch series title is updated.
v2: https://patchwork.kernel.org/project/linux-wireless/cover/20241029173050.2188150-1-quic_rajkbhag@quicinc.com/
- "Graph with endpoint” is used to define the actual WSI connection in
the DT binding.
- The qcom,wsi-index and qcom,wsi-num-devices properties are dropped
from the binding. These are now determined in the driver using the
graph with endpoint.
- The qcom,wsi-master property is added to the binding to define the
WSI master.
- The qcom,ath12k-calibration-variant property is added to the binding
for ath12k devices.
- DTS changes are made based on the “graph with endpoint” binding.
- The ath12k driver is updated to read graph nodes, determine the number
of devices in WSI, and assign the wsi-index for each device.
- The ath12k driver now assigns hardware link IDs based on the order of
WSI connections.
v1: https://patchwork.kernel.org/project/linux-wireless/cover/20241023060352.605019-1-quic_rajkbhag@quicinc.com/
Aditya Kumar Singh (1):
wifi: ath12k: Assign unique hardware link IDs during QMI host
capability
Harshitha Prem (1):
wifi: ath12k: Parse multiple device information from device tree
Karthikeyan Periyasamy (1):
wifi: ath12k: Send partner device details in QMI MLO capability
Raj Kumar Bhagat (2):
dt-bindings: net: wireless: Describe ath12k PCI module with WSI
arm64: dts: qcom: ipq9574: Add WiFi nodes for RDP433
.../net/wireless/qcom,ath12k-wsi.yaml | 205 ++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 105 ++++++++-
drivers/net/wireless/ath/ath12k/core.c | 178 +++++++++++++--
drivers/net/wireless/ath/ath12k/core.h | 10 +
drivers/net/wireless/ath/ath12k/qmi.c | 120 ++++++++--
5 files changed, 588 insertions(+), 30 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
base-commit: 7603a9349b2fc64152a734f253cf8d8e5befb6db
prerequisite-patch-id: d1334693a2e8da65ae7b458ee4adb459850ad2e7
prerequisite-patch-id: 87f73b342f67c2636390a7da1294cee90f1fff48
prerequisite-patch-id: 46d8302766527d16cdd90c59ded6cbae0ec4ad70
prerequisite-patch-id: b17db6783b1c35f3e8812f621730fe0a1a57a14e
--
2.34.1
^ permalink raw reply [flat|nested] 19+ messages in thread
* [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
@ 2024-11-05 18:04 ` Raj Kumar Bhagat
2024-11-07 17:36 ` Jeff Johnson
2024-12-20 20:03 ` Konrad Dybcio
2024-11-05 18:04 ` [RFC PATCH v3 2/5] wifi: ath12k: Parse multiple device information from device tree Raj Kumar Bhagat
` (4 subsequent siblings)
5 siblings, 2 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-11-05 18:04 UTC (permalink / raw)
To: ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm, Raj Kumar Bhagat
The QCN9274 WiFi device supports WSI (WLAN Serial Interface). WSI is used
to exchange specific control information across radios using a doorbell
mechanism. This WSI connection is essential for exchanging control
information among these devices. The WSI interface in the QCN9274 includes
TX and RX ports, which are used to connect multiple WSI-supported devices
together, forming a WSI group.
Describe QCN9274 PCI wifi device with WSI interface.
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
---
.../net/wireless/qcom,ath12k-wsi.yaml | 205 ++++++++++++++++++
1 file changed, 205 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
new file mode 100644
index 000000000000..1e2822a33895
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
@@ -0,0 +1,205 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k-wsi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface
+
+maintainers:
+ - Jeff Johnson <quic_jjohnson@quicinc.com>
+ - Kalle Valo <kvalo@kernel.org>
+
+description:
+ Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface.
+
+properties:
+ compatible:
+ enum:
+ - pci17cb,1109 # QCN9274
+
+ reg:
+ maxItems: 1
+
+ qcom,ath12k-calibration-variant:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ String to uniquely identify variant of the calibration data for designs
+ with colliding bus and device ids
+
+ qcom,wsi-controller:
+ type: boolean
+ description:
+ The WSI controller device in the WSI group aids (is capable) to
+ synchronize the Timing Synchronization Function (TSF) clock across
+ all devices in the WSI group.
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+ description: |
+ The ath12k devices (QCN9274) feature WSI support. WSI stands for
+ WLAN Serial Interface. It is used for the exchange of specific
+ control information across radios based on the doorbell mechanism.
+ This WSI connection is essential to exchange control information
+ among these devices.
+
+ Diagram to represent one WSI connection (one WSI group) among
+ three devices.
+
+ +-------+ +-------+ +-------+
+ | pcie1 | | pcie2 | | pcie3 |
+ | | | | | |
+ +----->| wsi |------->| wsi |------->| wsi |-----+
+ | | grp 0 | | grp 0 | | grp 0 | |
+ | +-------+ +-------+ +-------+ |
+ +------------------------------------------------------+
+
+ Diagram to represent two WSI connections (two separate WSI groups)
+ among four devices.
+
+ +-------+ +-------+ +-------+ +-------+
+ | pcie0 | | pcie1 | | pcie2 | | pcie3 |
+ | | | | | | | |
+ +-->| wsi |--->| wsi |--+ +-->| wsi |--->| wsi |--+
+ | | grp 0 | | grp 0 | | | | grp 1 | | grp 1 | |
+ | +-------+ +-------+ | | +-------+ +-------+ |
+ +---------------------------+ +---------------------------+
+
+ These ports are used to connect multiple WSI supported devices to
+ form a WSI group.
+
+ properties:
+ port@0:
+ $ref: /schemas/graph.yaml#/properties/port
+ description:
+ This is the TX port of WSI interface. It is attached to the RX
+ port of the next device in the WSI connection.
+
+ port@1:
+ $ref: /schemas/graph.yaml#/properties/port
+ description:
+ This is the RX port of WSI interface. It is attached to the TX
+ port of the previous device in the WSI connection.
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+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,ath12k-calibration-variant = "RDP433_1";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wifi1_wsi_tx: endpoint {
+ remote-endpoint = <&wifi2_wsi_rx>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wifi1_wsi_rx: endpoint {
+ remote-endpoint = <&wifi3_wsi_tx>;
+ };
+ };
+ };
+ };
+ };
+
+ pcie@1 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x1 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi@0 {
+ compatible = "pci17cb,1109";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+
+ qcom,ath12k-calibration-variant = "RDP433_2";
+ qcom,wsi-controller;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wifi2_wsi_tx: endpoint {
+ remote-endpoint = <&wifi3_wsi_rx>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wifi2_wsi_rx: endpoint {
+ remote-endpoint = <&wifi1_wsi_tx>;
+ };
+ };
+ };
+ };
+ };
+
+ pcie@2 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x2 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi@0 {
+ compatible = "pci17cb,1109";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+
+ qcom,ath12k-calibration-variant = "RDP433_3";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wifi3_wsi_tx: endpoint {
+ remote-endpoint = <&wifi1_wsi_rx>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wifi3_wsi_rx: endpoint {
+ remote-endpoint = <&wifi2_wsi_tx>;
+ };
+ };
+ };
+ };
+ };
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC PATCH v3 2/5] wifi: ath12k: Parse multiple device information from device tree
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI Raj Kumar Bhagat
@ 2024-11-05 18:04 ` Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 3/5] wifi: ath12k: Send partner device details in QMI MLO capability Raj Kumar Bhagat
` (3 subsequent siblings)
5 siblings, 0 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-11-05 18:04 UTC (permalink / raw)
To: ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm, Harshitha Prem,
Aditya Kumar Singh, Raj Kumar Bhagat
From: Harshitha Prem <quic_hprem@quicinc.com>
Currently, a single device is part of the device group abstraction.
However, for multi-link operations, multiple devices need to be combined.
This multi-device grouping is done via WSI (WLAN Serial Interface), which
is described in the device tree. Information about different WSI groups
and the number of devices involved in each group can be parsed from the
device tree.
Add changes to parse the device tree and determine WSI information, such
as the different WSI groups and the number of devices per WSI group.
Assign WSI index zero to the WSI controller device (to synchronize the
clock among the devices within the WSI group), and increment the WSI index
of each device in the order of the WSI connection.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Co-developed-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Co-developed-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
---
drivers/net/wireless/ath/ath12k/core.c | 178 +++++++++++++++++++++++--
drivers/net/wireless/ath/ath12k/core.h | 8 ++
2 files changed, 173 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 3f0f44cbdb4c..4170d7fcd438 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -9,6 +9,7 @@
#include <linux/remoteproc.h>
#include <linux/firmware.h>
#include <linux/of.h>
+#include <linux/of_graph.h>
#include "core.h"
#include "dp_tx.h"
#include "dp_rx.h"
@@ -1389,20 +1390,24 @@ bool ath12k_core_hw_group_create_ready(struct ath12k_hw_group *ag)
}
static struct ath12k_hw_group *
-ath12k_core_hw_group_alloc(u8 id, u8 max_devices)
+ath12k_core_hw_group_alloc(struct ath12k_base *ab)
{
struct ath12k_hw_group *ag;
+ int count = 0;
lockdep_assert_held(&ath12k_ag_list_lock);
+ list_for_each_entry(ag, &ath12k_hw_group_list, list)
+ count++;
+
ag = kzalloc(sizeof(*ag), GFP_KERNEL);
if (!ag)
return NULL;
- ag->id = id;
- ag->num_devices = max_devices;
+ ag->id = count;
list_add(&ag->list, &ath12k_hw_group_list);
mutex_init(&ag->mutex_lock);
+ ag->mlo_capable = false;
return ag;
}
@@ -1417,34 +1422,173 @@ static void ath12k_core_hw_group_free(struct ath12k_hw_group *ag)
mutex_unlock(&ath12k_ag_list_lock);
}
+static struct ath12k_hw_group *
+ath12k_core_hw_group_find_by_DT(struct ath12k_base *ab)
+{
+ struct ath12k_hw_group *ag;
+ int i;
+
+ if (!ab->dev->of_node)
+ return NULL;
+
+ list_for_each_entry(ag, &ath12k_hw_group_list, list)
+ for (i = 0; i < ag->num_devices; i++)
+ if (ag->wsi_node[i] == ab->dev->of_node)
+ return ag;
+
+ return NULL;
+}
+
+static int ath12k_core_get_wsi_info(struct ath12k_hw_group *ag,
+ struct ath12k_base *ab)
+{
+ struct device_node *wsi_dev = ab->dev->of_node, *next_wsi_dev;
+ struct device_node *tx_endpoint, *next_rx_endpoint;
+ int device_count = 0;
+
+ next_wsi_dev = wsi_dev;
+
+ if (!next_wsi_dev)
+ return -ENODEV;
+
+ do {
+ ag->wsi_node[device_count] = next_wsi_dev;
+
+ tx_endpoint = of_graph_get_endpoint_by_regs(next_wsi_dev, 0, -1);
+ if (!tx_endpoint) {
+ of_node_put(next_wsi_dev);
+ return -ENODEV;
+ }
+
+ next_rx_endpoint = of_graph_get_remote_endpoint(tx_endpoint);
+ if (!next_rx_endpoint) {
+ of_node_put(next_wsi_dev);
+ of_node_put(tx_endpoint);
+ return -ENODEV;
+ }
+
+ of_node_put(tx_endpoint);
+ of_node_put(next_wsi_dev);
+ next_wsi_dev = of_graph_get_port_parent(next_rx_endpoint);
+ if (!next_wsi_dev) {
+ of_node_put(next_rx_endpoint);
+ return -ENODEV;
+ }
+ of_node_put(next_rx_endpoint);
+
+ device_count++;
+ if (device_count > ATH12K_MAX_SOCS) {
+ ath12k_warn(ab, "device count in DT %d is more than limit %d\n",
+ device_count, ATH12K_MAX_SOCS);
+ of_node_put(next_wsi_dev);
+ return -EINVAL;
+ }
+ } while (wsi_dev != next_wsi_dev);
+
+ of_node_put(next_wsi_dev);
+ ag->num_devices = device_count;
+
+ return 0;
+}
+
+static int ath12k_core_get_wsi_index(struct ath12k_hw_group *ag,
+ struct ath12k_base *ab)
+{
+ int i, wsi_controller_index = -1, node_index = -1;
+
+ for (i = 0; i < ag->num_devices; i++) {
+ if (of_property_read_bool(ag->wsi_node[i], "qcom,wsi-controller"))
+ wsi_controller_index = i;
+ if (ag->wsi_node[i] == ab->dev->of_node)
+ node_index = i;
+ }
+
+ if (wsi_controller_index == -1) {
+ ath12k_dbg(ab, ATH12K_DBG_BOOT, "WSI controller is not defined in DT");
+ return -EINVAL;
+ }
+
+ if (node_index == -1) {
+ ath12k_dbg(ab, ATH12K_DBG_BOOT, "unable to get WSI node index");
+ return -EINVAL;
+ }
+
+ ab->wsi_info.index = (ag->num_devices + node_index - wsi_controller_index) %
+ ag->num_devices;
+
+ return 0;
+}
+
static struct ath12k_hw_group *ath12k_core_assign_hw_group(struct ath12k_base *ab)
{
struct ath12k_hw_group *ag;
- u32 group_id = ATH12K_INVALID_GROUP_ID;
+ struct ath12k_wsi_info *wsi = &ab->wsi_info;
lockdep_assert_held(&ath12k_ag_list_lock);
/* The grouping of multiple devices will be done based on device tree file.
- * TODO: device tree file parsing to know about the devices involved in group.
- *
- * The platforms that do not have any valid group information would have each
- * device to be part of its own invalid group.
+ * The platforms that do not have any valid group information would have
+ * each device to be part of its own invalid group.
*
- * Currently, we are not parsing any device tree information and hence, grouping
- * of multiple devices is not involved. Thus, single device is added to device
- * group.
+ * We use group id ATH12K_INVALID_GROUP_ID for single device group
+ * which didn't have dt entry or wrong dt entry, there could be many
+ * groups with same group id, i.e ATH12K_INVALID_GROUP_ID. So
+ * default group id of ATH12K_INVALID_GROUP_ID combined with
+ * num devices in ath12k_hw_group determines if the group is
+ * multi device or single device group
*/
- ag = ath12k_core_hw_group_alloc(group_id, 1);
+
+ ag = ath12k_core_hw_group_find_by_DT(ab);
+ if (!ag) {
+ ag = ath12k_core_hw_group_alloc(ab);
+ if (!ag) {
+ ath12k_warn(ab, "unable to create new hw group\n");
+ return NULL;
+ }
+
+ if (ath12k_core_get_wsi_info(ag, ab) ||
+ ath12k_core_get_wsi_index(ag, ab)) {
+ ath12k_dbg(ab, ATH12K_DBG_BOOT,
+ "unable to get WSI Info from DT, grouping single device");
+ ag->id = ATH12K_INVALID_GROUP_ID;
+ ag->num_devices = 1;
+ memset(ag->wsi_node, 0, sizeof(ag->wsi_node));
+ wsi->index = 0;
+ }
+ goto exit;
+ } else if (test_bit(ATH12K_GROUP_FLAG_UNREGISTER, &ag->flags)) {
+ ath12k_dbg(ab, ATH12K_DBG_BOOT, "group id %d in unregister state\n",
+ ag->id);
+ goto invalid_group;
+ } else {
+ if (ath12k_core_get_wsi_index(ag, ab))
+ goto invalid_group;
+ goto exit;
+ }
+
+invalid_group:
+ ag = ath12k_core_hw_group_alloc(ab);
if (!ag) {
ath12k_warn(ab, "unable to create new hw group\n");
return NULL;
}
+ ag->id = ATH12K_INVALID_GROUP_ID;
+ ag->num_devices = 1;
+ wsi->index = 0;
ath12k_dbg(ab, ATH12K_DBG_BOOT, "Single device is added to hardware group\n");
+exit:
+ if (ag->num_probed >= ag->num_devices) {
+ ath12k_warn(ab, "unable to add new device to group, max limit reached\n");
+ goto invalid_group;
+ }
ab->device_id = ag->num_probed++;
ag->ab[ab->device_id] = ab;
ab->ag = ag;
- ag->mlo_capable = false;
+
+ ath12k_dbg(ab, ATH12K_DBG_BOOT,
+ "WSI info: group-id: %d, num-devices: %d, index: %d",
+ ag->id, ag->num_devices, wsi->index);
return ag;
}
@@ -1511,6 +1655,14 @@ static void ath12k_core_hw_group_cleanup(struct ath12k_hw_group *ag)
return;
mutex_lock(&ag->mutex_lock);
+
+ if (test_bit(ATH12K_GROUP_FLAG_UNREGISTER, &ag->flags)) {
+ mutex_unlock(&ag->mutex_lock);
+ return;
+ }
+
+ set_bit(ATH12K_GROUP_FLAG_UNREGISTER, &ag->flags);
+
ath12k_core_hw_group_stop(ag);
for (i = 0; i < ag->num_devices; i++) {
diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
index cde35616ba56..619407398a99 100644
--- a/drivers/net/wireless/ath/ath12k/core.h
+++ b/drivers/net/wireless/ath/ath12k/core.h
@@ -211,6 +211,7 @@ enum ath12k_scan_state {
enum ath12k_hw_group_flags {
ATH12K_GROUP_FLAG_REGISTERED,
+ ATH12K_GROUP_FLAG_UNREGISTER,
};
enum ath12k_dev_flags {
@@ -843,6 +844,12 @@ struct ath12k_hw_group {
struct ath12k_hw *ah[ATH12K_GROUP_MAX_RADIO];
u8 num_hw;
bool mlo_capable;
+ struct device_node *wsi_node[ATH12K_MAX_SOCS];
+};
+
+/* Holds WSI info specific to each device, excluding WSI group info */
+struct ath12k_wsi_info {
+ u32 index;
};
/* Master structure to hold the hw data which may be used in core module */
@@ -1026,6 +1033,7 @@ struct ath12k_base {
struct notifier_block panic_nb;
struct ath12k_hw_group *ag;
+ struct ath12k_wsi_info wsi_info;
/* must be last */
u8 drv_priv[] __aligned(sizeof(void *));
--
2.34.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC PATCH v3 3/5] wifi: ath12k: Send partner device details in QMI MLO capability
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 2/5] wifi: ath12k: Parse multiple device information from device tree Raj Kumar Bhagat
@ 2024-11-05 18:04 ` Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 4/5] wifi: ath12k: Assign unique hardware link IDs during QMI host capability Raj Kumar Bhagat
` (2 subsequent siblings)
5 siblings, 0 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-11-05 18:04 UTC (permalink / raw)
To: ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm, Karthikeyan Periyasamy,
Harshitha Prem, Raj Kumar Bhagat
From: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Currently, QMI MLO host capability is sent with the details of
local links and hw_link id only for particular device but in case
of multi device group abstraction, it has to include the details
of hw_link_id, num_local_links of every partner device that is
involved in the group during QMI MLO capability exchange.
Add changes to send partner device details in QMI MLO capability
exchange.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
---
drivers/net/wireless/ath/ath12k/qmi.c | 86 ++++++++++++++++++++++-----
1 file changed, 70 insertions(+), 16 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index 5ebfe13b5313..689171b7b19f 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -2016,17 +2016,19 @@ static const struct qmi_elem_info qmi_wlanfw_wlan_ini_resp_msg_v01_ei[] = {
},
};
-static void ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
- struct qmi_wlanfw_host_cap_req_msg_v01 *req)
+static int ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
+ struct qmi_wlanfw_host_cap_req_msg_v01 *req)
{
struct wlfw_host_mlo_chip_info_s_v01 *info;
+ struct ath12k_hw_group *ag = ab->ag;
+ struct ath12k_base *partner_ab;
u8 hw_link_id = 0;
- int i;
+ int i, j, ret;
- if (!ab->ag->mlo_capable) {
+ if (!ag->mlo_capable) {
ath12k_dbg(ab, ATH12K_DBG_QMI,
"MLO is disabled hence skip QMI MLO cap");
- return;
+ return 0;
}
if (!ab->qmi.num_radios || ab->qmi.num_radios == U8_MAX) {
@@ -2035,7 +2037,13 @@ static void ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
ath12k_dbg(ab, ATH12K_DBG_QMI,
"skip QMI MLO cap due to invalid num_radio %d\n",
ab->qmi.num_radios);
- return;
+ return 0;
+ }
+
+ if (ab->device_id == ATH12K_INVALID_DEVICE_ID) {
+ ath12k_err(ab, "failed to send MLO cap due to invalid device id\n");
+ ret = -EINVAL;
+ return ret;
}
req->mlo_capable_valid = 1;
@@ -2043,27 +2051,71 @@ static void ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
req->mlo_chip_id_valid = 1;
req->mlo_chip_id = ab->device_id;
req->mlo_group_id_valid = 1;
- req->mlo_group_id = 0;
+ req->mlo_group_id = ag->id;
req->max_mlo_peer_valid = 1;
/* Max peer number generally won't change for the same device
* but needs to be synced with host driver.
*/
req->max_mlo_peer = ab->hw_params->max_mlo_peer;
req->mlo_num_chips_valid = 1;
- req->mlo_num_chips = 1;
+ req->mlo_num_chips = ag->num_devices;
- info = &req->mlo_chip_info[0];
- info->chip_id = ab->device_id;
- info->num_local_links = ab->qmi.num_radios;
+ mutex_lock(&ag->mutex_lock);
+ for (i = 0; i < ag->num_devices; i++) {
+ info = &req->mlo_chip_info[i];
+ partner_ab = ag->ab[i];
+
+ if (partner_ab->device_id == ATH12K_INVALID_DEVICE_ID) {
+ ath12k_err(ab, "failed to send MLO cap due to invalid partner device id\n");
+ ret = -EINVAL;
+ goto device_cleanup;
+ }
+
+ info->chip_id = partner_ab->device_id;
+ info->num_local_links = partner_ab->qmi.num_radios;
- for (i = 0; i < info->num_local_links; i++) {
- info->hw_link_id[i] = hw_link_id;
- info->valid_mlo_link_id[i] = 1;
+ ath12k_dbg(ab, ATH12K_DBG_QMI, "MLO device id %d num_link %d\n",
+ info->chip_id, info->num_local_links);
- hw_link_id++;
+ for (j = 0; j < info->num_local_links; j++) {
+ info->hw_link_id[j] = hw_link_id;
+ info->valid_mlo_link_id[j] = 1;
+
+ hw_link_id++;
+ }
}
+ if (hw_link_id <= 0)
+ ag->mlo_capable = false;
+
req->mlo_chip_info_valid = 1;
+
+ mutex_unlock(&ag->mutex_lock);
+ return 0;
+
+device_cleanup:
+ for (i = i - 1; i >= 0; i--) {
+ info = &req->mlo_chip_info[i];
+
+ memset(info, 0, sizeof(*info));
+ }
+
+ req->mlo_num_chips = 0;
+ req->mlo_num_chips_valid = 0;
+
+ req->max_mlo_peer = 0;
+ req->max_mlo_peer_valid = 0;
+ req->mlo_group_id = 0;
+ req->mlo_group_id_valid = 0;
+ req->mlo_chip_id = 0;
+ req->mlo_chip_id_valid = 0;
+ req->mlo_capable = 0;
+ req->mlo_capable_valid = 0;
+
+ ag->mlo_capable = false;
+ mutex_unlock(&ag->mutex_lock);
+
+ return ret;
}
static int ath12k_qmi_host_cap_send(struct ath12k_base *ab)
@@ -2111,7 +2163,9 @@ static int ath12k_qmi_host_cap_send(struct ath12k_base *ab)
req.nm_modem |= PLATFORM_CAP_PCIE_GLOBAL_RESET;
}
- ath12k_host_cap_parse_mlo(ab, &req);
+ ret = ath12k_host_cap_parse_mlo(ab, &req);
+ if (ret < 0)
+ goto out;
ret = qmi_txn_init(&ab->qmi.handle, &txn,
qmi_wlanfw_host_cap_resp_msg_v01_ei, &resp);
--
2.34.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC PATCH v3 4/5] wifi: ath12k: Assign unique hardware link IDs during QMI host capability
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
` (2 preceding siblings ...)
2024-11-05 18:04 ` [RFC PATCH v3 3/5] wifi: ath12k: Send partner device details in QMI MLO capability Raj Kumar Bhagat
@ 2024-11-05 18:04 ` Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 5/5] arm64: dts: qcom: ipq9574: Add WiFi nodes for RDP433 Raj Kumar Bhagat
2024-11-07 10:23 ` [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Krzysztof Kozlowski
5 siblings, 0 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-11-05 18:04 UTC (permalink / raw)
To: ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm, Aditya Kumar Singh,
Raj Kumar Bhagat
From: Aditya Kumar Singh <quic_adisi@quicinc.com>
Currently, in the QMI host capability, the device index, the number of
local links, and the corresponding hardware link IDs are sent. The
hardware link ID assignment is based on the local variable `hw_link_id`,
which starts from 0 and ranges up to `num_local_links` in the device.
Starting from 0 is not ideal because it can result in the same link ID
being assigned to different devices in certain scenarios (e.g., split MAC).
Additionally, for multi link operations the firmware expects the hardware
link IDs in the same order as the Wireless Serial Interface (WSI)
connection.
Hence, for MLO to function seamlessly, the hardware link IDs across
devices need to be unique and should follow the order of the WSI
connection.
To address this, a previous change read the WSI index from the Device Tree
(DT) and stored it. Use this WSI index to determine the starting hardware
link IDs for each device, ensuring uniqueness and correct order across all
devices.
While at it, add debug prints to clearly show the MLO capability
advertisement sent during QMI host capability exchange.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Co-developed-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
---
drivers/net/wireless/ath/ath12k/core.h | 2 ++
drivers/net/wireless/ath/ath12k/qmi.c | 40 ++++++++++++++++++++++++--
2 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
index 619407398a99..a532cfdc7558 100644
--- a/drivers/net/wireless/ath/ath12k/core.h
+++ b/drivers/net/wireless/ath/ath12k/core.h
@@ -845,11 +845,13 @@ struct ath12k_hw_group {
u8 num_hw;
bool mlo_capable;
struct device_node *wsi_node[ATH12K_MAX_SOCS];
+ bool hw_link_id_init_done;
};
/* Holds WSI info specific to each device, excluding WSI group info */
struct ath12k_wsi_info {
u32 index;
+ u32 hw_link_id_base;
};
/* Master structure to hold the hw data which may be used in core module */
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index 689171b7b19f..ab34f4788867 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -2016,6 +2016,25 @@ static const struct qmi_elem_info qmi_wlanfw_wlan_ini_resp_msg_v01_ei[] = {
},
};
+static void ath12k_host_cap_hw_link_id_init(struct ath12k_hw_group *ag)
+{
+ struct ath12k_base *ab, *partner_ab;
+ int i, j, hw_id_base;
+
+ for (i = 0; i < ag->num_devices; i++) {
+ hw_id_base = 0;
+ ab = ag->ab[i];
+ for (j = 0; j < ag->num_devices; j++) {
+ partner_ab = ag->ab[j];
+ if (partner_ab->wsi_info.index >= ab->wsi_info.index)
+ continue;
+ hw_id_base += partner_ab->qmi.num_radios;
+ }
+ ab->wsi_info.hw_link_id_base = hw_id_base;
+ }
+ ag->hw_link_id_init_done = true;
+}
+
static int ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
struct qmi_wlanfw_host_cap_req_msg_v01 *req)
{
@@ -2060,7 +2079,17 @@ static int ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
req->mlo_num_chips_valid = 1;
req->mlo_num_chips = ag->num_devices;
+ ath12k_dbg(ab, ATH12K_DBG_QMI, "MLO Capability advertisement:");
+ ath12k_dbg(ab, ATH12K_DBG_QMI, " * device_id: %d", req->mlo_chip_id);
+ ath12k_dbg(ab, ATH12K_DBG_QMI, " * group_id: %d", req->mlo_group_id);
+ ath12k_dbg(ab, ATH12K_DBG_QMI, " * num_devices: %d", req->mlo_num_chips);
+ ath12k_dbg(ab, ATH12K_DBG_QMI, " * Devices info:");
+
mutex_lock(&ag->mutex_lock);
+
+ if (!ag->hw_link_id_init_done)
+ ath12k_host_cap_hw_link_id_init(ag);
+
for (i = 0; i < ag->num_devices; i++) {
info = &req->mlo_chip_info[i];
partner_ab = ag->ab[i];
@@ -2074,12 +2103,17 @@ static int ath12k_host_cap_parse_mlo(struct ath12k_base *ab,
info->chip_id = partner_ab->device_id;
info->num_local_links = partner_ab->qmi.num_radios;
- ath12k_dbg(ab, ATH12K_DBG_QMI, "MLO device id %d num_link %d\n",
- info->chip_id, info->num_local_links);
+ ath12k_dbg(ab, ATH12K_DBG_QMI, " * device_id: %d",
+ info->chip_id);
+ ath12k_dbg(ab, ATH12K_DBG_QMI, " * num_links: %d",
+ info->num_local_links);
for (j = 0; j < info->num_local_links; j++) {
- info->hw_link_id[j] = hw_link_id;
+ info->hw_link_id[j] = partner_ab->wsi_info.hw_link_id_base + j;
info->valid_mlo_link_id[j] = 1;
+ ath12k_dbg(ab, ATH12K_DBG_QMI,
+ " * hw_link_id: %d\n",
+ info->hw_link_id[j]);
hw_link_id++;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [RFC PATCH v3 5/5] arm64: dts: qcom: ipq9574: Add WiFi nodes for RDP433
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
` (3 preceding siblings ...)
2024-11-05 18:04 ` [RFC PATCH v3 4/5] wifi: ath12k: Assign unique hardware link IDs during QMI host capability Raj Kumar Bhagat
@ 2024-11-05 18:04 ` Raj Kumar Bhagat
2024-11-07 10:23 ` [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Krzysztof Kozlowski
5 siblings, 0 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-11-05 18:04 UTC (permalink / raw)
To: ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm, Raj Kumar Bhagat
The RDP433 is a Qualcomm Reference Design Platform based on the
IPQ9574. It has three QCN9274 WiFi devices connected to PCIe1, PCIe2,
and PCIe3. These devices are also connected among themselves via
WSI connection. This WSI connection is essential to exchange control
information among these devices
The WSI connection in RDP433 is represented below:
+-------+ +-------+ +-------+
| pcie1 | | pcie2 | | pcie3 |
| | | | | |
+----->| wsi |------->| wsi |------->| wsi |-----+
| | grp 0 | | grp 0 | | grp 0 | |
| +-------+ +-------+ +-------+ |
+------------------------------------------------------+
Based on the above, the wifi node properties for QCN9274 at pcie2 are
(considering QCN9274 at pcie2 is WSI controller):
- qcom,wsi-controller
- ports:
tx-port (port@0): endpoint at pcie3 RX port.
rx-port (port@1): endpoint at pcie1 TX port.
Hence, add WiFi nodes with WSI properties for all three QCN9274
devices connected to RDP433.
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
---
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 105 +++++++++++++++++++-
1 file changed, 104 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index 165ebbb59511..a490a0d51fbb 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -3,7 +3,7 @@
* IPQ9574 RDP433 board device tree source
*
* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
/dts-v1/;
@@ -27,6 +27,40 @@ &pcie1 {
perst-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
status = "okay";
+
+ 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>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wifi1_wsi_tx: endpoint {
+ remote-endpoint = <&wifi2_wsi_rx>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wifi1_wsi_rx: endpoint {
+ remote-endpoint = <&wifi3_wsi_tx>;
+ };
+ };
+ };
+ };
+ };
};
&pcie2_phy {
@@ -40,6 +74,42 @@ &pcie2 {
perst-gpios = <&tlmm 29 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
status = "okay";
+
+ 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,wsi-controller;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wifi2_wsi_tx: endpoint {
+ remote-endpoint = <&wifi3_wsi_rx>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wifi2_wsi_rx: endpoint {
+ remote-endpoint = <&wifi1_wsi_tx>;
+ };
+ };
+ };
+ };
+ };
};
&pcie3_phy {
@@ -53,6 +123,39 @@ &pcie3 {
perst-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
status = "okay";
+
+ 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>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wifi3_wsi_tx: endpoint {
+ remote-endpoint = <&wifi1_wsi_rx>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ wifi3_wsi_rx: endpoint {
+ remote-endpoint = <&wifi2_wsi_tx>;
+ };
+ };
+ };
+ };
+ };
};
&sdhc_1 {
--
2.34.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
` (4 preceding siblings ...)
2024-11-05 18:04 ` [RFC PATCH v3 5/5] arm64: dts: qcom: ipq9574: Add WiFi nodes for RDP433 Raj Kumar Bhagat
@ 2024-11-07 10:23 ` Krzysztof Kozlowski
2024-11-07 11:06 ` Dmitry Baryshkov
5 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-07 10:23 UTC (permalink / raw)
To: Raj Kumar Bhagat, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
> The RDP433 is a Qualcomm Reference Design Platform based on the
> IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
> PCIe2, and PCIe3. These devices are also interconnected via a WLAN
> Serial Interface (WSI) connection. This WSI connection is essential
> for exchanging control information among these devices.
>
> This patch series describes the WSI interface found in QCN9274 in
> device tree and uses this device tree node in the Ath12k driver to get the
> details of WSI connection for Multi Link Operation (MLO) among multiple
> QCN9274 devices.
>
> NOTES:
> 1. As ath12k MLO patches are not ready yet, this patchset does not apply
> to the ath.git ath-next branch and that's why the patchset is marked
> as RFC. These are the work-in-progress patches we have at the moment.
> The full set of MLO patches is available at:
> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
>
> 2. The dependency marked below applies only to the DTS patch. The
> dt-bindings patches do not have this dependency.
>
> Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
> Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
>
> v3:
> - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
> devices with WSI interface.
Thanks for the changes. When you finish with testing/RFC, please send
proper version for review (just remember to keep numbering, next one is
v4 regardless whether this is RFC or not).
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-07 10:23 ` [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Krzysztof Kozlowski
@ 2024-11-07 11:06 ` Dmitry Baryshkov
2024-11-07 11:29 ` Krzysztof Kozlowski
0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2024-11-07 11:06 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Raj Kumar Bhagat, ath12k, linux-wireless, Kalle Valo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jeff Johnson, Bjorn Andersson,
Konrad Dybcio, devicetree, linux-kernel, linux-arm-msm
On Thu, Nov 07, 2024 at 11:23:20AM +0100, Krzysztof Kozlowski wrote:
> On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
> > The RDP433 is a Qualcomm Reference Design Platform based on the
> > IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
> > PCIe2, and PCIe3. These devices are also interconnected via a WLAN
> > Serial Interface (WSI) connection. This WSI connection is essential
> > for exchanging control information among these devices.
> >
> > This patch series describes the WSI interface found in QCN9274 in
> > device tree and uses this device tree node in the Ath12k driver to get the
> > details of WSI connection for Multi Link Operation (MLO) among multiple
> > QCN9274 devices.
> >
> > NOTES:
> > 1. As ath12k MLO patches are not ready yet, this patchset does not apply
> > to the ath.git ath-next branch and that's why the patchset is marked
> > as RFC. These are the work-in-progress patches we have at the moment.
> > The full set of MLO patches is available at:
> > https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
> >
> > 2. The dependency marked below applies only to the DTS patch. The
> > dt-bindings patches do not have this dependency.
> >
> > Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
> > Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
> >
> > v3:
> > - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
> > devices with WSI interface.
>
> Thanks for the changes. When you finish with testing/RFC, please send
> proper version for review (just remember to keep numbering, next one is
> v4 regardless whether this is RFC or not).
Isn't the 'RFC' being an invitation for review per the nature of the tag
itself?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-07 11:06 ` Dmitry Baryshkov
@ 2024-11-07 11:29 ` Krzysztof Kozlowski
2024-11-07 12:03 ` Dmitry Baryshkov
0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-07 11:29 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Raj Kumar Bhagat, ath12k, linux-wireless, Kalle Valo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jeff Johnson, Bjorn Andersson,
Konrad Dybcio, devicetree, linux-kernel, linux-arm-msm
On 07/11/2024 12:06, Dmitry Baryshkov wrote:
> On Thu, Nov 07, 2024 at 11:23:20AM +0100, Krzysztof Kozlowski wrote:
>> On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
>>> The RDP433 is a Qualcomm Reference Design Platform based on the
>>> IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
>>> PCIe2, and PCIe3. These devices are also interconnected via a WLAN
>>> Serial Interface (WSI) connection. This WSI connection is essential
>>> for exchanging control information among these devices.
>>>
>>> This patch series describes the WSI interface found in QCN9274 in
>>> device tree and uses this device tree node in the Ath12k driver to get the
>>> details of WSI connection for Multi Link Operation (MLO) among multiple
>>> QCN9274 devices.
>>>
>>> NOTES:
>>> 1. As ath12k MLO patches are not ready yet, this patchset does not apply
>>> to the ath.git ath-next branch and that's why the patchset is marked
>>> as RFC. These are the work-in-progress patches we have at the moment.
>>> The full set of MLO patches is available at:
>>> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
>>>
>>> 2. The dependency marked below applies only to the DTS patch. The
>>> dt-bindings patches do not have this dependency.
>>>
>>> Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
>>> Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
>>>
>>> v3:
>>> - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
>>> devices with WSI interface.
>>
>> Thanks for the changes. When you finish with testing/RFC, please send
>> proper version for review (just remember to keep numbering, next one is
>> v4 regardless whether this is RFC or not).
>
> Isn't the 'RFC' being an invitation for review per the nature of the tag
> itself?
No, RFC means patch is not ready, might change. This was brought on the
lists multiple times and some maintainers clearly ignore RFC. Including me.
>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-07 11:29 ` Krzysztof Kozlowski
@ 2024-11-07 12:03 ` Dmitry Baryshkov
2024-11-07 12:16 ` Krzysztof Kozlowski
0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2024-11-07 12:03 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Raj Kumar Bhagat, ath12k, linux-wireless, Kalle Valo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jeff Johnson, Bjorn Andersson,
Konrad Dybcio, devicetree, linux-kernel, linux-arm-msm
On Thu, 7 Nov 2024 at 11:29, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On 07/11/2024 12:06, Dmitry Baryshkov wrote:
> > On Thu, Nov 07, 2024 at 11:23:20AM +0100, Krzysztof Kozlowski wrote:
> >> On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
> >>> The RDP433 is a Qualcomm Reference Design Platform based on the
> >>> IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
> >>> PCIe2, and PCIe3. These devices are also interconnected via a WLAN
> >>> Serial Interface (WSI) connection. This WSI connection is essential
> >>> for exchanging control information among these devices.
> >>>
> >>> This patch series describes the WSI interface found in QCN9274 in
> >>> device tree and uses this device tree node in the Ath12k driver to get the
> >>> details of WSI connection for Multi Link Operation (MLO) among multiple
> >>> QCN9274 devices.
> >>>
> >>> NOTES:
> >>> 1. As ath12k MLO patches are not ready yet, this patchset does not apply
> >>> to the ath.git ath-next branch and that's why the patchset is marked
> >>> as RFC. These are the work-in-progress patches we have at the moment.
> >>> The full set of MLO patches is available at:
> >>> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
> >>>
> >>> 2. The dependency marked below applies only to the DTS patch. The
> >>> dt-bindings patches do not have this dependency.
> >>>
> >>> Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
> >>> Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
> >>>
> >>> v3:
> >>> - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
> >>> devices with WSI interface.
> >>
> >> Thanks for the changes. When you finish with testing/RFC, please send
> >> proper version for review (just remember to keep numbering, next one is
> >> v4 regardless whether this is RFC or not).
> >
> > Isn't the 'RFC' being an invitation for review per the nature of the tag
> > itself?
>
> No, RFC means patch is not ready, might change. This was brought on the
> lists multiple times and some maintainers clearly ignore RFC. Including me.
Thanks, point noted. I'll stop marking my patches with RFC tag.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-07 12:03 ` Dmitry Baryshkov
@ 2024-11-07 12:16 ` Krzysztof Kozlowski
2024-11-07 13:20 ` Dmitry Baryshkov
2024-11-11 17:57 ` Kalle Valo
0 siblings, 2 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-07 12:16 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Raj Kumar Bhagat, ath12k, linux-wireless, Kalle Valo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jeff Johnson, Bjorn Andersson,
Konrad Dybcio, devicetree, linux-kernel, linux-arm-msm
On 07/11/2024 13:03, Dmitry Baryshkov wrote:
> On Thu, 7 Nov 2024 at 11:29, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>
>> On 07/11/2024 12:06, Dmitry Baryshkov wrote:
>>> On Thu, Nov 07, 2024 at 11:23:20AM +0100, Krzysztof Kozlowski wrote:
>>>> On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
>>>>> The RDP433 is a Qualcomm Reference Design Platform based on the
>>>>> IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
>>>>> PCIe2, and PCIe3. These devices are also interconnected via a WLAN
>>>>> Serial Interface (WSI) connection. This WSI connection is essential
>>>>> for exchanging control information among these devices.
>>>>>
>>>>> This patch series describes the WSI interface found in QCN9274 in
>>>>> device tree and uses this device tree node in the Ath12k driver to get the
>>>>> details of WSI connection for Multi Link Operation (MLO) among multiple
>>>>> QCN9274 devices.
>>>>>
>>>>> NOTES:
>>>>> 1. As ath12k MLO patches are not ready yet, this patchset does not apply
>>>>> to the ath.git ath-next branch and that's why the patchset is marked
>>>>> as RFC. These are the work-in-progress patches we have at the moment.
>>>>> The full set of MLO patches is available at:
>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
>>>>>
>>>>> 2. The dependency marked below applies only to the DTS patch. The
>>>>> dt-bindings patches do not have this dependency.
>>>>>
>>>>> Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
>>>>> Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
>>>>>
>>>>> v3:
>>>>> - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
>>>>> devices with WSI interface.
>>>>
>>>> Thanks for the changes. When you finish with testing/RFC, please send
>>>> proper version for review (just remember to keep numbering, next one is
>>>> v4 regardless whether this is RFC or not).
>>>
>>> Isn't the 'RFC' being an invitation for review per the nature of the tag
>>> itself?
>>
>> No, RFC means patch is not ready, might change. This was brought on the
>> lists multiple times and some maintainers clearly ignore RFC. Including me.
>
> Thanks, point noted. I'll stop marking my patches with RFC tag.
Wait, you can keep marking them RFC! It all depends what do you want to
achieve. Get some comments on early work or actual review for something
you believe is a finished work.
I looked here briefly, no comments from me and I assume that was the
intention of RFC.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-07 12:16 ` Krzysztof Kozlowski
@ 2024-11-07 13:20 ` Dmitry Baryshkov
2024-11-11 17:57 ` Kalle Valo
1 sibling, 0 replies; 19+ messages in thread
From: Dmitry Baryshkov @ 2024-11-07 13:20 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Raj Kumar Bhagat, ath12k, linux-wireless, Kalle Valo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jeff Johnson, Bjorn Andersson,
Konrad Dybcio, devicetree, linux-kernel, linux-arm-msm
On Thu, Nov 07, 2024 at 01:16:56PM +0100, Krzysztof Kozlowski wrote:
> On 07/11/2024 13:03, Dmitry Baryshkov wrote:
> > On Thu, 7 Nov 2024 at 11:29, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> >>
> >> On 07/11/2024 12:06, Dmitry Baryshkov wrote:
> >>> On Thu, Nov 07, 2024 at 11:23:20AM +0100, Krzysztof Kozlowski wrote:
> >>>> On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
> >>>>> The RDP433 is a Qualcomm Reference Design Platform based on the
> >>>>> IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
> >>>>> PCIe2, and PCIe3. These devices are also interconnected via a WLAN
> >>>>> Serial Interface (WSI) connection. This WSI connection is essential
> >>>>> for exchanging control information among these devices.
> >>>>>
> >>>>> This patch series describes the WSI interface found in QCN9274 in
> >>>>> device tree and uses this device tree node in the Ath12k driver to get the
> >>>>> details of WSI connection for Multi Link Operation (MLO) among multiple
> >>>>> QCN9274 devices.
> >>>>>
> >>>>> NOTES:
> >>>>> 1. As ath12k MLO patches are not ready yet, this patchset does not apply
> >>>>> to the ath.git ath-next branch and that's why the patchset is marked
> >>>>> as RFC. These are the work-in-progress patches we have at the moment.
> >>>>> The full set of MLO patches is available at:
> >>>>> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
> >>>>>
> >>>>> 2. The dependency marked below applies only to the DTS patch. The
> >>>>> dt-bindings patches do not have this dependency.
> >>>>>
> >>>>> Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
> >>>>> Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
> >>>>>
> >>>>> v3:
> >>>>> - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
> >>>>> devices with WSI interface.
> >>>>
> >>>> Thanks for the changes. When you finish with testing/RFC, please send
> >>>> proper version for review (just remember to keep numbering, next one is
> >>>> v4 regardless whether this is RFC or not).
> >>>
> >>> Isn't the 'RFC' being an invitation for review per the nature of the tag
> >>> itself?
> >>
> >> No, RFC means patch is not ready, might change. This was brought on the
> >> lists multiple times and some maintainers clearly ignore RFC. Including me.
> >
> > Thanks, point noted. I'll stop marking my patches with RFC tag.
>
> Wait, you can keep marking them RFC! It all depends what do you want to
> achieve. Get some comments on early work or actual review for something
> you believe is a finished work.
>
> I looked here briefly, no comments from me and I assume that was the
> intention of RFC.
Okay
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-11-05 18:04 ` [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI Raj Kumar Bhagat
@ 2024-11-07 17:36 ` Jeff Johnson
2024-12-20 20:03 ` Konrad Dybcio
1 sibling, 0 replies; 19+ messages in thread
From: Jeff Johnson @ 2024-11-07 17:36 UTC (permalink / raw)
To: Raj Kumar Bhagat, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 11/5/2024 10:04 AM, Raj Kumar Bhagat wrote:
...
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
> @@ -0,0 +1,205 @@
...
> +maintainers:
> + - Jeff Johnson <quic_jjohnson@quicinc.com>
please replace with jjohnson@kernel.org when you post v4
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433
2024-11-07 12:16 ` Krzysztof Kozlowski
2024-11-07 13:20 ` Dmitry Baryshkov
@ 2024-11-11 17:57 ` Kalle Valo
1 sibling, 0 replies; 19+ messages in thread
From: Kalle Valo @ 2024-11-11 17:57 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Dmitry Baryshkov, Raj Kumar Bhagat, ath12k, linux-wireless,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jeff Johnson,
Bjorn Andersson, Konrad Dybcio, devicetree, linux-kernel,
linux-arm-msm
Krzysztof Kozlowski <krzk@kernel.org> writes:
> On 07/11/2024 13:03, Dmitry Baryshkov wrote:
>
>> On Thu, 7 Nov 2024 at 11:29, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>>
>>> On 07/11/2024 12:06, Dmitry Baryshkov wrote:
>>>> On Thu, Nov 07, 2024 at 11:23:20AM +0100, Krzysztof Kozlowski wrote:
>>>>> On 05/11/2024 19:04, Raj Kumar Bhagat wrote:
>>>>>> The RDP433 is a Qualcomm Reference Design Platform based on the
>>>>>> IPQ9574. It features three QCN9274 WiFi devices connected to PCIe1,
>>>>>> PCIe2, and PCIe3. These devices are also interconnected via a WLAN
>>>>>> Serial Interface (WSI) connection. This WSI connection is essential
>>>>>> for exchanging control information among these devices.
>>>>>>
>>>>>> This patch series describes the WSI interface found in QCN9274 in
>>>>>> device tree and uses this device tree node in the Ath12k driver to get the
>>>>>> details of WSI connection for Multi Link Operation (MLO) among multiple
>>>>>> QCN9274 devices.
>>>>>>
>>>>>> NOTES:
>>>>>> 1. As ath12k MLO patches are not ready yet, this patchset does not apply
>>>>>> to the ath.git ath-next branch and that's why the patchset is marked
>>>>>> as RFC. These are the work-in-progress patches we have at the moment.
>>>>>> The full set of MLO patches is available at:
>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/log/?h=ath12k-mlo-qcn9274
>>>>>>
>>>>>> 2. The dependency marked below applies only to the DTS patch. The
>>>>>> dt-bindings patches do not have this dependency.
>>>>>>
>>>>>> Depends-On: [PATCH V7 0/4] Add PCIe support for IPQ9574
>>>>>> Link: https://lore.kernel.org/linux-pci/20240801054803.3015572-1-quic_srichara@quicinc.com/
>>>>>>
>>>>>> v3:
>>>>>> - Created a separate binding "qcom,ath12k-wsi.yaml" to describe ath12k PCI
>>>>>> devices with WSI interface.
>>>>>
>>>>> Thanks for the changes. When you finish with testing/RFC, please send
>>>>> proper version for review (just remember to keep numbering, next one is
>>>>> v4 regardless whether this is RFC or not).
>>>>
>>>> Isn't the 'RFC' being an invitation for review per the nature of the tag
>>>> itself?
>>>
>>> No, RFC means patch is not ready, might change. This was brought on the
>>> lists multiple times and some maintainers clearly ignore RFC. Including me.
>>
>> Thanks, point noted. I'll stop marking my patches with RFC tag.
>
> Wait, you can keep marking them RFC! It all depends what do you want to
> achieve. Get some comments on early work or actual review for something
> you believe is a finished work.
>
> I looked here briefly, no comments from me and I assume that was the
> intention of RFC.
Exactly, we just wanted to have early feedback how to handle this
feature. We will now incorporate these changes to our work-in-progress
ath12kl-mlo branches, test them and once everything else in ath12k is
ready we will submit the next patchset without RFC tag.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-11-05 18:04 ` [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI Raj Kumar Bhagat
2024-11-07 17:36 ` Jeff Johnson
@ 2024-12-20 20:03 ` Konrad Dybcio
2024-12-20 21:47 ` Jeff Johnson
1 sibling, 1 reply; 19+ messages in thread
From: Konrad Dybcio @ 2024-12-20 20:03 UTC (permalink / raw)
To: Raj Kumar Bhagat, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 5.11.2024 7:04 PM, Raj Kumar Bhagat wrote:
> The QCN9274 WiFi device supports WSI (WLAN Serial Interface). WSI is used
> to exchange specific control information across radios using a doorbell
> mechanism. This WSI connection is essential for exchanging control
> information among these devices. The WSI interface in the QCN9274 includes
> TX and RX ports, which are used to connect multiple WSI-supported devices
> together, forming a WSI group.
>
> Describe QCN9274 PCI wifi device with WSI interface.
>
> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
> ---
I think this description is missing the key points:
* what is that control information (power, data, radio stuff?)
* what happens when the OS is unaware of all of this (i.e. what happens when
we don't send any configuration)
* is this configurable, or does this describe a physical wiring topology
(what/who decides which of the group configurations detailed below take
effect)
And the ultimate question:
* can the devices not just talk among themselves and negotiate that?
Though AFAICU PCIe P2P communication is a shaky topic, so perhaps the answer
to the last question is 'no'
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-12-20 20:03 ` Konrad Dybcio
@ 2024-12-20 21:47 ` Jeff Johnson
2024-12-20 22:05 ` Konrad Dybcio
0 siblings, 1 reply; 19+ messages in thread
From: Jeff Johnson @ 2024-12-20 21:47 UTC (permalink / raw)
To: Konrad Dybcio, Raj Kumar Bhagat, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 12/20/2024 12:03 PM, Konrad Dybcio wrote:
> On 5.11.2024 7:04 PM, Raj Kumar Bhagat wrote:
>> The QCN9274 WiFi device supports WSI (WLAN Serial Interface). WSI is used
>> to exchange specific control information across radios using a doorbell
>> mechanism. This WSI connection is essential for exchanging control
>> information among these devices. The WSI interface in the QCN9274 includes
>> TX and RX ports, which are used to connect multiple WSI-supported devices
>> together, forming a WSI group.
>>
>> Describe QCN9274 PCI wifi device with WSI interface.
>>
>> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
>> ---
>
> I think this description is missing the key points:
>
> * what is that control information (power, data, radio stuff?)
> * what happens when the OS is unaware of all of this (i.e. what happens when
> we don't send any configuration)
> * is this configurable, or does this describe a physical wiring topology
> (what/who decides which of the group configurations detailed below take
> effect)
>
> And the ultimate question:
> * can the devices not just talk among themselves and negotiate that?
>
> Though AFAICU PCIe P2P communication is a shaky topic, so perhaps the answer
> to the last question is 'no'
>
> Konrad
We already pushed the non-RFC version to our -next tree so we cannot update
the commit description without a forced push.
https://lore.kernel.org/all/20241211153432.775335-2-kvalo@kernel.org/
However, Raj Kumar can submit an update to the description in the file, which
is probably the better place to have this information anyway.
/jeff
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-12-20 21:47 ` Jeff Johnson
@ 2024-12-20 22:05 ` Konrad Dybcio
2024-12-20 22:05 ` Konrad Dybcio
2024-12-23 4:23 ` Raj Kumar Bhagat
0 siblings, 2 replies; 19+ messages in thread
From: Konrad Dybcio @ 2024-12-20 22:05 UTC (permalink / raw)
To: Jeff Johnson, Konrad Dybcio, Raj Kumar Bhagat, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 20.12.2024 10:47 PM, Jeff Johnson wrote:
> On 12/20/2024 12:03 PM, Konrad Dybcio wrote:
>> On 5.11.2024 7:04 PM, Raj Kumar Bhagat wrote:
>>> The QCN9274 WiFi device supports WSI (WLAN Serial Interface). WSI is used
>>> to exchange specific control information across radios using a doorbell
>>> mechanism. This WSI connection is essential for exchanging control
>>> information among these devices. The WSI interface in the QCN9274 includes
>>> TX and RX ports, which are used to connect multiple WSI-supported devices
>>> together, forming a WSI group.
>>>
>>> Describe QCN9274 PCI wifi device with WSI interface.
>>>
>>> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
>>> ---
>>
>> I think this description is missing the key points:
>>
>> * what is that control information (power, data, radio stuff?)
>> * what happens when the OS is unaware of all of this (i.e. what happens when
>> we don't send any configuration)
>> * is this configurable, or does this describe a physical wiring topology
>> (what/who decides which of the group configurations detailed below take
>> effect)
>>
>> And the ultimate question:
>> * can the devices not just talk among themselves and negotiate that?
>>
>> Though AFAICU PCIe P2P communication is a shaky topic, so perhaps the answer
>> to the last question is 'no'
>>
>> Konrad
>
> We already pushed the non-RFC version to our -next tree so we cannot update
> the commit description without a forced push.
>
> https://lore.kernel.org/all/20241211153432.775335-2-kvalo@kernel.org/
>
> However, Raj Kumar can submit an update to the description in the file, which
> is probably the better place to have this information anyway.
Sounds good
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-12-20 22:05 ` Konrad Dybcio
@ 2024-12-20 22:05 ` Konrad Dybcio
2024-12-23 4:23 ` Raj Kumar Bhagat
1 sibling, 0 replies; 19+ messages in thread
From: Konrad Dybcio @ 2024-12-20 22:05 UTC (permalink / raw)
To: Konrad Dybcio, Jeff Johnson, Raj Kumar Bhagat, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 20.12.2024 11:05 PM, Konrad Dybcio wrote:
> On 20.12.2024 10:47 PM, Jeff Johnson wrote:
>> On 12/20/2024 12:03 PM, Konrad Dybcio wrote:
>>> On 5.11.2024 7:04 PM, Raj Kumar Bhagat wrote:
>>>> The QCN9274 WiFi device supports WSI (WLAN Serial Interface). WSI is used
>>>> to exchange specific control information across radios using a doorbell
>>>> mechanism. This WSI connection is essential for exchanging control
>>>> information among these devices. The WSI interface in the QCN9274 includes
>>>> TX and RX ports, which are used to connect multiple WSI-supported devices
>>>> together, forming a WSI group.
>>>>
>>>> Describe QCN9274 PCI wifi device with WSI interface.
>>>>
>>>> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
>>>> ---
>>>
>>> I think this description is missing the key points:
>>>
>>> * what is that control information (power, data, radio stuff?)
>>> * what happens when the OS is unaware of all of this (i.e. what happens when
>>> we don't send any configuration)
>>> * is this configurable, or does this describe a physical wiring topology
>>> (what/who decides which of the group configurations detailed below take
>>> effect)
>>>
>>> And the ultimate question:
>>> * can the devices not just talk among themselves and negotiate that?
>>>
>>> Though AFAICU PCIe P2P communication is a shaky topic, so perhaps the answer
>>> to the last question is 'no'
>>>
>>> Konrad
>>
>> We already pushed the non-RFC version to our -next tree so we cannot update
>> the commit description without a forced push.
>>
>> https://lore.kernel.org/all/20241211153432.775335-2-kvalo@kernel.org/
>>
>> However, Raj Kumar can submit an update to the description in the file, which
>> is probably the better place to have this information anyway.
>
> Sounds good
(although bindings usually land with Krzysztof's or Rob's review tags,
but that's between you and them to talk about now)
Konrad
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI
2024-12-20 22:05 ` Konrad Dybcio
2024-12-20 22:05 ` Konrad Dybcio
@ 2024-12-23 4:23 ` Raj Kumar Bhagat
1 sibling, 0 replies; 19+ messages in thread
From: Raj Kumar Bhagat @ 2024-12-23 4:23 UTC (permalink / raw)
To: Konrad Dybcio, Jeff Johnson, ath12k
Cc: linux-wireless, Kalle Valo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jeff Johnson, Bjorn Andersson, Konrad Dybcio,
devicetree, linux-kernel, linux-arm-msm
On 12/21/2024 3:35 AM, Konrad Dybcio wrote:
> On 20.12.2024 10:47 PM, Jeff Johnson wrote:
>> On 12/20/2024 12:03 PM, Konrad Dybcio wrote:
>>> On 5.11.2024 7:04 PM, Raj Kumar Bhagat wrote:
>>>> The QCN9274 WiFi device supports WSI (WLAN Serial Interface). WSI is used
>>>> to exchange specific control information across radios using a doorbell
>>>> mechanism. This WSI connection is essential for exchanging control
>>>> information among these devices. The WSI interface in the QCN9274 includes
>>>> TX and RX ports, which are used to connect multiple WSI-supported devices
>>>> together, forming a WSI group.
>>>>
>>>> Describe QCN9274 PCI wifi device with WSI interface.
>>>>
>>>> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
>>>> ---
>>>
>>> I think this description is missing the key points:
>>>
>>> * what is that control information (power, data, radio stuff?)
>>> * what happens when the OS is unaware of all of this (i.e. what happens when
>>> we don't send any configuration)
>>> * is this configurable, or does this describe a physical wiring topology
>>> (what/who decides which of the group configurations detailed below take
>>> effect)
>>>
>>> And the ultimate question:
>>> * can the devices not just talk among themselves and negotiate that?
>>>
>>> Though AFAICU PCIe P2P communication is a shaky topic, so perhaps the answer
>>> to the last question is 'no'
>>>
>>> Konrad
>>
>> We already pushed the non-RFC version to our -next tree so we cannot update
>> the commit description without a forced push.
>>
>> https://lore.kernel.org/all/20241211153432.775335-2-kvalo@kernel.org/
>>
>> However, Raj Kumar can submit an update to the description in the file, which
>> is probably the better place to have this information anyway.
>
> Sounds good
>
Sure, will submit an update to the description.
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2024-12-23 4:24 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-05 18:04 [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 1/5] dt-bindings: net: wireless: Describe ath12k PCI module with WSI Raj Kumar Bhagat
2024-11-07 17:36 ` Jeff Johnson
2024-12-20 20:03 ` Konrad Dybcio
2024-12-20 21:47 ` Jeff Johnson
2024-12-20 22:05 ` Konrad Dybcio
2024-12-20 22:05 ` Konrad Dybcio
2024-12-23 4:23 ` Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 2/5] wifi: ath12k: Parse multiple device information from device tree Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 3/5] wifi: ath12k: Send partner device details in QMI MLO capability Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 4/5] wifi: ath12k: Assign unique hardware link IDs during QMI host capability Raj Kumar Bhagat
2024-11-05 18:04 ` [RFC PATCH v3 5/5] arm64: dts: qcom: ipq9574: Add WiFi nodes for RDP433 Raj Kumar Bhagat
2024-11-07 10:23 ` [RFC PATCH v3 0/5] wifi: ath12k: Add wifi device node with WSI for QCN9274 in RDP433 Krzysztof Kozlowski
2024-11-07 11:06 ` Dmitry Baryshkov
2024-11-07 11:29 ` Krzysztof Kozlowski
2024-11-07 12:03 ` Dmitry Baryshkov
2024-11-07 12:16 ` Krzysztof Kozlowski
2024-11-07 13:20 ` Dmitry Baryshkov
2024-11-11 17:57 ` Kalle Valo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).