Go to file
Richard Fitzgerald 98fa52d89a ASoC: soc-card: Add storage for PCI SSID
[ Upstream commit 47f56e38a1 ]

Add members to struct snd_soc_card to store the PCI subsystem ID (SSID)
of the soundcard.

The PCI specification provides two registers to store a vendor-specific
SSID that can be read by drivers to uniquely identify a particular
"soundcard". This is defined in the PCI specification to distinguish
products that use the same silicon (and therefore have the same silicon
ID) so that product-specific differences can be applied.

PCI only defines 0xFFFF as an invalid value. 0x0000 is not defined as
invalid. So the usual pattern of zero-filling the struct and then
assuming a zero value unset will not work. A flag is included to
indicate when the SSID information has been filled in.

Unlike DMI information, which has a free-format entirely up to the vendor,
the PCI SSID has a strictly defined format and a registry of vendor IDs.

It is usual in Windows drivers that the SSID is used as the sole identifier
of the specific end-product and the Windows driver contains tables mapping
that to information about the hardware setup, rather than using ACPI
properties.

This SSID is important information for ASoC components that need to apply
hardware-specific configuration on PCI-based systems.

As the SSID is a generic part of the PCI specification and is treated as
identifying the "soundcard", it is reasonable to include this information
in struct snd_soc_card, instead of components inventing their own custom
ways to pass this information around.

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-2-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-11-28 16:54:51 +00:00
Documentation overflow: Implement size_t saturating arithmetic helpers 2023-11-20 11:06:44 +01:00
LICENSES
arch x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size 2023-11-28 16:54:49 +00:00
block block: fix use-after-free of q->q_usage_counter 2023-10-10 21:53:36 +02:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:13:17 +02:00
crypto crypto: lrw,xts - Replace strlcpy with strscpy 2023-09-23 11:01:05 +02:00
drivers drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL 2023-11-28 16:54:50 +00:00
fs btrfs: use u64 for buffer sizes in the tree search ioctls 2023-11-20 11:06:57 +01:00
include ASoC: soc-card: Add storage for PCI SSID 2023-11-28 16:54:51 +00:00
init x86/mm: Initialize text poking earlier 2023-08-08 19:57:39 +02:00
io_uring io_uring: break iopolling on signal 2023-09-19 12:20:24 +02:00
ipc ipc/sem: Fix dangling sem_array access in semtimedop race 2022-12-08 11:24:00 +01:00
kernel bpf: Detect IP == ksym.end as part of BPF program 2023-11-28 16:54:49 +00:00
lib overflow: Implement size_t saturating arithmetic helpers 2023-11-20 11:06:44 +01:00
mm vfs: fix readahead(2) on block devices 2023-11-20 11:06:44 +01:00
net Bluetooth: Fix double free in hci_conn_cleanup 2023-11-28 16:54:50 +00:00
samples samples/hw_breakpoint: fix building without module unloading 2023-09-23 11:01:09 +02:00
scripts modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host 2023-11-20 11:06:53 +01:00
security ima: rework CONFIG_IMA dependency block 2023-10-10 21:53:38 +02:00
sound ASoC: ams-delta.c: use component after check 2023-11-20 11:06:52 +01:00
tools selftests/efivarfs: create-read: fix a resource leak 2023-11-28 16:54:51 +00:00
usr usr/include/Makefile: add linux/nfc.h to the compile-test coverage 2022-02-01 17:25:48 +01:00
virt KVM: fix memoryleak in kvm_init() 2023-04-05 11:23:43 +02:00
.clang-format RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore kbuild: generate Module.symvers only when vmlinux exists 2021-05-19 10:12:59 +02:00
.mailmap mailmap: add two more addresses of Uwe Kleine-König 2020-12-06 10:19:07 -08:00
COPYING
CREDITS MAINTAINERS: Move Jason Cooper to CREDITS 2020-11-30 10:20:34 +01:00
Kbuild
Kconfig
MAINTAINERS Remove DECnet support from kernel 2023-06-21 15:45:38 +02:00
Makefile Linux 5.10.201 2023-11-20 11:06:57 +01:00
README

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.