From 05be28fe8521f183f945d052d5019197e5934f0e Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 9 Jul 2025 18:04:06 +0200 Subject: [PATCH] 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 Link: https://patch.msgid.link/20250709160434.1859-4-tiwai@suse.de --- sound/hda/Kconfig | 5 ++ sound/hda/Makefile | 1 + sound/hda/common/Kconfig | 80 +++++++++++++++++++ sound/hda/common/Makefile | 13 +++ .../common/auto_parser.c} | 0 .../{pci/hda/hda_beep.c => hda/common/beep.c} | 0 .../{pci/hda/hda_bind.c => hda/common/bind.c} | 0 .../hda/hda_codec.c => hda/common/codec.c} | 0 .../common/controller.c} | 2 +- .../common/controller_trace.h} | 2 +- .../{pci/hda => hda/common}/hda_auto_parser.h | 0 sound/{pci/hda => hda/common}/hda_beep.h | 0 .../{pci/hda => hda/common}/hda_controller.h | 0 sound/{pci/hda => hda/common}/hda_jack.h | 0 sound/{pci/hda => hda/common}/hda_local.h | 0 .../hda/hda_hwdep.c => hda/common/hwdep.c} | 0 .../{pci/hda/hda_jack.c => hda/common/jack.c} | 0 .../{pci/hda/hda_proc.c => hda/common/proc.c} | 0 .../hda/hda_sysfs.c => hda/common/sysfs.c} | 0 sound/pci/hda/Kconfig | 76 ------------------ sound/pci/hda/Makefile | 13 +-- 21 files changed, 103 insertions(+), 89 deletions(-) create mode 100644 sound/hda/common/Kconfig create mode 100644 sound/hda/common/Makefile rename sound/{pci/hda/hda_auto_parser.c => hda/common/auto_parser.c} (100%) rename sound/{pci/hda/hda_beep.c => hda/common/beep.c} (100%) rename sound/{pci/hda/hda_bind.c => hda/common/bind.c} (100%) rename sound/{pci/hda/hda_codec.c => hda/common/codec.c} (100%) rename sound/{pci/hda/hda_controller.c => hda/common/controller.c} (99%) rename sound/{pci/hda/hda_controller_trace.h => hda/common/controller_trace.h} (97%) rename sound/{pci/hda => hda/common}/hda_auto_parser.h (100%) rename sound/{pci/hda => hda/common}/hda_beep.h (100%) rename sound/{pci/hda => hda/common}/hda_controller.h (100%) rename sound/{pci/hda => hda/common}/hda_jack.h (100%) rename sound/{pci/hda => hda/common}/hda_local.h (100%) rename sound/{pci/hda/hda_hwdep.c => hda/common/hwdep.c} (100%) rename sound/{pci/hda/hda_jack.c => hda/common/jack.c} (100%) rename sound/{pci/hda/hda_proc.c => hda/common/proc.c} (100%) rename sound/{pci/hda/hda_sysfs.c => hda/common/sysfs.c} (100%) diff --git a/sound/hda/Kconfig b/sound/hda/Kconfig index e380146560772..2928cb570ec63 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 3fdbc22b15304..e7596bf736a46 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 0000000000000..d1e2bfd24c117 --- /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 0000000000000..3344fa0efe758 --- /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 similarity index 100% rename from sound/pci/hda/hda_auto_parser.c rename to sound/hda/common/auto_parser.c diff --git a/sound/pci/hda/hda_beep.c b/sound/hda/common/beep.c similarity index 100% rename from sound/pci/hda/hda_beep.c rename to sound/hda/common/beep.c diff --git a/sound/pci/hda/hda_bind.c b/sound/hda/common/bind.c similarity index 100% rename from sound/pci/hda/hda_bind.c rename to sound/hda/common/bind.c diff --git a/sound/pci/hda/hda_codec.c b/sound/hda/common/codec.c similarity index 100% rename from sound/pci/hda/hda_codec.c rename to sound/hda/common/codec.c diff --git a/sound/pci/hda/hda_controller.c b/sound/hda/common/controller.c similarity index 99% rename from sound/pci/hda/hda_controller.c rename to sound/hda/common/controller.c index f3330b7e0fcfc..84387ed761be9 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 similarity index 97% rename from sound/pci/hda/hda_controller_trace.h rename to sound/hda/common/controller_trace.h index bf48304e230aa..7f5841f8919ec 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 similarity index 100% rename from sound/pci/hda/hda_auto_parser.h rename to sound/hda/common/hda_auto_parser.h diff --git a/sound/pci/hda/hda_beep.h b/sound/hda/common/hda_beep.h similarity index 100% rename from sound/pci/hda/hda_beep.h rename to sound/hda/common/hda_beep.h diff --git a/sound/pci/hda/hda_controller.h b/sound/hda/common/hda_controller.h similarity index 100% rename from sound/pci/hda/hda_controller.h rename to sound/hda/common/hda_controller.h diff --git a/sound/pci/hda/hda_jack.h b/sound/hda/common/hda_jack.h similarity index 100% rename from sound/pci/hda/hda_jack.h rename to sound/hda/common/hda_jack.h diff --git a/sound/pci/hda/hda_local.h b/sound/hda/common/hda_local.h similarity index 100% rename from sound/pci/hda/hda_local.h rename to sound/hda/common/hda_local.h diff --git a/sound/pci/hda/hda_hwdep.c b/sound/hda/common/hwdep.c similarity index 100% rename from sound/pci/hda/hda_hwdep.c rename to sound/hda/common/hwdep.c diff --git a/sound/pci/hda/hda_jack.c b/sound/hda/common/jack.c similarity index 100% rename from sound/pci/hda/hda_jack.c rename to sound/hda/common/jack.c diff --git a/sound/pci/hda/hda_proc.c b/sound/hda/common/proc.c similarity index 100% rename from sound/pci/hda/hda_proc.c rename to sound/hda/common/proc.c diff --git a/sound/pci/hda/hda_sysfs.c b/sound/hda/common/sysfs.c similarity index 100% rename from sound/pci/hda/hda_sysfs.c rename to sound/hda/common/sysfs.c diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index 745f120a5cee2..1dfd56493d399 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 a5ab8ee2d7f94..920011bb1b06c 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 -- 2.47.2