linux/sound/soc
Mengdong Lin 1a497983a5 ASoC: Change the PCM runtime array to a list
Currently the number of DAI links is statically defined by the machine
driver at build time using an array. This makes it difficult to shrink/
grow the number of DAI links at runtime in order to reflect any changes
in topology.

We can change the DAI link array in the core to a list so that PCMs and
FE DAI links can be added and deleted at runtime to reflect changes in
use case and DSP topology. The machine driver can still register DAI links
as an array.

As the 1st step, this patch change the PCM runtime array to a list. A new
PCM runtime is added to the list when a DAI link is bound successfully.

Later patches will further implement the DAI link list.

More:
- define snd_soc_new/free_pcm_runtime() to create/free a runtime.
- define soc_add_pcm_runtime() to add a runtime to the rtd list.
- define soc_remove_pcm_runtimes() to clean up the runtime list.

- traverse the rtd list to probe the link components and dais.

- Add a field "num" to PCM runtime struct, used to specify the device
  number when creating the pcm device, and for a soc card to access
  its dai_props array.

- The following 3rd party machine/platform drivers iterate the rtd list
  to check the runtimes:
  sound/soc/intel/atom/sst-mfld-platform-pcm.c
  sound/soc/intel/boards/cht_bsw_rt5645.c
  sound/soc/intel/boards/cht_bsw_rt5672.c
  sound/soc/intel/boards/cht_bsw_max98090_ti.c

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-11-18 18:32:24 +00:00
..
adi ASoC: adi: Add missing return statement. 2015-01-05 20:16:20 +00:00
atmel Merge remote-tracking branches 'asoc/topic/atmel-classd' and 'asoc/topic/da7213' into asoc-next 2015-10-26 11:16:00 +09:00
au1x ASoC: Updates for v4.4 2015-10-26 11:15:54 +09:00
bcm ASoC: bcm2835-i2s: Fix module autoload for OF platform drivers 2015-08-27 20:22:47 +01:00
blackfin ASoC: blackfin: Convert to devm_snd_soc_register_card 2015-09-14 18:32:58 +01:00
cirrus ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal 2015-04-27 19:26:07 +01:00
codecs sound updates for 4.4-rc1 2015-11-06 11:04:07 -08:00
davinci Merge remote-tracking branches 'asoc/topic/blackfin', 'asoc/topic/davinci', 'asoc/topic/fsl', 'asoc/topic/hdmi' and 'asoc/topic/intel' into asoc-next 2015-09-23 11:01:19 -07:00
dwc Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es8328', 'asoc/topic/fsl' and 'asoc/topic/fsl-card' into asoc-next 2015-10-26 11:16:03 +09:00
fsl ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
generic ASoC: Change the PCM runtime array to a list 2015-11-18 18:32:24 +00:00
intel ASoC: Change the PCM runtime array to a list 2015-11-18 18:32:24 +00:00
jz4740 ASoC: jz4740: Fix module autoload for OF platform driver 2015-09-14 18:46:14 +01:00
kirkwood ASoC: kirkwood: Fix module autoload for OF platform driver 2015-09-14 18:46:28 +01:00
mediatek Merge remote-tracking branches 'asoc/topic/jz4740', 'asoc/topic/kirkwood', 'asoc/topic/mtk', 'asoc/topic/multi' and 'asoc/topic/mxs' into asoc-next 2015-09-23 11:01:22 -07:00
mxs ASoC: mxs-sgtl5000: Convert to devm_snd_soc_register_card 2015-09-14 18:33:17 +01:00
nuc900 ASoC: nuc900: Convert to devm_snd_soc_register_platform 2015-08-28 18:08:35 +01:00
omap ASoC: Updates for v4.4 2015-10-26 12:14:49 +01:00
pxa ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
qcom ASoC: qcom: change PTR_ERR argument 2015-09-17 11:36:19 +01:00
rockchip ASoC: rockchip: i2s: share tx/rx lrck when symmetric_rates enabled 2015-10-23 01:51:00 +09:00
samsung ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
sh ASoC: Change the PCM runtime array to a list 2015-11-18 18:32:24 +00:00
sirf
spear ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM 2015-09-16 17:46:11 +01:00
sti ASoC: sti: check return of of_property_read 2015-09-10 11:11:18 +01:00
sunxi ASoC: sun4i-codec: Remove the routing property 2015-10-07 12:13:42 +01:00
tegra ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
txx9 ASoC: txx9: Convert to devm_snd_soc_register_platform 2015-08-28 18:09:04 +01:00
ux500 Merge branch 'topic/hw-constraint-single' into for-next 2015-10-23 06:57:50 +02:00
xtensa ASoC: xtfpga-i2s: Add missing __rcu annotation 2015-07-29 15:07:54 +01:00
zte Merge remote-tracking branches 'asoc/topic/wm8996', 'asoc/topic/xtensa' and 'asoc/topic/zx296702' into asoc-next 2015-08-30 15:59:18 +01:00
Kconfig Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
Makefile Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
soc-ac97.c ASoC: ac97: Add support for resetting device before registration 2015-07-23 17:33:28 +01:00
soc-cache.c
soc-compress.c ASoC: compress: add config item for soc-compress to make it compiled only when needed 2015-10-22 13:52:16 +01:00
soc-core.c ASoC: Change the PCM runtime array to a list 2015-11-18 18:32:24 +00:00
soc-dapm.c ASoC: Change the PCM runtime array to a list 2015-11-18 18:32:24 +00:00
soc-devres.c ASoC: Fix warning with make xmldocs caused by soc-devres.c 2015-01-28 11:36:03 +00:00
soc-generic-dmaengine-pcm.c ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal 2015-04-27 19:26:07 +01:00
soc-io.c
soc-jack.c ASoC: Updates for v4.2 2015-06-08 20:47:53 +02:00
soc-ops.c Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
soc-pcm.c ASoC: Change the PCM runtime array to a list 2015-11-18 18:32:24 +00:00
soc-topology.c ASoC: topology: ABI - Add PCM Support and bump ABI version to 4 2015-10-02 17:59:48 +01:00
soc-utils.c ASoC: Document snd-soc-dummy-dai purpose 2015-08-31 16:40:26 +01:00