alistair23-linux/sound/soc/intel/common
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
..
Makefile ASoC: intel: Fix sst-dsp dependency on dw stuff 2016-07-11 18:19:23 +01:00
sst-acpi.c ASoC: Intel: Load the atom DPCM driver only 2016-02-08 14:36:05 +00:00
sst-acpi.h ASoC: Intel: Atom: Add quirk for Surface 3 2016-07-08 14:26:26 +02:00
sst-dsp-priv.h ASoC: intel: Fix sst-dsp dependency on dw stuff 2016-07-11 18:19:23 +01:00
sst-dsp.c ASoC: intel: Fix sst-dsp dependency on dw stuff 2016-07-11 18:19:23 +01:00
sst-dsp.h ASoC: intel: Fix sst-dsp dependency on dw stuff 2016-07-11 18:19:23 +01:00
sst-firmware.c ASoC: intel: Fix sst-dsp dependency on dw stuff 2016-07-11 18:19:23 +01:00
sst-ipc.c ASoC: Intel: Allocate for the mailbox with max size 2015-06-02 20:48:08 +01:00
sst-ipc.h ASoC: Intel: Allocate for the mailbox with max size 2015-06-02 20:48:08 +01:00
sst-match-acpi.c Merge remote-tracking branch 'asoc/topic/intel' into asoc-next 2016-03-13 15:16:26 +07:00