On 06/09/2016 11:49 AM, Takashi Iwai wrote:
On Wed, 08 Jun 2016 21:14:01 +0200, Lars-Peter Clausen wrote:
Hi,
No this is currently not really supported. There were some ideas for this a long long time ago, but it never got implemented. And today basically everybody takes care of hiding the controls from userspace.
That does not mean it does not make sense to have such a feature, but it needs somebody with a motivation to implement it.
The devils live in details. Actually a primary question is in which level we should cover it. For example, can we disable DAPM pins from the machine driver? This will reduce not only kctls but DAPM paths. Or should we mark kctls just as invisible? Or, would it be suitable rather to hide such a thing in user-space?
For DAPM we already do this. Even automatically the DAPM core is capable of figuring out which paths are unused and will never be powered-up. The path will still exist in the graph but it will be ignored for all operations and not significantly affect performance.
And I think the idea back then was to track which controls are on which paths and if it is on a non-connected path disable the control. What's a bit tricky is if you have a mixer or mux and only some of the output/input paths are not connected. Also for most controls we do not have the information where they are placed within the graph.