linux-stable/include/sound
Richard Fitzgerald 62c65e799f ASoC: SOF: Pass PCI SSID to machine driver
[ Upstream commit ba2de401d3 ]

Pass the PCI SSID of the audio interface through to the machine driver.
This allows the machine driver to use the SSID to uniquely identify the
specific hardware configuration and apply any platform-specific
configuration.

struct snd_sof_pdata is passed around inside the SOF code, but it then
passes configuration information to the machine driver through
struct snd_soc_acpi_mach and struct snd_soc_acpi_mach_params. So SSID
information has been added to both snd_sof_pdata and
snd_soc_acpi_mach_params.

PCI does not define 0x0000 as an invalid value so we can't use zero to
indicate that the struct member was not written. Instead a flag is
included to indicate that a value has been written to the
subsystem_vendor and subsystem_device members.

sof_pci_probe() creates the struct snd_sof_pdata. It is passed a struct
pci_dev so it can fill in the SSID value.

sof_machine_check() finds the appropriate struct snd_soc_acpi_mach. It
copies the SSID information across to the struct snd_soc_acpi_mach_params.
This done before calling any custom set_mach_params() so that it could be
used by the set_mach_params() callback to apply variant params.

The machine driver receives the struct snd_soc_acpi_mach as its
platform_data.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20230912163207.3498161-3-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-11-28 17:06:58 +00:00
..
ac97
sof ASoC: SOF: dai: move AMD_HS to end of list to restore backwards-compatibility 2022-11-18 11:39:46 +00:00
ac97_codec.h
aci.h
acp63_chip_offset_byte.h ASoC: amd: fix ACP version typo mistake 2023-05-11 23:02:59 +09:00
ad1816a.h
ad1843.h
adau1373.h
ak4xxx-adda.h
ak4113.h
ak4114.h
ak4117.h
ak4531_codec.h
ak4641.h
alc5623.h
asequencer.h
asound.h
asoundef.h
compress_driver.h
control.h ALSA: control: add snd_ctl_rename() 2022-10-21 08:17:08 +02:00
core.h ALSA: core: Add async signal helpers 2022-07-29 12:57:10 +02:00
cs35l33.h
cs35l34.h
cs35l35.h
cs35l36.h
cs35l41.h ASoC: Updates for v5.20 2022-07-15 16:11:58 +02:00
cs42l42.h ASoC: cs42l83: Extend CS42L42 support to new part 2022-09-19 18:05:35 +01:00
cs42l52.h
cs42l56.h
cs42l73.h
cs4231-regs.h
cs4271.h
cs8403.h
cs8427.h
da7213.h
da7218.h
da7219-aad.h
da7219.h
da9055.h
designware_i2s.h
dmaengine_pcm.h ALSA: dmaengine: Fix missing return value comments for kernel docs 2022-07-13 13:42:35 +02:00
emu10k1.h
emu10k1_synth.h
emu8000.h
emu8000_reg.h
emux_legacy.h
emux_synth.h
es1688.h
graph_card.h
gus.h
hda_chmap.h
hda_codec.h ALSA: hda: Fix the control element identification for multiple codecs 2023-03-10 09:33:20 +01:00
hda_component.h
hda_hwdep.h
hda_i915.h
hda_register.h ALSA: hda: cleanup definitions for multi-link registers 2022-08-23 10:14:24 +02:00
hda_regmap.h
hda_verbs.h ALSA: cleanup double word in comment 2022-02-11 15:18:56 +01:00
hdaudio.h ALSA: hda: Update register polling macros 2022-10-09 12:34:32 +02:00
hdaudio_ext.h ALSA: hda: Use hdac_ext prefix in snd_hdac_stream_free_all() for clarity 2022-09-20 08:08:14 +02:00
hdmi-codec.h ASoC: hdmi-codec: Update to modern DAI terminology 2022-06-13 14:56:07 +01:00
hwdep.h
i2c.h
info.h
initval.h
intel-dsp-config.h ASoC: Intel: avs: PCI driver implementation 2022-05-17 11:58:04 +01:00
intel-nhlt.h ALSA: hda: intel-nhlt: add intel_nhlt_ssp_mclk_mask() 2022-09-20 12:25:03 +01:00
jack.h ALSA: jack: Access input_dev under mutex 2022-04-12 12:19:05 +02:00
l3.h
madera-pdata.h ASoC: madera: Replace kernel.h with the necessary inclusions 2022-07-05 13:00:49 +01:00
max9768.h
max98088.h
max98090.h
max98095.h
memalloc.h ALSA: memalloc: Drop special handling of GFP for CONTINUOUS allocation 2022-08-24 08:00:26 +02:00
minors.h
mixer_oss.h
mpu401.h
omap-hdmi-audio.h
opl3.h
opl4.h
pcm-indirect.h
pcm.h ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT 2022-12-31 13:32:14 +01:00
pcm_drm_eld.h
pcm_iec958.h
pcm_oss.h
pcm_params.h
pt2258.h
pxa2xx-lib.h Input: touchscreen: use wrapper for pxa2xx ac97 registers 2022-05-07 22:55:48 +02:00
rawmidi.h ALSA: rawmidi: Move lock to snd_rawmidi_substream 2022-06-20 09:36:02 +02:00
rt286.h
rt298.h
rt1015.h
rt5514.h
rt5659.h
rt5660.h
rt5663.h
rt5665.h
rt5668.h
rt5682.h
rt5682s.h
s3c24xx_uda134x.h
sb.h
sb16_csp.h
seq_device.h
seq_kernel.h
seq_midi_emul.h
seq_midi_event.h
seq_oss.h
seq_oss_legacy.h
seq_virmidi.h
sh_dac_audio.h
sh_fsi.h
simple_card.h
simple_card_utils.h ASoC: simple-card: Fix up checks for HW param fixups 2022-10-19 13:39:34 +01:00
snd_wavefront.h
soc-acpi-intel-match.h ASoC: Intel: HSW and BDW updates 2022-08-16 17:33:11 +01:00
soc-acpi.h ASoC: SOF: Pass PCI SSID to machine driver 2023-11-28 17:06:58 +00:00
soc-card.h ASoC: soc-card: Add storage for PCI SSID 2023-11-28 17:06:58 +00:00
soc-component.h ASoC: soc-component: Remove non_legacy_dai_naming flag 2022-06-27 13:17:43 +01:00
soc-dai.h ASoC: soc-dai: Remove set_fmt_new callback 2022-06-06 12:34:21 +01:00
soc-dapm.h ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared 2023-03-10 09:33:23 +01:00
soc-dpcm.h ASoC: soc-pcm: test if a BE can be prepared 2023-06-21 16:00:53 +02:00
soc-jack.h
soc-link.h
soc-topology.h
soc.h ASoC: soc-card: Add storage for PCI SSID 2023-11-28 17:06:58 +00:00
sof.h ASoC: SOF: Pass PCI SSID to machine driver 2023-11-28 17:06:58 +00:00
soundfont.h
spear_dma.h
spear_spdif.h
sta32x.h
sta350.h
tas2552-plat.h
tas5086.h
tea6330t.h
timer.h
tlv.h
tlv320aic3x.h
tlv320aic32x4.h
tlv320dac33-plat.h
tpa6130a2-plat.h
uda134x.h
uda1380.h
util_mem.h
vx_core.h
wavefront.h
wm0010.h
wm1250-ev1.h
wm2000.h
wm2200.h
wm5100.h
wm8903.h
wm8904.h
wm8955.h
wm8960.h
wm8962.h
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h