Re: [PATCH 2/2] interconnect: qcom: Add MSM8909 interconnect provider driver

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

 



On Wed, Dec 6, 2023 at 8:35 AM Stephan Gerhold
<stephan.gerhold@xxxxxxxxxxxxxxx> wrote:
>
> From: Adam Skladowski <a39.skl@xxxxxxxxx>
>
> 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@xxxxxxxxx>
> [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@xxxxxxxxxxxxxxx>
> ---
>  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





[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