|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * Interconnect framework internal structs | 
|  | * | 
|  | * Copyright (c) 2019, Linaro Ltd. | 
|  | * Author: Georgi Djakov <georgi.djakov@linaro.org> | 
|  | */ | 
|  |  | 
|  | #ifndef __DRIVERS_INTERCONNECT_INTERNAL_H | 
|  | #define __DRIVERS_INTERCONNECT_INTERNAL_H | 
|  |  | 
|  | /** | 
|  | * struct icc_req - constraints that are attached to each node | 
|  | * @req_node: entry in list of requests for the particular @node | 
|  | * @node: the interconnect node to which this constraint applies | 
|  | * @dev: reference to the device that sets the constraints | 
|  | * @enabled: indicates whether the path with this request is enabled | 
|  | * @tag: path tag (optional) | 
|  | * @avg_bw: an integer describing the average bandwidth in kBps | 
|  | * @peak_bw: an integer describing the peak bandwidth in kBps | 
|  | */ | 
|  | struct icc_req { | 
|  | struct hlist_node req_node; | 
|  | struct icc_node *node; | 
|  | struct device *dev; | 
|  | bool enabled; | 
|  | u32 tag; | 
|  | u32 avg_bw; | 
|  | u32 peak_bw; | 
|  | }; | 
|  |  | 
|  | /** | 
|  | * struct icc_path - interconnect path structure | 
|  | * @name: a string name of the path (useful for ftrace) | 
|  | * @num_nodes: number of hops (nodes) | 
|  | * @reqs: array of the requests applicable to this path of nodes | 
|  | */ | 
|  | struct icc_path { | 
|  | const char *name; | 
|  | size_t num_nodes; | 
|  | struct icc_req reqs[] __counted_by(num_nodes); | 
|  | }; | 
|  |  | 
|  | struct icc_path *icc_get(struct device *dev, const char *src, const char *dst); | 
|  | int icc_debugfs_client_init(struct dentry *icc_dir); | 
|  |  | 
|  | #endif |