ASoC: hdac_hdmi: Create widget/route based on nodes enumerated
authorSubhransu S. Prusty <subhransu.s.prusty@intel.com>
Fri, 12 Feb 2016 02:16:05 +0000 (07:46 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 15 Feb 2016 20:54:03 +0000 (20:54 +0000)
commit79f4e922b54771a4d41b1da67caf109ba92ed95a
treee586ba0d396c09aac2bc17fd833fce0858f68cf7
parent17a42c4500b05a6af4c32eb8e9cfc44bab945d1f
ASoC: hdac_hdmi: Create widget/route based on nodes enumerated

In skylake, HDMI codec enumerates 3 pins and 3 cvts. Stream can
be routed from any cvt to any pin based on the connection list
queried from the pin.

This patch removes the static modelling of widget/route and
creates it dynamically based on the codec widgets enumerated.

Mux widgets are added to represent the map between a cvt and pin.
Ideally the mux widgets should be created based on the connection
list queried from the pin widget. But due to HW behavior, if an
external display is not connected on a port, querying the
connection list returns zero. So create mux widgets to map all
the cvt to all pins. At runtime, playback support on a pin can be
verified based on the connection list query.

Few function in driver have additional arguments now to support
this.

Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/hdac_hdmi.c