On Thu, 2011-11-03 at 21:04 +0200, Tanu Kaskinen wrote: > Somehow keeping a list of profiles in the ports doesn't feel right - > it's as if that list would have been thrown there just to make things > convenient for some random code... But I guess there's a reason, which > just isn't apparent from this patch yet, for having that list there. This is my largest concern as well. It's the same concern that I had with Mengdong's suggestion that profiles should have an intended role -- this feels conceptually incorrect, but becomes necessary because we don't know anything about the sink that will appear when the profile is activated. So this is my proposal -- all possible sinks for a card should be created upfront, in an "inactive" state. This way, from both the jack-detection and routing fronts, we can see what sink we want, and if it is inactive, we activate it by going to the profile it "belongs" to and activating that (clearly some conflict-resolution will be needed here too). This isn't a trivial change, but it's something that's been coming up repeatedly, and I'd be much happier if we took a little longer and did it right. Thoughts? Cheers, Arun