Peter Ujfalusi
729bb2cd2e
ASoC: SOF: ipc4: Move window offset configuration earlier
...
With the added exception handling support if the firmware fails to boot
up we are trying to do a panic dump from the telemetry slot. The slot
offsets would have been configured only after receiving the FW_READY
message which makes this panic dump unusable for early boot failures.
With IPC4 the DSP window offsets are at standard places unlike IPC3 where
the offsets needs to be queried from the FW_READY message.
Move the offset configuration to sof_ipc4_init from the fw_ready handler.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231129122805.10635-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:26 +00:00
Bard Liao
2bd512626f
ASoC: SOF: ipc4: check return value of snd_sof_ipc_msg_data
...
snd_sof_ipc_msg_data could return error.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231129122021.679-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:25 +00:00
Peter Ujfalusi
6c393ebbd7
ASoC: SOF: core: Implement IPC version fallback if firmware files are missing
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-14-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:15 +00:00
Peter Ujfalusi
9b6896538e
ASoC: SOF: Intel: Do not use resource managed allocation for ipc4_data
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-13-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:14 +00:00
Peter Ujfalusi
a5a65437b0
ASoC: SOF: core: Add helper for initialization of paths, ops
...
Add sof_init_environment() as a helper function to contain path and ops
initialization.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-12-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:13 +00:00
Peter Ujfalusi
8a83f180ab
ASoC: SOF: sof-pci-dev: Rely on core to create the file paths
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-11-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:12 +00:00
Peter Ujfalusi
8616168928
ASoC: SOF: sof-of-dev: Rely on core to create the file paths
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-10-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:11 +00:00
Peter Ujfalusi
b2b0bba36f
ASoC: SOF: sof-acpi-dev: Rely on core to create the file paths
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-9-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:10 +00:00
Peter Ujfalusi
b1a4ee9fd5
ASoC: SOF: core: Implement firmware, topology path setup in core
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-8-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:09 +00:00
Peter Ujfalusi
59ddeae037
ASoC: SOF: sof-pci-dev: Save the default IPC type and path overrides
...
Store the default IPC type and the overrides to ipc_file_profile_base
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-7-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:09 +00:00
Peter Ujfalusi
396016d56d
ASoC: SOF: sof-of-dev: Save the default IPC type and path overrides
...
Store the default IPC type and the firmware and topology path overrides to
ipc_file_profile_base
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-6-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:08 +00:00
Peter Ujfalusi
a07625dcaf
ASoC: SOF: sof-acpi-dev: Save the default IPC type and path overrides
...
Store the default IPC type and the firmware and topology path overrides to
ipc_file_profile_base
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-5-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:07 +00:00
Peter Ujfalusi
3bc3477915
ASoC: SOF: Move sof_machine_* functions from sof-audio.c to core.c
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:05 +00:00
Peter Ujfalusi
014fdeb0d7
ASoC: SOF: Move sof_of_machine_select() to sof-of-dev.c from sof-audio.c
...
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 <peter.ujfalusi@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231129125327.23708-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-29 13:25:04 +00:00
Kamil Duljas
8c91ca76f4
ASoC: SOF: icp3-dtrace: Fix wrong kfree() usage
...
trace_filter_parse() allocs memory for *out and when
-ENOMEM is returned, caller function, dfsentry_trace_filter_write()
trying to freed this memory.
After this patch, the memory is freed in trace_filter_parse()
before -EINVAL returned. In caller function removed kfree(elms)
from error label
Signed-off-by: Kamil Duljas <kamil.duljas@gmail.com >
Link: https://lore.kernel.org/r/20231116220102.2097-2-kamil.duljas@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-28 14:19:12 +00:00
Cezary Rojewski
176d138811
ASoC: SOF: Intel: Switch to new stream-format interface
...
To provide option for selecting different bit-per-sample than just the
maximum one, use the new format calculation mechanism.
Acked-by: Mark Brown <broonie@kernel.org >
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com >
Acked-by: Jaroslav Kysela <perex@perex.cz >
Link: https://lore.kernel.org/r/20231117120610.1755254-13-cezary.rojewski@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-11-27 17:28:35 +01:00
Peter Ujfalusi
9b3cd8ebb1
ASoC: SOF: Intel: Use existing helpers to change GPROCEN and PIE bits
...
Instead of directly changing the GPROCEN/PIE bits in PPCTL we should use
the existing helper hda_dsp_ctrl_ppcap_enable() and
hda_dsp_ctrl_ppcap_int_enable() helpers for clarity.
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231127104313.16661-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-27 13:44:08 +00:00
Yong Zhi
d5070d0c10
ASoC: SOF: Intel: mtl: call dsp dump when boot retry fails
...
Call snd_sof_dsp_dbg_dump() with the same flags/dump_msg
as used in function hda_loader.c/cl_dsp_init().
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Yong Zhi <yong.zhi@intel.com >
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231127105235.30071-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-27 13:44:07 +00:00
Peter Ujfalusi
0ff23d4607
ASoC: SOF: ipc4: Handle ALSA kcontrol change notification from firmware
...
The control change notification is sent as module notification with a
standardized event_id (higher 16 bit is 0xA15A).
Add generic code to handle the module notification and invoke the control
update callback if the notification is an ALSA kcontrol change message.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231124150853.18648-5-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-24 15:38:01 +00:00
Peter Ujfalusi
f5eb9945cf
ASoC: SOF: ipc4-control: Implement control update for switch/enum controls
...
Implement the sof_ipc_tplg_control_ops.update function to support a control
change notification from the firmware on switch or enum control types.
Based on the module notification message content, look up the swidget, then
the scontrol which was the source of the notification then if the message
contains the changed values update the cached values.
If only a notification without values received, marked the control as dirty
and on next read access fetch the new values from the firmware.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231124150853.18648-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-24 15:38:00 +00:00
Peter Ujfalusi
5980bda0a9
ASoC: SOF: ipc4-topology: Helper to find an swidget by module/instance id
...
The sof_ipc4_find_swidget_by_ids() can be used to find the swidget of a
module instance.
The lookup parameters are the module_id and the instance_id.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231124150853.18648-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-24 15:37:59 +00:00
Ranjani Sridharan
31ed8da1c8
ASoC: SOF: sof-audio: Modify logic for enabling/disabling topology cores
...
In the current code, we enable a widget core when it is set up and
disable it when it is freed. This is problematic with IPC4 because
widget free is essentially a NOP and all widgets are freed in the
firmware when the pipeline is deleted. This results in a crash during
pipeline deletion when one of it's widgets is scheduled to run on a
secondary core and is powered off when widget is freed. So, change the
logic to enable all cores needed by all the modules in a pipeline when
the pipeline widget is set up and disable them after the pipeline
widget is freed.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231124135743.24674-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-24 14:15:06 +00:00
Ranjani Sridharan
0376b995bb
ASoC: SOF: ipc4-topology: Add core_mask in struct snd_sof_pipeline
...
With IPC4, a pipeline may contain multiple modules in the data
processing domain and they can be scheduled to run on different cores.
Add a new field in struct snd_sof_pipeline to keep track of all the
cores that are associated with the modules in the pipeline. Set the
pipeline core mask for IPC3 when initializing the pipeline widget IPC
structure. For IPC4, set the core mark when initializing the pipeline
widget and initializing processing modules in the data processing domain.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231124135743.24674-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-24 14:15:06 +00:00
AngeloGioacchino Del Regno
505c83212d
ASoC: SOF: mediatek: mt8186: Add Google Steelix topology compatible
...
Add the machine compatible and topology filename for the Google Steelix
MT8186 Chromebook to load the correct SOF topology file.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Link: https://lore.kernel.org/r/20231123084454.20471-1-angelogioacchino.delregno@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-23 12:41:45 +00:00
Kamil Duljas
31e721fbd1
ASoC: SOF: topology: Fix mem leak in sof_dai_load()
...
The function has multiple return points at which it is not released
previously allocated memory.
Signed-off-by: Kamil Duljas <kamil.duljas@gmail.com >
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231116213926.2034-2-kamil.duljas@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-17 12:47:50 +00:00
Mark Brown
8aa49ba733
ASoC: SOF: Add support for MICFIL PDM interface
...
Merge series from Daniel Baluta <daniel.baluta@oss.nxp.com >:
This is used for configuring MICFIL PDM with i.MX8MPlus. Tested
with 8MIC-RPI-MX8 microphone array.
2023-11-13 14:08:49 +00:00
Trevor Wu
a08ee9d00e
ASoC: SOF: mediatek: remove unused variables
...
To prevent confusion on the follow-up platform, it is necessary to
remove any unused variables within the struct mtk_adsp_chip_info.
Signed-off-by: Trevor Wu <trevor.wu@mediatek.com >
Reviewed-by: Yaochun Hung <yc.hung@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Link: https://lore.kernel.org/r/20231103095433.10475-4-trevor.wu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-13 00:44:31 +00:00
Trevor Wu
a4de5a345c
ASoC: SOF: mediatek: mt8186: clean up unused code
...
Since there are some variables that are no longer being used, we remove
the code that was implemented for those variables.
Signed-off-by: Trevor Wu <trevor.wu@mediatek.com >
Reviewed-by: Yaochun Hung <yc.hung@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Link: https://lore.kernel.org/r/20231103095433.10475-3-trevor.wu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-13 00:44:30 +00:00
Trevor Wu
ab47596645
ASoC: SOF: mediatek: mt8195: clean up unused code
...
Since there are some variables that are no longer being used, we remove
the code that was implemented for those variables.
Signed-off-by: Trevor Wu <trevor.wu@mediatek.com >
Reviewed-by: Yaochun Hung <yc.hung@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Link: https://lore.kernel.org/r/20231103095433.10475-2-trevor.wu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-13 00:44:29 +00:00
Daniel Baluta
89ef42088b
ASoC: SOF: Add support for configuring PDM interface from topology
...
Currently we only support configuration for number of channels and
sample rate.
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com >
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com >
Link: https://lore.kernel.org/r/20231109135900.88310-3-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-13 00:43:06 +00:00
Daniel Baluta
fc85d9d0b3
ASoC: SOF: imx8m: Add DAI driver entry for MICFIL PDM
...
This will allow creating of PDM DAI links.
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com >
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com >
Link: https://lore.kernel.org/r/20231109135900.88310-2-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-13 00:43:05 +00:00
Takashi Iwai
53b5fdb617
Merge tag 'asoc-fix-v6.7-merge-window' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
...
ASoC: Fixes for v6.7
A collection of fixes that have come in during the merge window, the
majority of this is driver specific with one core fix for handling of
DAPM clock widgets when a name prefix is specified for the card - the
name should not be applied to the clock name we request from the clock
API.
2023-11-08 17:44:06 +01:00
Eugen Hristev
45f2f28bd4
ASoC: SOF: sof-client: trivial: fix comment typo
...
Fix typo s/depndent/dependent
Fixes: 6e9548cdb3 ("ASoC: SOF: Convert the generic IPC flood test into SOF client")
Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Link: https://lore.kernel.org/r/20231031112218.79136-1-eugen.hristev@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-11-07 11:10:19 +00:00
Takashi Iwai
2dc15ff73b
Merge tag 'asoc-v6.7-2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
...
ASoC: Updates for v6.7
More updates for v6,7 following the early merge request:
- Fixes for handling of component name prefixing when name prefixes
are used by the machine driver.
- Fixes for noise when stopping some Sounwire CODECs.
- Support for AMD ACP 6.3 and 7.0, Awinc AW88399, more Intel
platforms and more Qualcomm SC7180 platforms.
2023-10-31 09:01:25 +01:00
Mark Brown
bdb7e19220
ASoC: Merge up workaround for CODECs that play noise on stopped stream
...
This was sent too late to actually make it for v6.6 but was sent against
v6.6 so merge it up here.
2023-10-27 22:33:15 +01:00
Takashi Iwai
264aeb994e
ASoC: SOF: Make return of remove_late void, too
...
Like the change we've done for remove callback, the newly introduced
remove_late callback should be changed to void return, too.
Fixes: 17baaa1f95 ("ASoC: SOF: core: Add probe_early and remove_late callbacks")
Acked-by: Mark Brown <broonie@kernel.org >
Link: https://lore.kernel.org/r/20231023153605.863-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-25 08:38:35 +02:00
Vijendar Mukunda
145d7e5ae8
ASoC: SOF: amd: add option to use sram for data bin loading
...
Provide an option to load DSP data bin to ACP SRAM.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://lore.kernel.org/r/20231020062822.3913760-5-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-10-23 13:29:56 +01:00
Vijendar Mukunda
135e0d49cd
ASoC: SOF: amd: refactor acp dram usage for data bin loading
...
DSP data bin can be loaded in to ACP DRAM or ACP SRAM.
Add conditional check for ACP DRAM usage for data bin loading.
Rename DRAM base address macro to have symmetry.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://lore.kernel.org/r/20231020062822.3913760-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-10-23 13:29:56 +01:00
Vijendar Mukunda
4dbee5104b
ASoC: SOF: amd: increase DSP cache window range
...
Increase DSP cache window range to 2.5MB to align with ACP memory.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://lore.kernel.org/r/20231020062822.3913760-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-10-23 13:29:55 +01:00
Vijendar Mukunda
848c0d34f7
ASoC: SOF: amd: add support for acp6.3 based platform
...
Add SOF support for ACP6.3 version based platform
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://lore.kernel.org/r/20231020062822.3913760-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-10-23 13:29:54 +01:00
Mark Hasemeyer
7dd692217b
ASoC: SOF: sof-pci-dev: Fix community key quirk detection
...
Some Chromebooks do not populate the product family DMI value resulting
in firmware load failures.
Add another quirk detection entry that looks for "Google" in the BIOS
version. Theoretically, PRODUCT_FAMILY could be replaced with
BIOS_VERSION, but it is left as a quirk to be conservative.
Cc: stable@vger.kernel.org
Signed-off-by: Mark Hasemeyer <markhas@chromium.org >
Acked-by: Curtis Malainey <cujomalainey@chromium.org >
Link: https://lore.kernel.org/r/20231020145953.v1.1.Iaf5702dc3f8af0fd2f81a22ba2da1a5e15b3604c@changeid
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-10-23 13:27:14 +01:00
Takashi Iwai
39cd06e3f7
Merge tag 'asoc-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
...
ASoC: Updates for v6.7
This is quite a large set of changes but mostly due to API cleanups and
in driver specific ways rather than due to anything subsystem wide.
Highlights include:
- Standardisation of API prefixes on snd_soc_, removing asoc_.
- GPIO API usage improvements.
- Support for HDA patches.
- Lots of work on SOF, including crash dump support.
- Support for AMD platforms with es83xx, Awinc AT87390, many Intel
platforms, many Mediatek platforms, Qualcomm SM6115, Richtek RTQ9128
and Texas Instruments TAS575x.
[ the merge conflicts around SOF Intel HD-audio and CS35L41 subcodec
drivers are resolved here -- tiwai ]
2023-10-21 09:49:15 +02:00
Maarten Lankhorst
e6d0c13e9f
ALSA: hda: i915: Remove extra argument from snd_hdac_i915_init
...
Now that all drivers have moved from modprobe loading to
handling -EPROBE_DEFER, we can remove the argument again.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-14-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:56:25 +02:00
Maarten Lankhorst
3d1a055813
ASoC: SOF: Intel: Move binding to display driver outside of deferred probe
...
Now that we can use -EPROBE_DEFER, it's no longer required to spin off
the snd_hdac_i915_init into a workqueue.
Use the -EPROBE_DEFER mechanism instead, which must be returned in the
probe function.
The previously added probe_early can be used for this,
and we also use the newly added remove_late for unbinding afterwards.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-13-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:56:20 +02:00
Maarten Lankhorst
32f4e921fe
ALSA: hda: i915: Add an allow_modprobe argument to snd_hdac_i915_init
...
Xe is a new GPU driver that re-uses the display (and sound) code from
i915. It's no longer possible to load i915, as the GPU can be driven
by the xe driver instead.
The new behavior will return -EPROBE_DEFER, and wait for a compatible
driver to be loaded instead of modprobing i915.
Converting all drivers at the same time is a lot of work, instead we
will convert each user one by one.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-8-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:55:27 +02:00
Maarten Lankhorst
03448e5df5
ASoC: SOF: Intel: Fix error handling in hda_init()
...
The hda_codec_i915_init() errors are ignored in
hda_init() so it can never return -EPROBE_DEFER.
Fix this before we move the call to hda_init() from the
deferred probe to early probe.
While at it, also fix error handling when hda_dsp_ctrl_get_caps
fails.
Suggested-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com >
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-5-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:54:49 +02:00
Pierre-Louis Bossart
f1977d5ba0
ASoC: SOF: Intel: hda: start splitting the probe
...
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 <pierre-louis.bossart@linux.intel.com >
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Acked-by: Mark Brown <broonie@kernel.org >
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-4-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:54:33 +02:00
Pierre-Louis Bossart
17baaa1f95
ASoC: SOF: core: Add probe_early and remove_late callbacks
...
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 <pierre-louis.bossart@linux.intel.com >
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Acked-by: Mark Brown <broonie@kernel.org >
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-3-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:53:50 +02:00
Maarten Lankhorst
f549a82aff
ASoC: SOF: core: Ensure sof_ops_free() is still called when probe never ran.
...
In an effort to not call sof_ops_free twice, we stopped running it when
probe was aborted.
Check the result of cancel_work_sync to see if this was the case.
Fixes: 31bb7bd9ff ("ASoC: SOF: core: Only call sof_ops_free() on remove if the probe was successful")
Cc: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Acked-by: Mark Brown <broonie@kernel.org >
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: https://lore.kernel.org/r/20231009115437.99976-2-maarten.lankhorst@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2023-10-19 14:52:32 +02:00
Pierre-Louis Bossart
e4d09de391
ASoC: SOF: make .remove callback return void
...
We don't use the returned value and return 0 anyways, let's follow the
example of platform drivers and simplify the definitions.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com >
Reviewed-by: Rander Wang <rander.wang@intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://lore.kernel.org/r/20231012191850.147140-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2023-10-12 20:28:12 +01:00