android_kernel_samsung_sm8650/sound/soc
Lars-Peter Clausen f1d45cc3ae ASoC: Consolidate platform and CODEC probe/remove
The platform and CODEC probe and remove code is now largely identical. This
patch consolidates it at the component level.

The resulting code is slightly larger due to all the boiler plate code setting
up the indirection for the table based control and DAPM registration.  Once all
drivers have been update to no longer use the snd_soc_codec_driver and
snd_soc_platform_driver specific fields for this the indirection can be removed
again.

This patch contains two noteworthy hacks that are only meant to be temporary to
be able to update drivers and the core in separate incremental patches.

The first hack is related to that some DPCM platforms expect that the DAPM
widgets for the DAIs of a snd_soc_component are created in the DAPM context of
the snd_soc_platform that has the same parent device. For handling this the
steal_sibling_dai_widgets attribute is introduced. It gets set for
snd_soc_platforms that register DAPM elements. When creating the DAI widgets for
a component this flag is checked and if it is found on one of the siblings the
component will not create any DAI widgets in its own DAPM context. If the
attribute is set on a platform it will look for siblings components and create
DAI widgets for them in its own context. The fix for this will be to update
the offending drivers to only register a single component rather than two.

The second hack deals with the fact that the ASoC card suspend and resume code
still needs a list of CODECs that have been registered for the card. To handle
this the generic probe and remove path have a check to see if the component is
CODEC and if yes add/remove it to the card's CODEC list. While it is possible to
clean up the suspend/resume code to not need the CODEC list anymore this is a
bit of a chicken and egg problem since it will become easier to clean up the
suspend/resume code once there is a unified component layer.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-19 10:59:45 -05:00
..
adi ASoC: axi-{spdif,i2s}: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag 2014-01-14 21:28:39 +00:00
atmel Merge remote-tracking branches 'asoc/topic/atmel', 'asoc/topic/cirrus' and 'asoc/topic/cleanup' into asoc-next 2014-08-04 16:31:29 +01:00
au1x MIPS: Alchemy: remove au_read/write/sync 2014-07-30 13:56:34 +02:00
bcm ASoC: bcm: Remove obsoleted Kconfig dependency 2014-01-08 20:00:04 +00:00
blackfin ASoC: blackfin: use samples to set silence 2014-07-17 12:27:56 +01:00
cirrus Merge remote-tracking branch 'asoc/topic/cirrus' into asoc-next 2014-03-13 14:19:11 +00:00
codecs == Changes to existing drivers == 2014-08-07 17:17:39 -07:00
davinci ASoC: davinci: Enable menuconfig entry for McASP 2014-08-04 16:28:30 +01:00
dwc ASoC: designware_i2s: Remove unnecessary dev_set_drvdata() 2013-08-29 13:18:32 +01:00
fsl Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-asrc', 'asoc/topic/fsl-spdif' and 'asoc/topic/imx-audmux' into asoc-next 2014-08-04 16:31:40 +01:00
generic ASoC: simple-card: Make u32 DT parameter handling 64-bit proof 2014-06-21 11:06:53 +01:00
intel Merge remote-tracking branches 'asoc/topic/intel', 'asoc/topic/kirkwood', 'asoc/topic/max98090' and 'asoc/topic/mc13783' into asoc-next 2014-08-04 16:31:45 +01:00
jz4740 Merge remote-tracking branches 'asoc/topic/headers', 'asoc/topic/intel', 'asoc/topic/jz4740', 'asoc/topic/max98090', 'asoc/topic/max98095', 'asoc/topic/mc13783' and 'asoc/topic/multicodec' into asoc-next 2014-05-22 00:23:54 +01:00
kirkwood ASoC: kirkwood: Remove ARCH_KIRKWOOD dependency 2014-07-29 20:35:23 +01:00
mxs Merge remote-tracking branches 'asoc/topic/adsp', 'asoc/topic/atmel', 'asoc/topic/bcm2835', 'asoc/topic/docs', 'asoc/topic/fsl', 'asoc/topic/generic', 'asoc/topic/kirkwood', 'asoc/topic/mc13783', 'asoc/topic/mxs', 'asoc/topic/nuc900', 'asoc/topic/sai', 'asoc/topic/sh', 'asoc/topic/ssm2602', 'asoc/topic/tlv320aic3x', 'asoc/topic/twl4030', 'asoc/topic/ux500', 'asoc/topic/width' and 'asoc/topic/x86' into for-tiwai 2014-01-16 12:44:01 +00:00
nuc900 ASoC: nuc900: export nuc900_ac97_data 2014-04-30 20:32:20 -07:00
omap Merge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/oom' and 'asoc/topic/pxa' into asoc-next 2014-08-04 16:31:50 +01:00
pxa Merge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/oom' and 'asoc/topic/pxa' into asoc-next 2014-08-04 16:31:50 +01:00
rockchip ASoC: rockchip: remove redundant dev_err call in rockchip_i2s_probe() 2014-07-28 14:46:20 +01:00
s6000 ASoC: s6105-ipcam: Fix build for I2C dependencies 2014-07-05 18:00:34 +01:00
samsung ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
sh Merge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/rt5677', 'asoc/topic/s6000', 'asoc/topic/samsung' and 'asoc/topic/sh-fsi' into asoc-next 2014-08-04 16:32:01 +01:00
sirf ASoC: sirf-usp: Fixed a bug for playback and capture work at the same time 2014-07-25 18:54:44 +01:00
spear ASoC: spear: spdif_out: Fix mute control 2014-03-10 17:43:15 +00:00
tegra ASoC: tegra: Replace instances of rtd->codec->card with rtd->card 2014-07-22 23:15:57 +01:00
txx9 ASoC: txx9aclc_ac97: Fix kernel crash on probe 2014-02-16 08:36:40 +08:00
ux500 ASoC: mop500_ab8500: Replace instances of rtd->codec->card with rtd->card 2014-05-20 22:55:39 +01:00
Kconfig ASoC: add driver for Rockchip RK3xxx I2S controller 2014-07-09 09:39:29 +02:00
Makefile ASoC: add driver for Rockchip RK3xxx I2S controller 2014-07-09 09:39:29 +02:00
soc-cache.c ASoC: Move name and id from CODEC/platform to component 2014-06-21 21:04:24 +01:00
soc-compress.c ASoC: compress: Prevent multicodec for compressed stream 2014-07-16 23:06:27 +01:00
soc-core.c ASoC: Consolidate platform and CODEC probe/remove 2014-08-19 10:59:45 -05:00
soc-dapm.c ASoC: Move card field form platform/codec to component 2014-07-22 23:15:57 +01:00
soc-devres.c ASoC: Export devm_snd_soc_register_platform() 2014-04-22 22:00:42 +01:00
soc-generic-dmaengine-pcm.c ASoC: Consolidate platform and CODEC probe/remove 2014-08-19 10:59:45 -05:00
soc-io.c ASoC: Remove ASoC level IO tracing 2014-04-22 13:24:24 +01:00
soc-jack.c ASoC: Move card field form platform/codec to component 2014-07-22 23:15:57 +01:00
soc-pcm.c Merge remote-tracking branch 'asoc/topic/component' into asoc-next 2014-08-04 16:31:15 +01:00
soc-utils.c Merge remote-tracking branch 'asoc/topic/dapm' into for-tiwai 2014-01-16 12:42:53 +00:00