ASoC: add compress stream support

This patch adds the support to parse the compress dai's and then also adds the
soc-compress.c file while handles the compress stream operations, mostly analogus
to what is done in the soc-pcm.c and aditional handling of the compress
opertaions

Conflicts:
	sound/soc/soc-core.c

Signed-off-by: Namarta Kohli <namartax.kohli@intel.com>
Signed-off-by: Ramesh Babu K V <ramesh.babu@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoc: fix compilation error

Fix compilation error after merging commit 1245b700
from master: snd_soc_dapm_stream_event() protoype has changed.

Signed-off-by: Eric Laurent <elaurent@google.com>
ASoC: compress - fix code alignment

Reported-by: Fengguang Wu <wfg@linux.intel.com>
Signed-off-by: Namarta Kohli <namartax.kohli@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: soc-compress: Add missing brackets around else

Conflicts:
	sound/soc/soc-compress.c

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Tested-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: soc-compress: Serialise compressed ops

Use the pcm_mutex to serialise the compressed ops.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Tested-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: soc-compress: Initialise delayed work to power down audio

Delayed work was scheduled but not initialised, this patch adds the
actual work and initialises it.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Tested-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: soc-compress: Add support for not memory mapped DSPs

The ASoC compressed API did not implement the copy callback in its
compressed ops which is required for DSPs that are not memory mapped.

This patch creates a local copy of the compress ops for each runtime and
modifies them with a copy callback as appropriate.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoc: fix compilation error

Fix compilation error after merging commit 1f88eb0
from master: pop_wait is in struct snd_soc_dai
not in struct snd_soc_pcm_runtime.

Signed-off-by: Eric Laurent <elaurent@google.com>
ASoC: compress: Only mute playback streams

Otherwise capture activity on a compressed DAI would mute any playback
on the same DAI.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
ASoC: compress: Cancel delayed power down if needed

When a new stream is being opened it is necessary to cancel any delayed
power down of the audio.

[Fixed unused variable -- broonie]

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoc: fix compilation error

Fix compilation error after merging commit 00642f5
from master: pop_wait is in struct snd_soc_dai
not in struct snd_soc_pcm_runtime.

Signed-off-by: Eric Laurent <elaurent@google.com>
ASoC: compress - add support for metadata apis

Compress core added metadata apis in 9727b4, so add same in ASoC

Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: msm: Add support to query the channel map info

Implement method to get the channel map information from the
user space.
Remove the global variables in pcm driver to store the channel
map in the platform driver. This is needed to support multiple
instances of pcm driver for different pcm streams.

Bug: 9375848

Signed-off-by: Ravi Kumar Alamanda <ralama@codeaurora.org>
ASoC: msm: add api to query status of Audio services in QDSP6

After QDSP6 boots audio services might take some time to comes to a
state where they can serve clients on Host Processor. Add an api to
query status of Audio services in QDPS6.

CRs-Fixed: 487983
Change-Id: Ib222874ce645af78bd5647b45506b50af1f6062d
Signed-off-by: Kiran Kandi <kkandi@codeaurora.org>
ASoC: msm: Add support for incall music delivery

Add mixer controls, pseudoport IDs
to support incall music delivery on port 8002.
Change the implementation to start playback only
on the specified session and port.

Change-Id: I318b7df24d2beb8eaa0f65e7089ebf46471c2049
Signed-off-by: Vicky Sehrawat <vickys@codeaurora.org>

Conflicts:
	include/sound/apr_audio-v2.h
Revert "ALSA: include: Add new ioctl for metadata mode"

This reverts commit c1c67e2b4f7636d2176423710916bc25c53cd125.
ALSA: compress: add support for gapless playback

this add new API for sound compress to support gapless playback.
As noted in Documentation change, we add API to send metadata of encoder and
padding delay to DSP. Also add API for indicating EOF and switching to
subsequent track

Also bump the compress API version

Conflicts:
	include/uapi/sound/compress_offload.h

Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ASoC: add definations for compressed operations

Here we update the asoc structures to add compress stream definations
First the struct snd_soc_dai_driver adds a new member to indicate if the dai is
compressed or pcm. Next we add a new structre the struct snd_soc_compr_ops in
the struct snd_soc_dai_link. This is to be used for machine driver to perform
any opertaions required for setting up compressed audio streams

next is the compressed data operations, they are added using struct
snd_compr_ops in the struct snd_soc_platform_driver.

Signed-off-by: Namarta Kohli <namartax.kohli@intel.com>
Signed-off-by: Ramesh Babu K V <ramesh.babu@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: compress: Add suport for DPCM into compressed audio

Allow compressed audio streams to traverse the DAPM graph of DAIs
like PCM streams.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
ALSA: compress: Add snd_compress_free()

We are not currently freeing the compressed devices at module
unload time. This could be used to help, but more investigation
needs to be done to resolve this issue.

This patch is WIP.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>