> I think the intended role is actually a property of the port, not the > sink. Yes. If a sink/source has ports, the ports also need a intended role for routing purpose. And if a sink/source has no ports, we can reference the sink/source's intended roles. > And I think David's patches that are waiting for someone to review > them (I'll try to do it this week) already change ports so that they are > available as long as the card exists... > > -- > Tanu How about sink/sources? They shall also be available as long as the card exist. But now, a sink/source can be created and destroyed when card's active profile changes. Take Bluetooth device module for example, they have HSP sink/source that only exist when HSP is active profile. To work out a general routing method, I think Pulse can create all sink/source/ports for all supported profiles when the card is created, while the sink/source/port state changes with profiles changes and hot-plug event. Thus routing modules can look up their intended role any time. However, I think it would be helpful to tag a profile with a intended role. This can make profile change easy. Otherwise, routing or profile-switch modules need to infer the best profile from the wanted sink/source and we need a static profile:sink/source mapping stored in a card. Thanks Mengdong