mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
Merge branch 'icc-syncstate' into icc-next
* icc-syncstate: interconnect: Add get_bw() callback interconnect: Add sync state support interconnect: qcom: Use icc_sync_state Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
This commit is contained in:
commit
628fdbcf9d
5 changed files with 77 additions and 0 deletions
|
@ -49,6 +49,7 @@ struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
|
|||
* @aggregate: pointer to device specific aggregate operation function
|
||||
* @pre_aggregate: pointer to device specific function that is called
|
||||
* before the aggregation begins (optional)
|
||||
* @get_bw: pointer to device specific function to get current bandwidth
|
||||
* @xlate: provider-specific callback for mapping nodes from phandle arguments
|
||||
* @xlate_extended: vendor-specific callback for mapping node data from phandle arguments
|
||||
* @dev: the device this interconnect provider belongs to
|
||||
|
@ -63,6 +64,7 @@ struct icc_provider {
|
|||
int (*aggregate)(struct icc_node *node, u32 tag, u32 avg_bw,
|
||||
u32 peak_bw, u32 *agg_avg, u32 *agg_peak);
|
||||
void (*pre_aggregate)(struct icc_node *node);
|
||||
int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);
|
||||
struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
|
||||
struct icc_node_data* (*xlate_extended)(struct of_phandle_args *spec, void *data);
|
||||
struct device *dev;
|
||||
|
@ -86,6 +88,8 @@ struct icc_provider {
|
|||
* @req_list: a list of QoS constraint requests associated with this node
|
||||
* @avg_bw: aggregated value of average bandwidth requests from all consumers
|
||||
* @peak_bw: aggregated value of peak bandwidth requests from all consumers
|
||||
* @init_avg: average bandwidth value that is read from the hardware during init
|
||||
* @init_peak: peak bandwidth value that is read from the hardware during init
|
||||
* @data: pointer to private data
|
||||
*/
|
||||
struct icc_node {
|
||||
|
@ -102,6 +106,8 @@ struct icc_node {
|
|||
struct hlist_head req_list;
|
||||
u32 avg_bw;
|
||||
u32 peak_bw;
|
||||
u32 init_avg;
|
||||
u32 init_peak;
|
||||
void *data;
|
||||
};
|
||||
|
||||
|
@ -119,6 +125,7 @@ int icc_nodes_remove(struct icc_provider *provider);
|
|||
int icc_provider_add(struct icc_provider *provider);
|
||||
int icc_provider_del(struct icc_provider *provider);
|
||||
struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec);
|
||||
void icc_sync_state(struct device *dev);
|
||||
|
||||
#else
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue