mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
interconnect: qcom: Move qcom_icc_xlate_extended() to a common file
since there have conflict between two headers icc-rpmh.h and icc-rpm.h, the function qcom_icc_xlate_extended() is declared in icc-rpmh.h thus it cannot be used by icc-rpm driver. Move the function to a new common file icc-common.c so that allow it to be called by multiple drivers. Signed-off-by: Leo Yan <leo.yan@linaro.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20220712015929.2789881-3-leo.yan@linaro.org Signed-off-by: Georgi Djakov <djakov@kernel.org>
This commit is contained in:
parent
2c510f5bee
commit
cb4805b5a5
@ -1,5 +1,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM) += interconnect_qcom.o
|
||||
|
||||
interconnect_qcom-y := icc-common.o
|
||||
icc-bcm-voter-objs := bcm-voter.o
|
||||
qnoc-msm8916-objs := msm8916.o
|
||||
qnoc-msm8939-objs := msm8939.o
|
||||
|
34
drivers/interconnect/qcom/icc-common.c
Normal file
34
drivers/interconnect/qcom/icc-common.c
Normal file
@ -0,0 +1,34 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (C) 2022 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "icc-common.h"
|
||||
|
||||
struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data)
|
||||
{
|
||||
struct icc_node_data *ndata;
|
||||
struct icc_node *node;
|
||||
|
||||
node = of_icc_xlate_onecell(spec, data);
|
||||
if (IS_ERR(node))
|
||||
return ERR_CAST(node);
|
||||
|
||||
ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
|
||||
if (!ndata)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
ndata->node = node;
|
||||
|
||||
if (spec->args_count == 2)
|
||||
ndata->tag = spec->args[1];
|
||||
|
||||
if (spec->args_count > 2)
|
||||
pr_warn("%pOF: Too many arguments, path tag is not parsed\n", spec->np);
|
||||
|
||||
return ndata;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_icc_xlate_extended);
|
13
drivers/interconnect/qcom/icc-common.h
Normal file
13
drivers/interconnect/qcom/icc-common.h
Normal file
@ -0,0 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2022 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#ifndef __DRIVERS_INTERCONNECT_QCOM_ICC_COMMON_H__
|
||||
#define __DRIVERS_INTERCONNECT_QCOM_ICC_COMMON_H__
|
||||
|
||||
#include <linux/interconnect-provider.h>
|
||||
|
||||
struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data);
|
||||
|
||||
#endif
|
@ -11,6 +11,7 @@
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "bcm-voter.h"
|
||||
#include "icc-common.h"
|
||||
#include "icc-rpmh.h"
|
||||
|
||||
/**
|
||||
@ -100,31 +101,6 @@ int qcom_icc_set(struct icc_node *src, struct icc_node *dst)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_icc_set);
|
||||
|
||||
struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data)
|
||||
{
|
||||
struct icc_node_data *ndata;
|
||||
struct icc_node *node;
|
||||
|
||||
node = of_icc_xlate_onecell(spec, data);
|
||||
if (IS_ERR(node))
|
||||
return ERR_CAST(node);
|
||||
|
||||
ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
|
||||
if (!ndata)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
ndata->node = node;
|
||||
|
||||
if (spec->args_count == 2)
|
||||
ndata->tag = spec->args[1];
|
||||
|
||||
if (spec->args_count > 2)
|
||||
pr_warn("%pOF: Too many arguments, path tag is not parsed\n", spec->np);
|
||||
|
||||
return ndata;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_icc_xlate_extended);
|
||||
|
||||
/**
|
||||
* qcom_icc_bcm_init - populates bcm aux data and connect qnodes
|
||||
* @bcm: bcm to be initialized
|
||||
|
@ -131,7 +131,6 @@ struct qcom_icc_desc {
|
||||
int qcom_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
|
||||
u32 peak_bw, u32 *agg_avg, u32 *agg_peak);
|
||||
int qcom_icc_set(struct icc_node *src, struct icc_node *dst);
|
||||
struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data);
|
||||
int qcom_icc_bcm_init(struct qcom_icc_bcm *bcm, struct device *dev);
|
||||
void qcom_icc_pre_aggregate(struct icc_node *node);
|
||||
int qcom_icc_rpmh_probe(struct platform_device *pdev);
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <dt-bindings/interconnect/qcom,sm8450.h>
|
||||
|
||||
#include "bcm-voter.h"
|
||||
#include "icc-common.h"
|
||||
#include "icc-rpmh.h"
|
||||
#include "sm8450.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user