aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorKeyon Jie <yang.jie@linux.intel.com>2019-04-30 18:09:29 -0500
committerMark Brown <broonie@kernel.org>2019-05-03 15:00:59 +0900
commite8e55dbe08960b714e5ce0148926ee17331ce4d5 (patch)
tree2cc2d5d45e12720df44b2821c776f1c219abafef /sound/soc
parentASoC: SOF: Intel: hda-ipc: simplify handling of IPC IRQ (diff)
downloadlinux-dev-e8e55dbe08960b714e5ce0148926ee17331ce4d5.tar.xz
linux-dev-e8e55dbe08960b714e5ce0148926ee17331ce4d5.zip
ASoC: SOF: Intel: hda-stream: store stream capabilities
Add stream_max into struct sof_intel_hda_dev to store the total hda stream number that the platform can support, and initialize it at stream_init. This can be used later e.g. for stream bitmask. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/sof/intel/hda-stream.c4
-rw-r--r--sound/soc/sof/intel/hda.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/sound/soc/sof/intel/hda-stream.c b/sound/soc/sof/intel/hda-stream.c
index 47eff161c60e..39f4212bde4b 100644
--- a/sound/soc/sof/intel/hda-stream.c
+++ b/sound/soc/sof/intel/hda-stream.c
@@ -500,6 +500,7 @@ int hda_dsp_stream_init(struct snd_sof_dev *sdev)
struct hdac_ext_stream *stream;
struct hdac_stream *hstream;
struct pci_dev *pci = to_pci_dev(sdev->dev);
+ struct sof_intel_hda_dev *sof_hda = bus_to_sof_hda(bus);
int sd_offset;
int i, num_playback, num_capture, num_total, ret;
u32 gcap;
@@ -657,6 +658,9 @@ int hda_dsp_stream_init(struct snd_sof_dev *sdev)
list_add_tail(&hstream->list, &bus->stream_list);
}
+ /* store total stream count (playback + capture) from GCAP */
+ sof_hda->stream_max = num_total;
+
return 0;
}
diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
index 3799a3518106..7cb2fb92c4eb 100644
--- a/sound/soc/sof/intel/hda.h
+++ b/sound/soc/sof/intel/hda.h
@@ -383,6 +383,9 @@ struct sof_intel_hda_dev {
/* if position update IPC needed */
u32 no_ipc_position;
+ /* the maximum number of streams (playback + capture) supported */
+ u32 stream_max;
+
int irq;
/* DMIC device */