forked from Minki/linux
976daac4a1
Add bcm voter driver and add support for RPMh specific interconnect providers which implements the set and aggregate functionalities that translates bandwidth requests into RPMh messages. These modules provide a common set of functionalities for all Qualcomm RPMh based interconnect providers and should help reduce code duplication when adding new providers. Signed-off-by: David Dai <daidavid1@codeaurora.org> Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org> Reviewed-by: Evan Green <evgreen@chromium.org> Signed-off-by: Sibi Sankar <sibis@codeaurora.org> Link: https://lore.kernel.org/r/20200228095951.15457-1-sibis@codeaurora.org Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
28 lines
842 B
C
28 lines
842 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __DRIVERS_INTERCONNECT_QCOM_BCM_VOTER_H__
|
|
#define __DRIVERS_INTERCONNECT_QCOM_BCM_VOTER_H__
|
|
|
|
#include <soc/qcom/cmd-db.h>
|
|
#include <soc/qcom/rpmh.h>
|
|
#include <soc/qcom/tcs.h>
|
|
|
|
#include "icc-rpmh.h"
|
|
|
|
#define DEFINE_QBCM(_name, _bcmname, _keepalive, ...) \
|
|
static struct qcom_icc_bcm _name = { \
|
|
.name = _bcmname, \
|
|
.keepalive = _keepalive, \
|
|
.num_nodes = ARRAY_SIZE(((struct qcom_icc_node *[]){ __VA_ARGS__ })), \
|
|
.nodes = { __VA_ARGS__ }, \
|
|
}
|
|
|
|
struct bcm_voter *of_bcm_voter_get(struct device *dev, const char *name);
|
|
void qcom_icc_bcm_voter_add(struct bcm_voter *voter, struct qcom_icc_bcm *bcm);
|
|
int qcom_icc_bcm_voter_commit(struct bcm_voter *voter);
|
|
|
|
#endif
|