Re: [PATCH v3 1/4] interconnect: qcom: icc-rpmh: Add QoS configuration support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 3/6/24 08:30, Odelu Kukatla wrote:
It adds QoS support for QNOC device and includes support for
configuring priority, priority forward disable, urgency forwarding.
This helps in priortizing the traffic originating from different
interconnect masters at NoC(Network On Chip).

Signed-off-by: Odelu Kukatla <quic_okukatla@xxxxxxxxxxx>
---
  drivers/interconnect/qcom/icc-rpmh.c | 105 +++++++++++++++++++++++++++
  drivers/interconnect/qcom/icc-rpmh.h |  32 ++++++++
  2 files changed, 137 insertions(+)

diff --git a/drivers/interconnect/qcom/icc-rpmh.c b/drivers/interconnect/qcom/icc-rpmh.c
index c1aa265c1f4e..b4681849df80 100644
--- a/drivers/interconnect/qcom/icc-rpmh.c
+++ b/drivers/interconnect/qcom/icc-rpmh.c
@@ -1,19 +1,57 @@
  // SPDX-License-Identifier: GPL-2.0
  /*
   * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
   */
+#include <linux/clk.h>
  #include <linux/interconnect.h>
  #include <linux/interconnect-provider.h>
  #include <linux/module.h>
  #include <linux/of.h>
  #include <linux/of_platform.h>
  #include <linux/slab.h>
+#include <linux/bitfield.h>

Please keep the alphabetical order

#include "bcm-voter.h"
  #include "icc-common.h"
  #include "icc-rpmh.h"
+/* QNOC QoS */
+#define QOSGEN_MAINCTL_LO(p, qp)	(0x8 + (p->port_offsets[qp]))
+#define QOS_SLV_URG_MSG_EN_MASK		BIT_MASK(3)

Mixing BIT_MASK and GENMASK is very confusing..

+#define QOS_DFLT_PRIO_MASK		GENMASK(6, 4)
+#define QOS_DISABLE_MASK		BIT_MASK(24)
+
+/**
+ * qcom_icc_set_qos - initialize static QoS configurations
+ * @qp: qcom icc provider to which @node belongs
+ * @node: qcom icc node to operate on
+ */
+static void qcom_icc_set_qos(struct qcom_icc_provider *qp,
+				struct qcom_icc_node *node)
+{
+	const struct qcom_icc_qosbox *qos = node->qosbox;
+	int port;
+
+	if (!qp->regmap || !qos)
+		return;

This is not possible if you follow the code flow, I think..

[...]

+ * @prio: priority value assigned to requests on the node
+ * @urg_fwd: whether to forward the urgency promotion issued by master(endpoint), or discard

space before the opening brace, please also wrap to 80 lines

+ * @prio_fwd_disable: whether to forward the priority driven by mster, or override by @prio

typo: mster, please also wrap it

Konrad




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux