Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Deepin-Kernel-SIG] [Upstream] [linux 6.6-y] ASoC: some intel patches from mainline v6.7 and v6.8 #516

Merged
merged 23 commits into from
Dec 6, 2024

Conversation

opsiff
Copy link
Member

@opsiff opsiff commented Dec 5, 2024

Commit:

From mainline-v6.7
ASoC: SOF: ipc4: Fixup dailink format based on copier
Include:
Revert "ASoC: sof: convert not to use asoc_xxx()"
for solve git conflict
ASoC: SOF: ipc4-topology: export sof_ipc4_copier_is_single_format
ASoC: SOF: ipc4-pcm: fixup dailink based on copier format
ASoC: sof: convert not to use asoc_xxx()

ASoC: SOF: ipc4: Take priority into cosideration when sorting pipelines
Include:
ASoC: SOF: IPC4: get pipeline priority from topology
ASoC: SOF: IPC4: sort pipeline based on priority
ASoC: SOF: core: Add probe_early and remove_late callbacks
ASoC: SOF: Intel: hda: start splitting the probe

From mainline-v6.8
ASoC: SOF: IPC path handling and fallback support
Include:
ASoC: SOF: Move sof_of_machine_select() to sof-of-dev.c from sof-audio.c
ASoC: SOF: Move sof_machine_* functions from sof-audio.c to core.c
ASoC: SOF: Add placeholder for platform IPC type and path overrides
ASoC: SOF: sof-acpi-dev: Save the default IPC type and path overrides
ASoC: SOF: sof-of-dev: Save the default IPC type and path overrides
ASoC: SOF: sof-pci-dev: Save the default IPC type and path overrides
ASoC: SOF: core: Implement firmware, topology path setup in core
ASoC: SOF: sof-acpi-dev: Rely on core to create the file paths
ASoC: SOF: sof-of-dev: Rely on core to create the file paths
ASoC: SOF: sof-pci-dev: Rely on core to create the file paths
ASoC: SOF: core: Add helper for initialization of paths, ops
ASoC: SOF: Intel: Do not use resource managed allocation for ipc4_data
ASoC: SOF: core: Implement IPC version fallback if firmware files are…

ASoC: SOF: Intel: lnl: add core get and set support for dsp core

ASoC: SOF: ipc4-pcm: remove log message for LLP

@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from opsiff. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

{
dev_info(dev, "Firmware paths/files for ipc type %d:\n", profile->ipc_type);

dev_info(dev, " Firmware file: %s/%s\n", profile->fw_path, profile->fw_name);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

}

for (j = trigger_list->count - 1; j >= i; j--) {
trigger_list->pipeline_instance_ids[j + 1] = trigger_list->pipeline_instance_ids[j];
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@@ -74,18 +74,10 @@ int sof_acpi_probe(struct platform_device *pdev, const struct sof_dev_desc *desc

sof_pdata->desc = desc;
sof_pdata->dev = &pdev->dev;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@@ -11,7 +11,6 @@
#include <linux/bitfield.h>
#include <trace/events/sof.h>
#include "sof-audio.h"
#include "sof-of-dev.h"
#include "ops.h"

static bool is_virtual_widget(struct snd_sof_dev *sdev, struct snd_soc_dapm_widget *widget,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

#if IS_ENABLED(CONFIG_SND_SOC_SOF_OF_DEV)
struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev);
#else
static inline struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@opsiff opsiff changed the title [Deepin-Kernel-SIG] [Upstream] [linux 6.6-y] ASoC: some intel fixes from mainline v6.7 and v6.8 [Deepin-Kernel-SIG] [Upstream] [linux 6.6-y] ASoC: some intel patches from mainline v6.7 and v6.8 Dec 5, 2024
@opsiff opsiff force-pushed the intel-sof-6.7-6.8 branch from 05aeba4 to 6fddd8e Compare December 5, 2024 15:23
@@ -573,6 +573,7 @@ struct sof_intel_hda_stream {
/*
* DSP Core services.
*/
int hda_dsp_probe_early(struct snd_sof_dev *sdev);
int hda_dsp_probe(struct snd_sof_dev *sdev);
void hda_dsp_remove(struct snd_sof_dev *sdev);
int hda_dsp_core_power_up(struct snd_sof_dev *sdev, unsigned int core_mask);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

}

for (j = trigger_list->count - 1; j >= i; j--) {
trigger_list->pipeline_instance_ids[j + 1] = trigger_list->pipeline_instance_ids[j];
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@@ -74,18 +74,10 @@ int sof_acpi_probe(struct platform_device *pdev, const struct sof_dev_desc *desc

sof_pdata->desc = desc;
sof_pdata->dev = &pdev->dev;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@@ -11,7 +11,6 @@
#include <linux/bitfield.h>
#include <trace/events/sof.h>
#include "sof-audio.h"
#include "sof-of-dev.h"
#include "ops.h"

static bool is_virtual_widget(struct snd_sof_dev *sdev, struct snd_soc_dapm_widget *widget,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

#if IS_ENABLED(CONFIG_SND_SOC_SOF_OF_DEV)
struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev);
#else
static inline struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

opsiff and others added 15 commits December 5, 2024 23:28
to commit ASoC: SOF: ipc4-pcm: fixup dailink based on copier format

This reverts commit 6584822.
mainline inclusion
from mainline-v6.7-rc1
commit 94fc6da upstream.

We will use the sof_ipc4_copier_is_single_format() function to check if a
ipc4 copier has single format available in ipc4-pcm.c in the next patch.

Signed-off-by: Bard Liao <[email protected]>
Reviewed-by: Ranjani Sridharan <[email protected]>
Reviewed-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Peter Ujfalusi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 94fc6da)
mainline inclusion
from mainline-v6.7-rc1
commit 26dfc43 upstream.

When a copier exposes a single format, we can fixup the BE dailink with
that format. This is helpful when some codec have format restrictions and
e.g. don't support a 32-bit format. In that case, the copier output
formats mirror that restriction in the topology file.

An alternate solution was suggested earlier using a dedicated topology
token. When specified, the token would be used to fix-up the dailink. The
main reason why this solution was chosen is that there is a risk of a
disconnect between token definition and copier format. With a single piece
of information as suggested in this patch, there are fewer risks of a bad
configuration.

Signed-off-by: Bard Liao <[email protected]>
Reviewed-by: Ranjani Sridharan <[email protected]>
Reviewed-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Peter Ujfalusi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 26dfc43)
mainline inclusion
from mainline-v6.7-rc1
commit 4d5f411 ("ASoC: sof: convert not to use asoc_xxx()") upstream.

ASoC is now unified asoc_xxx() into snd_soc_xxx().
This patch convert asoc_xxx() to snd_soc_xxx().

Signed-off-by: Kuninori Morimoto <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 4d5f411)
[ Yifan2 Li: amend commit log ]
Signed-off-by: Yifan2 Li <[email protected]>
Signed-off-by: WangYuli <[email protected]>
Signed-off-by: Wentao Guan <[email protected]>
mainline inclusion
from mainline-v6.7-rc1
commit ae67b63 upstream.

Driver set pipeline priority according to priority setting in topology.

Reviewed-by: Péter Ujfalusi <[email protected]>
Signed-off-by: Rander Wang <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Peter Ujfalusi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit ae67b63)
mainline inclusion
from mainline-v6.7-rc1
commit 4df7d6a upstream.

The pipeline priority is set in topology and driver should sort pipeline
based on priority for trigger order.

Reviewed-by: Péter Ujfalusi <[email protected]>
Signed-off-by: Rander Wang <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Peter Ujfalusi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 4df7d6a)
mainline inclusion
from mainline-v6.7-rc1

The existing DSP probe may be handled in a workqueue to allow for
extra time, typically for the i915 request_module and HDAudio codec
handling.

With the upcoming changes for i915/Xe driver relying on the
-EPROBE_DEFER mechanism, we need to have a first pass of the probe
which cannot be pushed to a workqueue. Introduce 2 new optional
callbacks.

probe_early is called before the workqueue runs. remove_late may be
called from the workqueue if load is unsuccesful, but will otherwise
be called on module unload.

Signed-off-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Maarten Lankhorst <[email protected]>
Acked-by: Mark Brown <[email protected]>
Reviewed-by: Peter Ujfalusi <[email protected]>
Acked-by: Peter Ujfalusi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
(cherry picked from commit 17baaa1)
mainline inclusion
from mainline-v6.7-rc1

This patch moves the initial parts of the probe to the probe_early()
callback, which provides a much faster decision on whether the SOF
driver shall deal with a specific platform or yield to other Intel
drivers.

This is a limited functionality change, the bigger change is to move
the i915/Xe initialization to the probe_early().

Signed-off-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Maarten Lankhorst <[email protected]>
Acked-by: Mark Brown <[email protected]>
Reviewed-by: Peter Ujfalusi <[email protected]>
Acked-by: Peter Ujfalusi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
(cherry picked from commit f1977d5)
mainline inclusion
from mainline-v6.8-rc1
commit 9b68965 upstream.

Move the sof_of_machine_select() function to sof-of-dev.c file and provide
an inline stub in case of non OF builds.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 014fdeb)
mainline inclusion
from mainline-v6.8-rc1

Relocate the machine handling functions from sof-audio.c to core.c to
maintain code separation.

While doing the move, drop the redundant
IS_ERR_OR_NULL(plat_data->pdev_mach) check from
sof_machine_unregister()

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 3bc3477)
mainline inclusion
from mainline-v6.8-rc1

Add a struct sof_loadable_file_profile which can be filled by platforms
(sof-acpi-dev.c, sof-of-dev.c and sof-acpi-dev.c) to be able to use common,
generic code to handle path customization.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 1162d26)
mainline inclusion
from mainline-v6.8-rc1

Store the default IPC type and the firmware and topology path overrides to
ipc_file_profile_base

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit a07625d)
mainline inclusion
from mainline-v6.8-rc1

Store the default IPC type and the firmware and topology path overrides to
ipc_file_profile_base

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 396016d)
mainline inclusion
from mainline-v6.8-rc1

Store the default IPC type and the overrides to ipc_file_profile_base

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 59ddeae)
mainline inclusion
from mainline-v6.8-rc1

Use the information stored in ipc_file_profile_base by platforms to
construct the paths, filenames that are going to be used to load the
firmware and topology files.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit b1a4ee9)
ujfalusi and others added 8 commits December 5, 2024 23:28
mainline inclusion
from mainline-v6.8-rc1

The core is now using the information from ipc_file_profile_base to create
the paths for the loadable files, no need to set it in here anymore.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit b2b0bba)
mainline inclusion
from mainline-v6.8-rc1

The core is now using the information from ipc_file_profile_base to create
the paths for the loadable files, no need to set it in here anymore.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 8616168)
mainline inclusion
from mainline-v6.8-rc1

The core is now using the information from ipc_file_profile_base to create
the paths for the loadable files, no need to set it in here anymore.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 8a83f18)
mainline inclusion
from mainline-v6.8-rc1

Add sof_init_environment() as a helper function to contain path and ops
initialization.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit a5a6543)
mainline inclusion
from mainline-v6.8-rc1
commit 9b68965 upstream.

Manage the ipc4_data allocation in code instead of devm since the ops_init
might be called more than once due to IPC type fallback.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 9b68965)
… missing

mainline inclusion
from mainline-v6.8-rc1

If a firmware file is missing for the selected IPC type then try to switch
to other supported IPC type and check if that one can be used instead.

If for example a platform is changed to IPC4 as default version but the
given machine does not yet have the needed topology file created then we
will fall back to IPC3 which should have all the needed files.

Relocate the sof_init_environment() to be done at a later phase, in
sof_probe_continue().

This will only have changes in behavior if
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE is enabled (Intel HDA platforms) by
not failing the module probe, but it is not going to be different case
compared to for example failed firmware booting or topology loading error.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 6c393eb)
mainline inclusion
from mainline-v6.8-rc1

Driver uses get and set ops to change the power state of dsp core.

Closes: thesofproject/sof#8478
Signed-off-by: Rander Wang <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit f31c166)
mainline inclusion
from mainline-v6.8-rc1

LLP is supported by I2S and SDW platforms but not supported by HDA
platforms. This log is used to notify developer current LLP status
for current device. Since above case is known to developers, the log
is unnecessary and should be removed.

Fixes: 7cb1900 ("ASoC: SOF: ipc4-pcm: add hw_params")
Signed-off-by: Rander Wang <[email protected]>
Reviewed-by: Péter Ujfalusi <[email protected]>
Reviewed-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Peter Ujfalusi <[email protected]>
Link: https://msgid.link/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 848c8f5)
@opsiff opsiff force-pushed the intel-sof-6.7-6.8 branch from 6fddd8e to 4495546 Compare December 5, 2024 15:28
@@ -573,6 +573,7 @@ struct sof_intel_hda_stream {
/*
* DSP Core services.
*/
int hda_dsp_probe_early(struct snd_sof_dev *sdev);
int hda_dsp_probe(struct snd_sof_dev *sdev);
void hda_dsp_remove(struct snd_sof_dev *sdev);
int hda_dsp_core_power_up(struct snd_sof_dev *sdev, unsigned int core_mask);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

}

for (j = trigger_list->count - 1; j >= i; j--) {
trigger_list->pipeline_instance_ids[j + 1] = trigger_list->pipeline_instance_ids[j];
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@@ -74,18 +74,10 @@ int sof_acpi_probe(struct platform_device *pdev, const struct sof_dev_desc *desc

sof_pdata->desc = desc;
sof_pdata->dev = &pdev->dev;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@@ -11,7 +11,6 @@
#include <linux/bitfield.h>
#include <trace/events/sof.h>
#include "sof-audio.h"
#include "sof-of-dev.h"
#include "ops.h"

static bool is_virtual_widget(struct snd_sof_dev *sdev, struct snd_soc_dapm_widget *widget,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

#if IS_ENABLED(CONFIG_SND_SOC_SOF_OF_DEV)
struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev);
#else
static inline struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@deepin-ci-robot
Copy link

deepin pr auto review

diff --git a/sound/soc/sof/sof-topology.c b/sound/soc/sof/sof-topology.c
index 8d6b8a9d8e8e0..a6b8d8b8d8d8d 100644
--- a/sound/soc/sof/sof-topology.c
+++ b/sound/soc/sof/sof-topology.c
@@ -4,6 +4,7 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/pci.h>
+#include <linux/dmi.h>
#include <sound/pcm_params.h>
#include <sound/pcm.h>
#include <sound/soc.h>
@@ -8,6 +9,7 @@
#include <sound/sof.h>
#include <sound/pcm_params.h>
#include <sound/pcm_dmix.h>
+#include <sound/sof-priv.h>
#include "sof-audio.h"
#include "sof-priv.h"
#include "ops.h"
@@ -431,6 +433,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -439,6 +442,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -516,6 +520,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -524,6 +529,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -616,6 +622,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -624,6 +631,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -716,6 +724,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -724,6 +733,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -816,6 +825,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -824,6 +834,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -916,6 +927,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -924,6 +935,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1016,6 +1028,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1024,6 +1037,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1116,6 +1130,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1124,6 +1139,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1216,6 +1232,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1224,6 +1241,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1316,6 +1334,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1324,6 +1343,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1416,6 +1436,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1424,6 +1445,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1516,6 +1538,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1524,6 +1547,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1616,6 +1640,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1624,6 +1649,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1716,6 +1743,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1724,6 +1752,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1816,6 +1845,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1824,6 +1854,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -1916,6 +1947,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -1924,6 +1955,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -2016,6 +2048,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -2024,6 +2057,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -2116,6 +2149,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -2124,6 +2158,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -2216,6 +2251,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -2224,6 +2260,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -2316,6 +2353,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -2324,6 +2362,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -2416,6 +2455,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;
    int ret;

    /* get pipeline id */
    @@ -2424,6 +2464,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
    if (ret < 0)
    return ret;

  • pipeline->priority = process->priority;
    pipeline->core_id = process->core_id;
    pipeline->lp_mode = process->lp_mode;

@@ -2516,6 +2557,7 @@ static int sof_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_dev *sdev = swidget->sdev;
struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
struct sof_ipc4_pipeline *pipeline = pipe_widget->private;

  • struct sof_ipc4_process *process = swidget->private;

@opsiff opsiff merged commit 1488101 into linux-6.6.y Dec 6, 2024
7 of 10 checks passed
@opsiff opsiff deleted the intel-sof-6.7-6.8 branch December 7, 2024 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants