ASoC: Implement fully_routed card property
authorStephen Warren <swarren@nvidia.com>
Wed, 23 Nov 2011 19:42:04 +0000 (12:42 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 23 Nov 2011 21:34:54 +0000 (21:34 +0000)
commit1633281b79fd276f1c7c2fb37c3b97da74e42ae5
treebe8fe06be86f436efb3ddece45338e28a394ccdb
parentd4a2eca781bfd7323bfd98dbc7fd63c7d613fef2
ASoC: Implement fully_routed card property

A card is fully routed if the DAPM route table describes all connections on
the board.

When a card is fully routed, some operations can be automated by the ASoC
core. The first, and currently only, such operation is described below, and
implemented by this patch.

Codecs often have a large number of external pins, and not all of these pins
will be connected on all board designs. Some machine drivers therefore call
snd_soc_dapm_nc_pin() for all the unused pins, in order to tell the ASoC core
never to activate them.

However, when a card is fully routed, the information needed to derive the
set of unused pins is present in card->dapm_routes. In this case, have
the ASoC core automatically call snd_soc_dapm_nc_pin() for each unused
codec pin.

This has been tested with soc/tegra/tegra_wm8903.c and soc/tegra/trimslice.c.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
include/sound/soc-dapm.h
include/sound/soc.h
sound/soc/soc-core.c
sound/soc/soc-dapm.c