diff options
author | Takashi Iwai <tiwai@suse.de> | 2025-07-09 19:04:06 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2025-07-11 10:55:37 +0300 |
commit | 05be28fe8521f183f945d052d5019197e5934f0e (patch) | |
tree | 75449fa007b19a9779514e765d3fd85243e3284c | |
parent | b2660d1ebde1ba8f3edf963f3aac2bea884457c3 (diff) | |
download | linux-05be28fe8521f183f945d052d5019197e5934f0e.tar.xz |
ALSA: hda: Move common codec driver into sound/hda/common directory
The snd-hda-codec module contains the most of common code used by both
HD-audio controller and codec drivers, and it's basically independent
from PCI. Let's move the code to sound/hda/common directory as a part
of code reorganization.
The hda_ prefix is dropped from the most of file names as it's rather
superfluous.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250709160434.1859-4-tiwai@suse.de
-rw-r--r-- | sound/hda/Kconfig | 5 | ||||
-rw-r--r-- | sound/hda/Makefile | 1 | ||||
-rw-r--r-- | sound/hda/common/Kconfig | 80 | ||||
-rw-r--r-- | sound/hda/common/Makefile | 13 | ||||
-rw-r--r-- | sound/hda/common/auto_parser.c (renamed from sound/pci/hda/hda_auto_parser.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/beep.c (renamed from sound/pci/hda/hda_beep.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/bind.c (renamed from sound/pci/hda/hda_bind.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/codec.c (renamed from sound/pci/hda/hda_codec.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/controller.c (renamed from sound/pci/hda/hda_controller.c) | 2 | ||||
-rw-r--r-- | sound/hda/common/controller_trace.h (renamed from sound/pci/hda/hda_controller_trace.h) | 2 | ||||
-rw-r--r-- | sound/hda/common/hda_auto_parser.h (renamed from sound/pci/hda/hda_auto_parser.h) | 0 | ||||
-rw-r--r-- | sound/hda/common/hda_beep.h (renamed from sound/pci/hda/hda_beep.h) | 0 | ||||
-rw-r--r-- | sound/hda/common/hda_controller.h (renamed from sound/pci/hda/hda_controller.h) | 0 | ||||
-rw-r--r-- | sound/hda/common/hda_jack.h (renamed from sound/pci/hda/hda_jack.h) | 0 | ||||
-rw-r--r-- | sound/hda/common/hda_local.h (renamed from sound/pci/hda/hda_local.h) | 0 | ||||
-rw-r--r-- | sound/hda/common/hwdep.c (renamed from sound/pci/hda/hda_hwdep.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/jack.c (renamed from sound/pci/hda/hda_jack.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/proc.c (renamed from sound/pci/hda/hda_proc.c) | 0 | ||||
-rw-r--r-- | sound/hda/common/sysfs.c (renamed from sound/pci/hda/hda_sysfs.c) | 0 | ||||
-rw-r--r-- | sound/pci/hda/Kconfig | 76 | ||||
-rw-r--r-- | sound/pci/hda/Makefile | 13 |
21 files changed, 103 insertions, 89 deletions
diff --git a/sound/hda/Kconfig b/sound/hda/Kconfig index e38014656077..2928cb570ec6 100644 --- a/sound/hda/Kconfig +++ b/sound/hda/Kconfig @@ -1,2 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only +menu "HD-Audio" + +source "sound/hda/common/Kconfig" source "sound/hda/core/Kconfig" + +endmenu diff --git a/sound/hda/Makefile b/sound/hda/Makefile index 3fdbc22b1530..e7596bf736a4 100644 --- a/sound/hda/Makefile +++ b/sound/hda/Makefile @@ -1,2 +1,3 @@ # SPDX-License-Identifier: GPL-2.0 obj-y += core/ +obj-$(CONFIG_SND_HDA) += common/ diff --git a/sound/hda/common/Kconfig b/sound/hda/common/Kconfig new file mode 100644 index 000000000000..d1e2bfd24c11 --- /dev/null +++ b/sound/hda/common/Kconfig @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: GPL-2.0-only + +config SND_HDA + tristate + select SND_PCM + select SND_VMASTER + select SND_JACK + select SND_HDA_CORE + +if SND_HDA + +config SND_HDA_HWDEP + bool "Build hwdep interface for HD-audio driver" + select SND_HWDEP + help + Say Y here to build a hwdep interface for HD-audio driver. + This interface can be used for out-of-band communication + with codecs for debugging purposes. + +config SND_HDA_RECONFIG + bool "Allow dynamic codec reconfiguration" + help + Say Y here to enable the HD-audio codec re-configuration feature. + It allows user to clear the whole codec configuration, change the + codec setup, add extra verbs, and re-configure the codec dynamically. + + Note that this item alone doesn't provide the sysfs interface, but + enables the feature just for the patch loader below. + If you need the traditional sysfs entries for the manual interaction, + turn on CONFIG_SND_HDA_HWDEP as well. + +config SND_HDA_INPUT_BEEP + bool "Support digital beep via input layer" + depends on INPUT=y || INPUT=SND_HDA + help + Say Y here to build a digital beep interface for HD-audio + driver. This interface is used to generate digital beeps. + +config SND_HDA_INPUT_BEEP_MODE + int "Digital beep registration mode (0=off, 1=on)" + depends on SND_HDA_INPUT_BEEP=y + default "1" + range 0 1 + help + Set 0 to disable the digital beep interface for HD-audio by default. + Set 1 to always enable the digital beep interface for HD-audio by + default. + +config SND_HDA_PATCH_LOADER + bool "Support initialization patch loading for HD-audio" + select FW_LOADER + select SND_HDA_RECONFIG + help + Say Y here to allow the HD-audio driver to load a pseudo + firmware file ("patch") for overriding the BIOS setup at + start up. The "patch" file can be specified via patch module + option, such as patch=hda-init. + +config SND_HDA_POWER_SAVE_DEFAULT + int "Default time-out for HD-audio power-save mode" + depends on PM + default 0 + help + The default time-out value in seconds for HD-audio automatic + power-save mode. 0 means to disable the power-save mode. + +config SND_HDA_CTL_DEV_ID + bool "Use the device identifier field for controls" + depends on SND_HDA_INTEL + help + Say Y to use the device identifier field for (mixer) + controls (old behaviour until this option is available). + + When enabled, the multiple HDA codecs may set the device + field in control (mixer) element identifiers. The use + of this field is not recommended and defined for mixer controls. + + The old behaviour (Y) is obsolete and will be removed. Consider + to not enable this option. +endif diff --git a/sound/hda/common/Makefile b/sound/hda/common/Makefile new file mode 100644 index 000000000000..3344fa0efe75 --- /dev/null +++ b/sound/hda/common/Makefile @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: GPL-2.0 +snd-hda-codec-y := bind.o codec.o jack.o auto_parser.o sysfs.o +snd-hda-codec-y += controller.o +snd-hda-codec-$(CONFIG_SND_PROC_FS) += proc.o + +snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hwdep.o +snd-hda-codec-$(CONFIG_SND_HDA_INPUT_BEEP) += beep.o + +# for trace-points +CFLAGS_controller.o := -I$(src) + +# common driver +obj-$(CONFIG_SND_HDA) := snd-hda-codec.o diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/hda/common/auto_parser.c index 8923813ce424..8923813ce424 100644 --- a/sound/pci/hda/hda_auto_parser.c +++ b/sound/hda/common/auto_parser.c diff --git a/sound/pci/hda/hda_beep.c b/sound/hda/common/beep.c index 13a7d92e8d8d..13a7d92e8d8d 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/hda/common/beep.c diff --git a/sound/pci/hda/hda_bind.c b/sound/hda/common/bind.c index df8f88beddd0..df8f88beddd0 100644 --- a/sound/pci/hda/hda_bind.c +++ b/sound/hda/common/bind.c diff --git a/sound/pci/hda/hda_codec.c b/sound/hda/common/codec.c index cb72e9655c8a..cb72e9655c8a 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/hda/common/codec.c diff --git a/sound/pci/hda/hda_controller.c b/sound/hda/common/controller.c index f3330b7e0fcf..84387ed761be 100644 --- a/sound/pci/hda/hda_controller.c +++ b/sound/hda/common/controller.c @@ -29,7 +29,7 @@ #include "hda_local.h" #define CREATE_TRACE_POINTS -#include "hda_controller_trace.h" +#include "controller_trace.h" /* DSP lock helpers */ #define dsp_lock(dev) snd_hdac_dsp_lock(azx_stream(dev)) diff --git a/sound/pci/hda/hda_controller_trace.h b/sound/hda/common/controller_trace.h index bf48304e230a..7f5841f8919e 100644 --- a/sound/pci/hda/hda_controller_trace.h +++ b/sound/hda/common/controller_trace.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM hda_controller -#define TRACE_INCLUDE_FILE hda_controller_trace +#define TRACE_INCLUDE_FILE controller_trace #if !defined(_TRACE_HDA_CONTROLLER_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_HDA_CONTROLLER_H diff --git a/sound/pci/hda/hda_auto_parser.h b/sound/hda/common/hda_auto_parser.h index 87af3d8c02f7..87af3d8c02f7 100644 --- a/sound/pci/hda/hda_auto_parser.h +++ b/sound/hda/common/hda_auto_parser.h diff --git a/sound/pci/hda/hda_beep.h b/sound/hda/common/hda_beep.h index 923ea862446a..923ea862446a 100644 --- a/sound/pci/hda/hda_beep.h +++ b/sound/hda/common/hda_beep.h diff --git a/sound/pci/hda/hda_controller.h b/sound/hda/common/hda_controller.h index c2d0109866e6..c2d0109866e6 100644 --- a/sound/pci/hda/hda_controller.h +++ b/sound/hda/common/hda_controller.h diff --git a/sound/pci/hda/hda_jack.h b/sound/hda/common/hda_jack.h index ff7d289c034b..ff7d289c034b 100644 --- a/sound/pci/hda/hda_jack.h +++ b/sound/hda/common/hda_jack.h diff --git a/sound/pci/hda/hda_local.h b/sound/hda/common/hda_local.h index 68c31f5354b7..68c31f5354b7 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/hda/common/hda_local.h diff --git a/sound/pci/hda/hda_hwdep.c b/sound/hda/common/hwdep.c index 9325e5c3cbe6..9325e5c3cbe6 100644 --- a/sound/pci/hda/hda_hwdep.c +++ b/sound/hda/common/hwdep.c diff --git a/sound/pci/hda/hda_jack.c b/sound/hda/common/jack.c index 7d7786df60ea..7d7786df60ea 100644 --- a/sound/pci/hda/hda_jack.c +++ b/sound/hda/common/jack.c diff --git a/sound/pci/hda/hda_proc.c b/sound/hda/common/proc.c index 00c2eeb2c472..00c2eeb2c472 100644 --- a/sound/pci/hda/hda_proc.c +++ b/sound/hda/common/proc.c diff --git a/sound/pci/hda/hda_sysfs.c b/sound/hda/common/sysfs.c index 140e24bf4d7f..140e24bf4d7f 100644 --- a/sound/pci/hda/hda_sysfs.c +++ b/sound/hda/common/sysfs.c diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index 745f120a5cee..1dfd56493d39 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig @@ -1,13 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menu "HD-Audio" -config SND_HDA - tristate - select SND_PCM - select SND_VMASTER - select SND_JACK - select SND_HDA_CORE - config SND_HDA_GENERIC_LEDS bool @@ -55,53 +48,6 @@ config SND_HDA_ACPI if SND_HDA -config SND_HDA_HWDEP - bool "Build hwdep interface for HD-audio driver" - select SND_HWDEP - help - Say Y here to build a hwdep interface for HD-audio driver. - This interface can be used for out-of-band communication - with codecs for debugging purposes. - -config SND_HDA_RECONFIG - bool "Allow dynamic codec reconfiguration" - help - Say Y here to enable the HD-audio codec re-configuration feature. - It allows user to clear the whole codec configuration, change the - codec setup, add extra verbs, and re-configure the codec dynamically. - - Note that this item alone doesn't provide the sysfs interface, but - enables the feature just for the patch loader below. - If you need the traditional sysfs entries for the manual interaction, - turn on CONFIG_SND_HDA_HWDEP as well. - -config SND_HDA_INPUT_BEEP - bool "Support digital beep via input layer" - depends on INPUT=y || INPUT=SND_HDA - help - Say Y here to build a digital beep interface for HD-audio - driver. This interface is used to generate digital beeps. - -config SND_HDA_INPUT_BEEP_MODE - int "Digital beep registration mode (0=off, 1=on)" - depends on SND_HDA_INPUT_BEEP=y - default "1" - range 0 1 - help - Set 0 to disable the digital beep interface for HD-audio by default. - Set 1 to always enable the digital beep interface for HD-audio by - default. - -config SND_HDA_PATCH_LOADER - bool "Support initialization patch loading for HD-audio" - select FW_LOADER - select SND_HDA_RECONFIG - help - Say Y here to allow the HD-audio driver to load a pseudo - firmware file ("patch") for overriding the BIOS setup at - start up. The "patch" file can be specified via patch module - option, such as patch=hda-init. - config SND_HDA_CIRRUS_SCODEC tristate @@ -394,14 +340,6 @@ config SND_HDA_GENERIC comment "Set to Y if you want auto-loading the codec driver" depends on SND_HDA=y && SND_HDA_GENERIC=m -config SND_HDA_POWER_SAVE_DEFAULT - int "Default time-out for HD-audio power-save mode" - depends on PM - default 0 - help - The default time-out value in seconds for HD-audio automatic - power-save mode. 0 means to disable the power-save mode. - config SND_HDA_INTEL_HDMI_SILENT_STREAM bool "Enable Silent Stream always for HDMI" depends on SND_HDA_INTEL @@ -417,20 +355,6 @@ config SND_HDA_INTEL_HDMI_SILENT_STREAM This feature can impact power consumption as resources are kept reserved both at transmitter and receiver. -config SND_HDA_CTL_DEV_ID - bool "Use the device identifier field for controls" - depends on SND_HDA_INTEL - help - Say Y to use the device identifier field for (mixer) - controls (old behaviour until this option is available). - - When enabled, the multiple HDA codecs may set the device - field in control (mixer) element identifiers. The use - of this field is not recommended and defined for mixer controls. - - The old behaviour (Y) is obsolete and will be removed. Consider - to not enable this option. - endif endmenu diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile index a5ab8ee2d7f9..920011bb1b06 100644 --- a/sound/pci/hda/Makefile +++ b/sound/pci/hda/Makefile @@ -3,17 +3,11 @@ snd-hda-intel-y := hda_intel.o snd-hda-tegra-y := hda_tegra.o snd-hda-acpi-y := hda_acpi.o -snd-hda-codec-y := hda_bind.o hda_codec.o hda_jack.o hda_auto_parser.o hda_sysfs.o -snd-hda-codec-y += hda_controller.o -snd-hda-codec-$(CONFIG_SND_PROC_FS) += hda_proc.o - -snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hda_hwdep.o -snd-hda-codec-$(CONFIG_SND_HDA_INPUT_BEEP) += hda_beep.o - # for trace-points -CFLAGS_hda_controller.o := -I$(src) CFLAGS_hda_intel.o := -I$(src) +subdir-ccflags-y += -I$(src)/../../hda/common + snd-hda-codec-generic-y := hda_generic.o snd-hda-codec-realtek-y := patch_realtek.o snd-hda-codec-cmedia-y := patch_cmedia.o @@ -43,9 +37,6 @@ snd-hda-scodec-tas2781-y := tas2781_hda.o snd-hda-scodec-tas2781-i2c-y := tas2781_hda_i2c.o snd-hda-scodec-tas2781-spi-y := tas2781_hda_spi.o -# common driver -obj-$(CONFIG_SND_HDA) := snd-hda-codec.o - # codec drivers obj-$(CONFIG_SND_HDA_GENERIC) += snd-hda-codec-generic.o obj-$(CONFIG_SND_HDA_CODEC_REALTEK) += snd-hda-codec-realtek.o |