Uh oh!
There was an error while loading. Please reload this page.
forked from torvalds/linux
- Notifications
You must be signed in to change notification settings - Fork 150
[RFC] Add Multi-client support in SOF#1200
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
Closed
Uh oh!
There was an error while loading. Please reload this page.
Closed
Changes from all commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
51f3229
ASoC: SOF: Add platform device for audio
ranj063 32634f6
ASoC: SOF: core: modify the signature for snd_sof_create_page_table
ranj063 6258829
ASoC: SOF: add client_data member in snd_sof_client
ranj063 d783e91
ASoC: SOF: ipc: Define new API for client IPC TX
ranj063 4c1f106
ASoC: SOF: Intel: hda-dai: use the sof_client_tx_message() API to sen…
ranj063 4d6a729
ASoC: SOF: pcm: use the sof_client_tx_message() API to send IPC
ranj063 a7abd03
ASoC: SOF: topology: use the sof_client_tx_message() API to send IPC
ranj063 8f7b1eb
ASoC: SOF: ipc: use sof_client_tx_message to send STREAM_POSITION IPC
ranj063 56e7a07
ASoC: SOF: add client IPC RX callback
ranj063 0be5fc9
ASoC: SOF: add a ipc_rx_list member to snd_sof_dev
ranj063 cf215dd
ASoC: SOF: Add support for registering clients for IPC RX
ranj063 935f0a0
ASoC: SOF: partition audio-specific parts from the SOF core
ranj063 fb9bcb6
ASoC: SOF: set IPC RX callback for audio client
ranj063 aec4ef5
ASoC: SOF: add IPC reply callback for audio client
ranj063 67ae4d8
ASoC: SOF: register audio client to receive IPC
ranj063 a14456a
ASoC: SOF: set PM ops for the audio platform device
ranj063 7896a9b
ASoC: SOF: Intel: hda: remove sdev member from sof_intel_hda_stream
ranj063 34548e5
ASoC: SOF: Split DSP ops into core ops and audio ops
ranj063 2ae8aff
ASoC: SOF: Introduce default_fw_filename member in sof_dev_desc
ranj063 ee9d6fb
ASoC: SOF: Add op to select platform-specific machine driver
ranj063 2d55e9e
ASoC: SOF: Intel: hda: set machine_driver_select op
ranj063 6b77f49
ASoC: SOF: move machine driver selection to the audio client
ranj063 83bab61
ASoC: SOF: Add struct to define dai drv info
ranj063 34559d2
ASoC: SOF: export a few functions
ranj063 e08d50a
ASoC: SOF: Intel: Add a platform device for SSP DAI's
ranj063 3a19e06
ASoC: SOF: Intel: Add a platform device for HDA DAI's
ranj063 5cdc774
ASoC: SOF: Intel: Add generic DMIC machine driver
ranj063 405ea74
ASoC: SOF: Intel: Add a platform device for DMIC DAI's
ranj063 fc1e9e3
ASoC: SOF: Add support for multiple clients in snd_sof_dev
ranj063 d9ed9af
ASoC: SOF: Intel: Add support for multiple audio clients
ranj063 29551f7
ASoC: SOF: Define number of dai links for nocodec mode
ranj063 eb5f31f
ASoC: SOF: Separate the audio platform device
ranj063 7723b18
ASoC: SOF: add a kernel config for multi-client support
ranj063 cf45b61
ASoC: Intel: bxt_pcm512x: make HDMI dai links conditional
ranj063 49214ba
Revert "ASoC: Intel: skl_hda_dsp_generic: add DMIC support"
ranj063 0f6bc9c
Revert "ASoC: Intel: skl-hda-dsp-generic: add dmic dapm widget and ro…
ranj063 2c57361
ASoC: SOF: fix a comment
ranj063 a32b294
ASoC: Intel: bxt_da7219_max98357a: make HDMI/DMIC dai links conditional
ranj063 b46494f
ASoC: Intel: skl_hda_dsp_common: remove DMIC definitions
ranj063 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -16,15 +16,14 @@ | ||
| #include <sound/soc-acpi.h> | ||
| struct snd_sof_dsp_ops; | ||
| struct snd_sof_audio_ops; | ||
| /* | ||
| * SOF Platform data. | ||
| */ | ||
| struct snd_sof_pdata { | ||
| const struct firmware *fw; | ||
| const char *drv_name; | ||
| const char *name; | ||
| const char *platform; | ||
| struct device *dev; | ||
| @@ -40,15 +39,9 @@ struct snd_sof_pdata { | ||
| /* descriptor */ | ||
| const struct sof_dev_desc *desc; | ||
| /* firmware and topology filenames */ | ||
| /* firmware filename */ | ||
| const char *fw_filename_prefix; | ||
| const char *fw_filename; | ||
| const char *tplg_filename_prefix; | ||
| const char *tplg_filename; | ||
| /* machine */ | ||
| struct platform_device *pdev_mach; | ||
| const struct snd_soc_acpi_mach *machine; | ||
| void *hw_pdata; | ||
| }; | ||
| @@ -91,13 +84,13 @@ struct sof_dev_desc { | ||
| const char *default_fw_path; | ||
| const char *default_tplg_path; | ||
| /* default firmware name */ | ||
| const char *default_fw_filename; | ||
dbaluta marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| const struct snd_sof_dsp_ops *ops; | ||
| const struct sof_arch_ops *arch_ops; | ||
| }; | ||
| int sof_nocodec_setup(struct device *dev, | ||
| struct snd_sof_pdata *sof_pdata, | ||
| struct snd_soc_acpi_mach *mach, | ||
| const struct sof_dev_desc *desc, | ||
| const struct snd_sof_dsp_ops *ops); | ||
| /* client ops */ | ||
| const struct snd_sof_audio_ops *audio_ops; | ||
| }; | ||
| #endif | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -28,7 +28,7 @@ struct bxt_card_private { | ||
| struct list_head hdmi_pcm_list; | ||
| }; | ||
dbaluta marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| #if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| #if !IS_ENABLED(CONFIG_SND_SOC_SOF_CLIENT) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| static struct snd_soc_jack broxton_hdmi[3]; | ||
| struct bxt_hdmi_pcm { | ||
| @@ -89,11 +89,6 @@ static int bxt_card_late_probe(struct snd_soc_card *card) | ||
| return hdac_hdmi_jack_port_init(component, &card->dapm); | ||
| } | ||
| #else | ||
| static int bxt_card_late_probe(struct snd_soc_card *card) | ||
| { | ||
| return 0; | ||
| } | ||
| #endif | ||
| static const struct snd_soc_dapm_widget dapm_widgets[] = { | ||
| @@ -175,6 +170,7 @@ SND_SOC_DAILINK_DEF(ssp5_codec, | ||
| SND_SOC_DAILINK_DEF(platform, | ||
| DAILINK_COMP_ARRAY(COMP_PLATFORM("0000:00:0e.0"))); | ||
| #if !IS_ENABLED(CONFIG_SND_SOC_SOF_CLIENT) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| SND_SOC_DAILINK_DEF(idisp1_pin, | ||
| DAILINK_COMP_ARRAY(COMP_CPU("iDisp1 Pin"))); | ||
| SND_SOC_DAILINK_DEF(idisp1_codec, | ||
| @@ -189,6 +185,7 @@ SND_SOC_DAILINK_DEF(idisp3_pin, | ||
| DAILINK_COMP_ARRAY(COMP_CPU("iDisp3 Pin"))); | ||
| SND_SOC_DAILINK_DEF(idisp3_codec, | ||
| DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi3"))); | ||
| #endif | ||
| static struct snd_soc_dai_link dailink[] = { | ||
| /* CODEC<->CODEC link */ | ||
| @@ -206,7 +203,7 @@ static struct snd_soc_dai_link dailink[] = { | ||
| .dpcm_capture = 1, | ||
| SND_SOC_DAILINK_REG(ssp5_pin, ssp5_codec, platform), | ||
| }, | ||
| #if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| #if !IS_ENABLED(CONFIG_SND_SOC_SOF_CLIENT) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| { | ||
| .name = "iDisp1", | ||
| .id = 1, | ||
| @@ -244,7 +241,9 @@ static struct snd_soc_card bxt_pcm512x_card = { | ||
| .num_dapm_widgets = ARRAY_SIZE(dapm_widgets), | ||
| .dapm_routes = audio_map, | ||
| .num_dapm_routes = ARRAY_SIZE(audio_map), | ||
| #if !IS_ENABLED(CONFIG_SND_SOC_SOF_CLIENT) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| .late_probe = bxt_card_late_probe, | ||
| #endif | ||
| }; | ||
| /* i2c-<HID>:00 with HID being 8 chars */ | ||
| @@ -264,9 +263,10 @@ static int bxt_pcm512x_probe(struct platform_device *pdev) | ||
| if (!ctx) | ||
| return -ENOMEM; | ||
| #if !IS_ENABLED(CONFIG_SND_SOC_SOF_CLIENT) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) | ||
| if (IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)) | ||
| INIT_LIST_HEAD(&ctx->hdmi_pcm_list); | ||
| #endif | ||
| mach = (&pdev->dev)->platform_data; | ||
| card = &bxt_pcm512x_card; | ||
| card->dev = &pdev->dev; | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a reason for which we move tplg_* away but we keep file_filename inside snd_sof_pdata? If there is a good reason I think we should also do the same modification for sof_dev_desc.
In sof-acpi-dev.c the sof_dev_desc structs contain some default_tplg* members which I think might be removed, right?
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dbaluta fw_filename is hardware-specific but not audio specific. It is required when the HW initialization is done by the core. So thats why I left it there.
Yes, I think it makes sense to move the tplg members from sof_dev_desc to chip_info maybe.
What about machines? Should I move that too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ranj063 reading the code as we speak, will leave a comment later.