···4949 * @aggregate: pointer to device specific aggregate operation function5050 * @pre_aggregate: pointer to device specific function that is called5151 * before the aggregation begins (optional)5252+ * @get_bw: pointer to device specific function to get current bandwidth5253 * @xlate: provider-specific callback for mapping nodes from phandle arguments5354 * @xlate_extended: vendor-specific callback for mapping node data from phandle arguments5455 * @dev: the device this interconnect provider belongs to···6463 int (*aggregate)(struct icc_node *node, u32 tag, u32 avg_bw,6564 u32 peak_bw, u32 *agg_avg, u32 *agg_peak);6665 void (*pre_aggregate)(struct icc_node *node);6666+ int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);6767 struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);6868 struct icc_node_data* (*xlate_extended)(struct of_phandle_args *spec, void *data);6969 struct device *dev;···8886 * @req_list: a list of QoS constraint requests associated with this node8987 * @avg_bw: aggregated value of average bandwidth requests from all consumers9088 * @peak_bw: aggregated value of peak bandwidth requests from all consumers8989+ * @init_avg: average bandwidth value that is read from the hardware during init9090+ * @init_peak: peak bandwidth value that is read from the hardware during init9191 * @data: pointer to private data9292 */9393struct icc_node {···106102 struct hlist_head req_list;107103 u32 avg_bw;108104 u32 peak_bw;105105+ u32 init_avg;106106+ u32 init_peak;109107 void *data;110108};111109···125119int icc_provider_add(struct icc_provider *provider);126120int icc_provider_del(struct icc_provider *provider);127121struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec);122122+void icc_sync_state(struct device *dev);128123129124#else130125