linux/sound/soc
Takashi Iwai a395bdd6b2 ASoC: intel: Fix sst-dsp dependency on dw stuff
The recent commit [a92ea59b74: ASoC: Intel: sst: only select
sst-firmware when DW DMAC is built-in] introduced more strict kconfig
dependency (depends on DW_DMAC_CORE=y) for avoiding the build failures
due to dependency messes in intel-sst.  This makes, however, it
impossible to use this driver with the modularized systems,
i.e. typically on Linux distros.

The problem addressed in the commit above is that sst_dsp_new() and
sst_dsp_free() includes the firmware init / finish that call dw_*()
functions.  Thus building it as built-in with DW_DMAC_CORE module
results in the missing symbols.

However, these sst_dsp functions are basically called only from the
drivers that depend on DW_DMAC_CORE already.  That is, once when these
functions are split out, the rest can be independent from dw stuff.

This patch attempts to solve the issue by the following:
- Split sst-dsp stuff into two modules: snd-soc-sst-dsp and
  snd-soc-sst-firmware.
- Move sst_dsp_new() and sst_dsp_free() to the latter module so that
  the former module can be independent from DW_DMAC_CORE.
- Add a new kconfig SND_SOC_INTEL_SST_FIRMWARE to select the latter
  module by machine drivers.

One only remaining pitfall is that each machine driver has to select
SND_SOC_INTEL_SST_FIRMWARE carefully depending on DW_DMAC_CORE.
This can't be done cleanly due to the restriction of the current
kbuild.

Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=988117
Fixes: a92ea59b74 ('ASoC: Intel: sst: only select sst-firmware when DW DMAC is built-in')
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-07-11 18:19:23 +01:00
..
adi
amd ASoC: AMD: free memory on error 2016-01-13 12:32:04 +00:00
atmel ASoC: atmel_ssc_dai: read DSP mode A data on rising edges of bclk 2016-04-27 14:47:41 +01:00
au1x ASoC: au1x: use correct format specifier 2016-04-13 06:39:36 +01:00
bcm ASoC: bcm2835: Add S16_LE support via packed DMA transfers 2016-04-27 17:35:53 +01:00
blackfin ASoC: blackfin: Convert to devm_snd_soc_register_card 2015-09-14 18:32:58 +01:00
cirrus
codecs ASoC: hdac_hdmi: Increase loglevel of hex dump printed 2016-06-27 15:51:29 +01:00
davinci Merge remote-tracking branches 'asoc/topic/davinci' and 'asoc/topic/dwc' into asoc-next 2016-05-13 14:26:46 +01:00
dwc ASoC: dwc: Use fifo depth to program FCR 2016-04-07 10:41:36 -07:00
fsl Merge remote-tracking branches 'asoc/topic/es8328', 'asoc/topic/find-dai', 'asoc/topic/fsl', 'asoc/topic/fsl-sai' and 'asoc/topic/fsl-ssi' into asoc-next 2016-05-13 14:27:01 +01:00
generic ASoC: simple-card: Add pm callbacks to platform driver 2016-05-09 16:24:16 +01:00
img ASoC: img: Add driver for Pistachio internal DAC 2015-12-12 22:56:35 +00:00
intel ASoC: intel: Fix sst-dsp dependency on dw stuff 2016-07-11 18:19:23 +01:00
jz4740 ASoC: jz4740: Fix module autoload for OF platform driver 2015-09-14 18:46:14 +01:00
kirkwood ASoC: kirkwood: fix build failure 2016-05-23 17:50:51 +01:00
mediatek ASoC: mediatek: HDMI audio LR channel swapped 2016-04-26 11:25:51 +01:00
mxs Merge remote-tracking branches 'asoc/topic/max98926', 'asoc/topic/mtk', 'asoc/topic/mxs-saif', 'asoc/topic/nau8825' and 'asoc/topic/omap' into asoc-next 2016-03-13 15:17:18 +07:00
nuc900 dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
omap Merge remote-tracking branch 'asoc/topic/omap' into asoc-next 2016-05-27 13:45:41 +01:00
pxa ASoC: pxa: Fix module autoload for platform drivers 2016-05-06 17:42:28 +01:00
qcom remove lots of IS_ERR_VALUE abuses 2016-05-27 15:26:11 -07:00
rockchip ASoC: rockchip: Revert "ASoC: rockchip: i2s: separate capture and playback" 2016-05-04 17:52:11 +01:00
samsung Merge remote-tracking branches 'asoc/topic/rt5640', 'asoc/topic/rt5659', 'asoc/topic/samsung' and 'asoc/topic/ssm4567' into asoc-next 2016-03-13 15:17:47 +07:00
sh rcar: src: skip disabled-SRC nodes 2016-05-12 15:30:29 +01: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: select player for I2S/TDM TX bus 2016-04-18 11:04:55 +01:00
sunxi ASoC: sunxi: Add support for the SPDIF block 2016-02-20 01:25:51 +09:00
tegra Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/topology', 'asoc/topic/wm8903' and 'asoc/topic/wm8904' into asoc-next 2015-12-23 00:23:52 +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
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 ALSA: jack: Allow building the jack layer without input device 2016-02-23 09:03:07 +01:00
Makefile Merge remote-tracking branches 'asoc/topic/adsp' and 'asoc/topic/amd' into asoc-next 2016-01-11 13:54:32 +00:00
soc-ac97.c ASoC: ac97: use gpiochip data pointer 2016-04-26 15:36:57 +02:00
soc-cache.c
soc-compress.c ASoC: Last updates for v4.5 2016-01-11 17:50:15 +01:00
soc-core.c ASoC: Add kerneldoc comments for snd_soc_find_dai 2016-04-22 10:42:03 +01:00
soc-dapm.c ASoC: dapm: Make sure we have a card when displaying component widgets 2016-03-18 12:04:23 +00:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine_pcm: Add support for packed transfers 2016-04-27 17:34:11 +01:00
soc-io.c
soc-jack.c
soc-ops.c Merge remote-tracking branches 'asoc/topic/kcontrol', 'asoc/topic/max98357a' and 'asoc/topic/mtk' into asoc-next 2015-12-23 00:23:44 +00:00
soc-pcm.c Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next 2016-03-13 15:16:30 +07:00
soc-topology.c ASoC: topology: Fix memory leak in widget creation 2016-05-05 16:46:29 +01:00
soc-utils.c ASoC: Document snd-soc-dummy-dai purpose 2015-08-31 16:40:26 +01:00