SoCs that have multiple coexisting CPUs and DSPs, may have shared interconnect buses between them. In such cases, each CPU/DSP may have different bandwidth needs, depending on whether it is active or sleeping. This means that we have to keep different bandwidth configurations for the CPU (active/sleep). In such systems, usually there is a way to communicate and synchronize this information with some firmware or pass it to another processor responsible for monitoring and switching the interconnect configurations based on the state of each CPU/DSP.
The above problem can be solved by introducing the path tagging concept, that allows consumers to optionally attach a tag to each path they use. This tag is used to differentiate between the aggregated bandwidth values for each state. The tag is generic and how it's handled is up to the platform specific interconnect provider drivers. David Dai (1): interconnect: qcom: Add tagging and wake/sleep support for sdm845 Georgi Djakov (1): interconnect: Add support for path tags drivers/interconnect/core.c | 27 ++++++- drivers/interconnect/qcom/sdm845.c | 103 +++++++++++++++++++------- include/linux/interconnect-provider.h | 4 +- include/linux/interconnect.h | 5 ++ 4 files changed, 106 insertions(+), 33 deletions(-)