mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 10:45:49 +00:00
ASoC: SOF: Intel: hda-mlink: move to a dedicated module
Some of the functions will be used for SoundWire enumeration and power management, to avoid cycles in module dependencies and simplify integration all the HDaudio multi-link needs to move to a dedicated module. Drop no longer needed headers at the same time. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20230404104127.5629-6-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
68376a3ef4
commit
18227585d8
31
include/sound/hda-mlink.h
Normal file
31
include/sound/hda-mlink.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
|
||||
/*
|
||||
* This file is provided under a dual BSD/GPLv2 license. When using or
|
||||
* redistributing this file, you may do so under either license.
|
||||
*
|
||||
* Copyright(c) 2022-2023 Intel Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
struct hdac_bus;
|
||||
|
||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_MLINK)
|
||||
|
||||
int hda_bus_ml_get_capabilities(struct hdac_bus *bus);
|
||||
void hda_bus_ml_free(struct hdac_bus *bus);
|
||||
void hda_bus_ml_put_all(struct hdac_bus *bus);
|
||||
void hda_bus_ml_reset_losidv(struct hdac_bus *bus);
|
||||
int hda_bus_ml_resume(struct hdac_bus *bus);
|
||||
int hda_bus_ml_suspend(struct hdac_bus *bus);
|
||||
|
||||
#else
|
||||
|
||||
static inline int
|
||||
hda_bus_ml_get_capabilities(struct hdac_bus *bus) { return 0; }
|
||||
|
||||
static inline void hda_bus_ml_free(struct hdac_bus *bus) { }
|
||||
static inline void hda_bus_ml_put_all(struct hdac_bus *bus) { }
|
||||
static inline void hda_bus_ml_reset_losidv(struct hdac_bus *bus) { }
|
||||
static inline int hda_bus_ml_resume(struct hdac_bus *bus) { return 0; }
|
||||
static inline int hda_bus_ml_suspend(struct hdac_bus *bus) { return 0; }
|
||||
|
||||
#endif /* CONFIG_SND_SOC_SOF_HDA */
|
@ -269,6 +269,13 @@ config SND_SOC_SOF_HDA_COMMON
|
||||
select SND_INTEL_DSP_CONFIG
|
||||
select SND_SOC_SOF_HDA_LINK_BASELINE
|
||||
select SND_SOC_SOF_HDA_PROBES
|
||||
select SND_SOC_SOF_HDA_MLINK if SND_SOC_SOF_HDA_LINK
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level.
|
||||
|
||||
config SND_SOC_SOF_HDA_MLINK
|
||||
tristate
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level.
|
||||
|
@ -5,10 +5,12 @@ snd-sof-acpi-intel-bdw-objs := bdw.o
|
||||
|
||||
snd-sof-intel-hda-common-objs := hda.o hda-loader.o hda-stream.o hda-trace.o \
|
||||
hda-dsp.o hda-ipc.o hda-ctrl.o hda-pcm.o \
|
||||
hda-dai.o hda-dai-ops.o hda-bus.o hda-mlink.o \
|
||||
hda-dai.o hda-dai-ops.o hda-bus.o \
|
||||
skl.o hda-loader-skl.o \
|
||||
apl.o cnl.o tgl.o icl.o mtl.o hda-common-ops.o
|
||||
|
||||
snd-sof-intel-hda-mlink-objs := hda-mlink.o
|
||||
|
||||
snd-sof-intel-hda-common-$(CONFIG_SND_SOC_SOF_HDA_PROBES) += hda-probes.o
|
||||
|
||||
snd-sof-intel-hda-objs := hda-codec.o
|
||||
@ -19,6 +21,7 @@ obj-$(CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP) += snd-sof-intel-atom.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_BAYTRAIL) += snd-sof-acpi-intel-byt.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_BROADWELL) += snd-sof-acpi-intel-bdw.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_HDA_COMMON) += snd-sof-intel-hda-common.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_HDA_MLINK) += snd-sof-intel-hda-mlink.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_HDA) += snd-sof-intel-hda.o
|
||||
|
||||
snd-sof-pci-intel-tng-objs := pci-tng.o
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <sound/hdaudio_ext.h>
|
||||
#include <sound/hda_register.h>
|
||||
#include <sound/hda_component.h>
|
||||
#include <sound/hda-mlink.h>
|
||||
#include "../ops.h"
|
||||
#include "hda.h"
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <sound/hdaudio_ext.h>
|
||||
#include <sound/hda_register.h>
|
||||
#include <sound/hda-mlink.h>
|
||||
#include <trace/events/sof_intel.h>
|
||||
#include "../sof-audio.h"
|
||||
#include "../ops.h"
|
||||
|
@ -12,21 +12,11 @@
|
||||
|
||||
#include <sound/hdaudio_ext.h>
|
||||
#include <sound/hda_register.h>
|
||||
#include <sound/hda-mlink.h>
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/soundwire/sdw.h>
|
||||
#include <linux/soundwire/sdw_intel.h>
|
||||
#include <sound/intel-dsp-config.h>
|
||||
#include <sound/intel-nhlt.h>
|
||||
#include <sound/sof.h>
|
||||
#include <sound/sof/xtensa.h>
|
||||
#include "../sof-audio.h"
|
||||
#include "../sof-pci-dev.h"
|
||||
#include "../ops.h"
|
||||
#include "hda.h"
|
||||
|
||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_MLINK)
|
||||
|
||||
int hda_bus_ml_get_capabilities(struct hdac_bus *bus)
|
||||
{
|
||||
@ -34,6 +24,7 @@ int hda_bus_ml_get_capabilities(struct hdac_bus *bus)
|
||||
return snd_hdac_ext_bus_get_ml_capabilities(bus);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_NS(hda_bus_ml_get_capabilities, SND_SOC_SOF_HDA_MLINK);
|
||||
|
||||
void hda_bus_ml_free(struct hdac_bus *bus)
|
||||
{
|
||||
@ -47,6 +38,7 @@ void hda_bus_ml_free(struct hdac_bus *bus)
|
||||
kfree(hlink);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_NS(hda_bus_ml_free, SND_SOC_SOF_HDA_MLINK);
|
||||
|
||||
void hda_bus_ml_put_all(struct hdac_bus *bus)
|
||||
{
|
||||
@ -55,6 +47,7 @@ void hda_bus_ml_put_all(struct hdac_bus *bus)
|
||||
list_for_each_entry(hlink, &bus->hlink_list, list)
|
||||
snd_hdac_ext_bus_link_put(bus, hlink);
|
||||
}
|
||||
EXPORT_SYMBOL_NS(hda_bus_ml_put_all, SND_SOC_SOF_HDA_MLINK);
|
||||
|
||||
void hda_bus_ml_reset_losidv(struct hdac_bus *bus)
|
||||
{
|
||||
@ -64,6 +57,7 @@ void hda_bus_ml_reset_losidv(struct hdac_bus *bus)
|
||||
list_for_each_entry(hlink, &bus->hlink_list, list)
|
||||
writel(0, hlink->ml_addr + AZX_REG_ML_LOSIDV);
|
||||
}
|
||||
EXPORT_SYMBOL_NS(hda_bus_ml_reset_losidv, SND_SOC_SOF_HDA_MLINK);
|
||||
|
||||
int hda_bus_ml_resume(struct hdac_bus *bus)
|
||||
{
|
||||
@ -80,10 +74,14 @@ int hda_bus_ml_resume(struct hdac_bus *bus)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_NS(hda_bus_ml_resume, SND_SOC_SOF_HDA_MLINK);
|
||||
|
||||
int hda_bus_ml_suspend(struct hdac_bus *bus)
|
||||
{
|
||||
return snd_hdac_ext_bus_link_power_down_all(bus);
|
||||
}
|
||||
EXPORT_SYMBOL_NS(hda_bus_ml_suspend, SND_SOC_SOF_HDA_MLINK);
|
||||
|
||||
#endif
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <sound/intel-nhlt.h>
|
||||
#include <sound/sof.h>
|
||||
#include <sound/sof/xtensa.h>
|
||||
#include <sound/hda-mlink.h>
|
||||
#include "../sof-audio.h"
|
||||
#include "../sof-pci-dev.h"
|
||||
#include "../ops.h"
|
||||
@ -1730,3 +1731,4 @@ MODULE_IMPORT_NS(SND_SOC_SOF_XTENSA);
|
||||
MODULE_IMPORT_NS(SND_INTEL_SOUNDWIRE_ACPI);
|
||||
MODULE_IMPORT_NS(SOUNDWIRE_INTEL_INIT);
|
||||
MODULE_IMPORT_NS(SOUNDWIRE_INTEL);
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_HDA_MLINK);
|
||||
|
@ -763,26 +763,6 @@ static inline int hda_codec_i915_exit(struct snd_sof_dev *sdev) { return 0; }
|
||||
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
||||
|
||||
int hda_bus_ml_get_capabilities(struct hdac_bus *bus);
|
||||
void hda_bus_ml_free(struct hdac_bus *bus);
|
||||
void hda_bus_ml_put_all(struct hdac_bus *bus);
|
||||
void hda_bus_ml_reset_losidv(struct hdac_bus *bus);
|
||||
int hda_bus_ml_resume(struct hdac_bus *bus);
|
||||
int hda_bus_ml_suspend(struct hdac_bus *bus);
|
||||
|
||||
#else
|
||||
|
||||
static inline int hda_bus_ml_get_capabilities(struct hdac_bus *bus) { return 0; }
|
||||
static inline void hda_bus_ml_free(struct hdac_bus *bus) { }
|
||||
static inline void hda_bus_ml_put_all(struct hdac_bus *bus) { }
|
||||
static inline void hda_bus_ml_reset_losidv(struct hdac_bus *bus) { }
|
||||
static inline int hda_bus_ml_resume(struct hdac_bus *bus) { return 0; }
|
||||
static inline int hda_bus_ml_suspend(struct hdac_bus *bus) { return 0; }
|
||||
|
||||
#endif /* CONFIG_SND_SOC_SOF_HDA */
|
||||
|
||||
/*
|
||||
* Trace Control.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user