[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL_JsqL0wxBRE7umsD3CXaskcrK7Pp7y2POaUNWAxGqeSc0tgQ@mail.gmail.com>
Date: Mon, 11 Dec 2023 11:45:42 -0600
From: Rob Herring <robh+dt@...nel.org>
To: Stephan Gerhold <stephan.gerhold@...nkonzept.com>
Cc: Georgi Djakov <djakov@...nel.org>, Andy Gross <agross@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...aro.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>,
linux-arm-msm@...r.kernel.org, linux-pm@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
Adam Skladowski <a39.skl@...il.com>
Subject: Re: [PATCH 2/2] interconnect: qcom: Add MSM8909 interconnect provider driver
On Wed, Dec 6, 2023 at 8:35 AM Stephan Gerhold
<stephan.gerhold@...nkonzept.com> wrote:
>
> From: Adam Skladowski <a39.skl@...il.com>
>
> Add driver for interconnect busses found in MSM8909 based platforms.
> The topology consists of three NoCs that are partially controlled by a
> RPM processor.
>
> In the downstream/vendor kernel from Qualcomm there is an additional
> "mm-snoc". However, it doesn't have a separate RPM clock assigned. It
> looks like this is actually the same NoC in hardware and the "mm-snoc"
> was only defined to assign a different "qcom,util-fact". In mainline we
> can represent this by assigning the equivalent "ab_coeff" to all the
> nodes that are part of "mm-snoc" downstream.
>
> Signed-off-by: Adam Skladowski <a39.skl@...il.com>
> [Stephan: Drop separate mm-snoc that exists downstream since it's
> actually the same NoC as SNoC in hardware, add qos_offset for BIMC,
> add ab_coeff for mm-snoc nodes and BIMC]
> Signed-off-by: Stephan Gerhold <stephan.gerhold@...nkonzept.com>
> ---
> drivers/interconnect/qcom/Kconfig | 9 +
> drivers/interconnect/qcom/Makefile | 2 +
> drivers/interconnect/qcom/msm8909.c | 1329 +++++++++++++++++++++++++++++++++++
> 3 files changed, 1340 insertions(+)
>
> diff --git a/drivers/interconnect/qcom/Kconfig b/drivers/interconnect/qcom/Kconfig
> index 4d15ce2dab16..ad03182b0587 100644
> --- a/drivers/interconnect/qcom/Kconfig
> +++ b/drivers/interconnect/qcom/Kconfig
> @@ -8,6 +8,15 @@ config INTERCONNECT_QCOM
> config INTERCONNECT_QCOM_BCM_VOTER
> tristate
>
> +config INTERCONNECT_QCOM_MSM8909
> + tristate "Qualcomm MSM8909 interconnect driver"
> + depends on INTERCONNECT_QCOM
> + depends on QCOM_SMD_RPM
> + select INTERCONNECT_QCOM_SMD_RPM
> + help
> + This is a driver for the Qualcomm Network-on-Chip on msm8909-based
> + platforms.
> +
> config INTERCONNECT_QCOM_MSM8916
> tristate "Qualcomm MSM8916 interconnect driver"
> depends on INTERCONNECT_QCOM
> diff --git a/drivers/interconnect/qcom/Makefile b/drivers/interconnect/qcom/Makefile
> index 3a8a6ef67543..69eaddccd4f1 100644
> --- a/drivers/interconnect/qcom/Makefile
> +++ b/drivers/interconnect/qcom/Makefile
> @@ -4,6 +4,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM) += interconnect_qcom.o
>
> interconnect_qcom-y := icc-common.o
> icc-bcm-voter-objs := bcm-voter.o
> +qnoc-msm8909-objs := msm8909.o
> qnoc-msm8916-objs := msm8916.o
> qnoc-msm8939-objs := msm8939.o
> qnoc-msm8974-objs := msm8974.o
> @@ -35,6 +36,7 @@ qnoc-x1e80100-objs := x1e80100.o
> icc-smd-rpm-objs := smd-rpm.o icc-rpm.o icc-rpm-clocks.o
>
> obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o
> +obj-$(CONFIG_INTERCONNECT_QCOM_MSM8909) += qnoc-msm8909.o
> obj-$(CONFIG_INTERCONNECT_QCOM_MSM8916) += qnoc-msm8916.o
> obj-$(CONFIG_INTERCONNECT_QCOM_MSM8939) += qnoc-msm8939.o
> obj-$(CONFIG_INTERCONNECT_QCOM_MSM8974) += qnoc-msm8974.o
> diff --git a/drivers/interconnect/qcom/msm8909.c b/drivers/interconnect/qcom/msm8909.c
> new file mode 100644
> index 000000000000..81335476aa51
> --- /dev/null
> +++ b/drivers/interconnect/qcom/msm8909.c
> @@ -0,0 +1,1329 @@
> +// SPDX-License-Identifier: GPL-2.0
> +
> +#include <linux/clk.h>
> +#include <linux/device.h>
> +#include <linux/interconnect-provider.h>
> +#include <linux/io.h>
> +#include <linux/module.h>
> +#include <linux/of_device.h>
> +#include <linux/of_platform.h>
You probably don't need these 2 headers and the implicit includes it
makes are dropped now in linux-next. Please check what you actually
need and make them explicit.
Rob
Powered by blists - more mailing lists