Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
639b7e9
ASoC: SOF: Move sof_of_machine_select() to sof-of-dev.c from sof-audio.c
ujfalusi Apr 26, 2023
145837c
ASoC: SOF: Move sof_machine_* functions from sof-audio.c to core.c
ujfalusi Apr 26, 2023
9c495a2
ASoC: SOF: Add placeholder for platform IPC type and path overrides
ujfalusi Apr 20, 2023
3c6d405
ASoC: SOF: sof-acpi-dev: Save the default IPC type and path overrides
ujfalusi Apr 20, 2023
12b5bdb
ASoC: SOF: sof-of-dev: Save the default IPC type and path overrides
ujfalusi Apr 20, 2023
2276c6e
ASoC: SOF: sof-pci-dev: Save the default IPC type and path overrides
ujfalusi Apr 20, 2023
f2f383e
ASoC: SOF: core: Implement firmware, topology path setup in core
ujfalusi Apr 20, 2023
20ce541
ASoC: SOF: sof-acpi-dev: Rely on core to create the file paths
ujfalusi Apr 20, 2023
fd827c4
ASoC: SOF: sof-of-dev: Rely on core to create the file paths
ujfalusi Apr 20, 2023
6932860
ASoC: SOF: sof-pci-dev: Rely on core to create the file paths
ujfalusi Apr 20, 2023
f96ad75
ASoC: SOF: core: Add helper for initialization of paths, ops
ujfalusi Apr 27, 2023
040635e
ASoC: SOF: core: Implement IPC version fallback if firmware files are…
ujfalusi Apr 27, 2023
b779702
ASoC: SOF: Intel: Do not use resource managed allocation for ipc4_data
ujfalusi Apr 28, 2023
ef95596
ASoC: SOF: Intel: lnl: Do not use resource managed allocation for ipc…
ujfalusi Apr 28, 2023
93548f9
ASoC: SOF: Add Kconfig option to limit the IPC fallback to older vers…
ujfalusi Aug 30, 2023
8bf60c2
-- ipc file profile in core --
ujfalusi Apr 21, 2023
8ac8a3a
ASoC: SOF: Intel: pci-tgl: Change the default paths and firmware names
ujfalusi May 26, 2023
f8ac83b
-- TGL family ipc path change --
ujfalusi Sep 7, 2023
f17d8e7
ASoC: SOF: pci-cnl: Align the IPC4 firmware paths for cfl and cml
ujfalusi Apr 17, 2023
d9b46a3
ASoC: SOF: Add vendor and platform strings to sof_dev_desc
ujfalusi Apr 18, 2023
a9bf5aa
ASoC: SOF: amd: Add vendor and platform names for device descriptors
ujfalusi Apr 18, 2023
5fe72da
ASoC: SOF: imx: Add vendor and platform names for device descriptors
ujfalusi Apr 18, 2023
5227125
ASoC: SOF: Intel: Add vendor and platform names for device descriptors
ujfalusi Apr 18, 2023
9d932dc
ASoC: SOF: mediatek: Add vendor and platform names for device descrip…
ujfalusi Apr 18, 2023
4b492dd
ASoC: SOF: fw-file-profile: Support for different layouts per IPC type
ujfalusi Sep 20, 2023
0dd74f4
ASoC: SOF: amd: Drop default fw_path, tplg_path and fw_filename from …
ujfalusi Apr 18, 2023
0d93344
ASoC: SOF: imx: Drop default fw_path, tplg_path and fw_filename from …
ujfalusi Apr 18, 2023
3004863
ASoC: SOF: Intel: Drop default fw_path, tplg_path and fw_filename fro…
ujfalusi Apr 18, 2023
54150df
ASoC: SOF: mediatek: Drop default fw_path, tplg_path and fw_filename …
ujfalusi Apr 18, 2023
b690419
ASoC: SOF: Remove the string arrays used for default paths and firmwa…
ujfalusi Apr 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 17 additions & 7 deletions include/sound/sof.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,17 @@ enum sof_ipc_type {
SOF_IPC_TYPE_COUNT
};

struct sof_loadable_file_profile {
enum sof_ipc_type ipc_type;

const char *fw_path;
const char *fw_name;
const char *fw_lib_path;
const char *fw_path_postfix;
const char *tplg_path;
const char *tplg_name;
};

/*
* SOF Platform data.
*/
Expand Down Expand Up @@ -86,6 +97,9 @@ struct snd_sof_pdata {
/* descriptor */
const struct sof_dev_desc *desc;

/* platform's preferred IPC type and path overrides */
struct sof_loadable_file_profile ipc_file_profile_base;

/* firmware and topology filenames */
const char *fw_filename_prefix;
const char *fw_filename;
Expand Down Expand Up @@ -143,13 +157,9 @@ struct sof_dev_desc {
/* The platform supports DSPless mode */
bool dspless_mode_supported;

/* defaults paths for firmware, library and topology files */
const char *default_fw_path[SOF_IPC_TYPE_COUNT];
const char *default_lib_path[SOF_IPC_TYPE_COUNT];
const char *default_tplg_path[SOF_IPC_TYPE_COUNT];

/* default firmware name */
const char *default_fw_filename[SOF_IPC_TYPE_COUNT];
/* strings used for the firmware layout path/filename creation */
const char *vendor;
const char *platform;

struct snd_sof_dsp_ops *ops;
int (*ops_init)(struct snd_sof_dev *sdev);
Expand Down
11 changes: 11 additions & 0 deletions sound/soc/sof/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,17 @@ config SND_SOC_SOF_STRICT_ABI_CHECKS
If you are not involved in SOF releases and CI development,
select "N".

config SND_SOC_SOF_ALLOW_FALLBACK_TO_NEWER_IPC_VERSION
bool "SOF allow fallback to newer IPC version"
help
This option will allow the kernel to try to 'fallback' to a newer IPC
version if there are missing firmware files to satisfy the default IPC
version.
IPC version fallback to older versions is not affected by this option,
it is always available.
Say Y if you are involved in SOF development and need this option.
If not, select N.

config SND_SOC_SOF_DEBUG
bool "SOF debugging features"
help
Expand Down
3 changes: 2 additions & 1 deletion sound/soc/sof/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)

snd-sof-objs := core.o ops.o loader.o ipc.o pcm.o pm.o debug.o topology.o\
control.o trace.o iomem-utils.o sof-audio.o stream-ipc.o
control.o trace.o iomem-utils.o sof-audio.o stream-ipc.o\
fw-file-profile.o

# IPC implementations
ifneq ($(CONFIG_SND_SOC_SOF_IPC3),)
Expand Down
11 changes: 2 additions & 9 deletions sound/soc/sof/amd/pci-rmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,8 @@ static const struct sof_dev_desc rembrandt_desc = {
.chip_info = &rembrandt_chip_info,
.ipc_supported_mask = BIT(SOF_IPC_TYPE_3),
.ipc_default = SOF_IPC_TYPE_3,
.default_fw_path = {
[SOF_IPC_TYPE_3] = "amd/sof",
},
.default_tplg_path = {
[SOF_IPC_TYPE_3] = "amd/sof-tplg",
},
.default_fw_filename = {
[SOF_IPC_TYPE_3] = "sof-rmb.ri",
},
.vendor = "amd",
.platform = "rmb",
.nocodec_tplg_filename = "sof-acp.tplg",
.ops = &sof_rembrandt_ops,
.ops_init = sof_rembrandt_ops_init,
Expand Down
11 changes: 2 additions & 9 deletions sound/soc/sof/amd/pci-rn.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,8 @@ static const struct sof_dev_desc renoir_desc = {
.chip_info = &renoir_chip_info,
.ipc_supported_mask = BIT(SOF_IPC_TYPE_3),
.ipc_default = SOF_IPC_TYPE_3,
.default_fw_path = {
[SOF_IPC_TYPE_3] = "amd/sof",
},
.default_tplg_path = {
[SOF_IPC_TYPE_3] = "amd/sof-tplg",
},
.default_fw_filename = {
[SOF_IPC_TYPE_3] = "sof-rn.ri",
},
.vendor = "amd",
.platform = "rn",
.nocodec_tplg_filename = "sof-acp.tplg",
.ops = &sof_renoir_ops,
.ops_init = sof_renoir_ops_init,
Expand Down
11 changes: 2 additions & 9 deletions sound/soc/sof/amd/pci-vangogh.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,8 @@ static const struct sof_dev_desc vangogh_desc = {
.chip_info = &vangogh_chip_info,
.ipc_supported_mask = BIT(SOF_IPC_TYPE_3),
.ipc_default = SOF_IPC_TYPE_3,
.default_fw_path = {
[SOF_IPC_TYPE_3] = "amd/sof",
},
.default_tplg_path = {
[SOF_IPC_TYPE_3] = "amd/sof-tplg",
},
.default_fw_filename = {
[SOF_IPC_TYPE_3] = "sof-vangogh.ri",
},
.vendor = "amd",
.platform = "vangogh",
.nocodec_tplg_filename = "sof-acp.tplg",
.ops = &sof_vangogh_ops,
.ops_init = sof_vangogh_ops_init,
Expand Down
Loading