I think we keep circling on the differences between "Controller" and "link" (aka bus). A Controller can have one or more links. A system can have one or more controllers.
Intel platforms have one controller and 4 or more links. QCOM platforms have one or more controllers with one link each.
I am not sure how this IDA-generated bus_id helps deal with these two cases, since we can't really make any assumptions on how controllers/links will be started and probed.
What we are missing is a hierarchical controller/link definition, IOW a controller_id should be given to the master by a higher level instead of using an IDA.
Tentative patches to introduce a 'controller_id' that's not an IDA are here: https://github.com/thesofproject/linux/pull/4616
Initial results are positive for Intel devices. it *should* work for other devices but I can't test. If folks at Linaro/Qualcomm and AMD can give it a try, that would be much appreciated.
Thanks.