diff for duplicates of <b44319c9fabbea2e8c333191a0005ef5c4ec6b2c.camel@mediatek.com> diff --git a/N1/2.bin b/N1/2.bin new file mode 100644 index 0000000..87b5926 --- /dev/null +++ b/N1/2.bin @@ -0,0 +1,64 @@ +<html><body><p> +<pre> +On Mon, 2024-12-02 at 13:16 +0000, Mark Brown wrote: +> On Sun, Dec 01, 2024 at 05:15:45PM +0000, Jiaxin Yu (俞家鑫) wrote: +>  +> > So I want to ask if I can do it by just adding +> > SOC_DAPM_PIN_SWITCH("Speakers") and SOC_DAPM_PIN_SWITCH("HDMI")? +> > Correspondingly, dapm widget and route path need to be added. That +> > is +> > "SND_SOC_DAPM_SPK("Speakers", NULL)/ SND_SOC_DAPM_LINE("HDMI1", +> > NULL)" +> > and "{"Speakers", NULL, "Speaker"}/ {"HDMI1", NULL, "TX"}". +>  +> Yes, that's what I'd expect to see. + +Dear Mark, + +So if I open the "HDMI Switch" amixer control, it will call +'hdmi_codec_startup', which in turn calls "audio_startup()"  in +'hdmi_codec_ops'. Conversely, if I close it, it will call +'hdmi_codec_shutdown', which in turn calls 'audio_shutdown' in +'hdmi_codec_ops'. Is this understanding correct? + +static const struct snd_soc_dai_ops hdmi_codec_i2s_dai_ops = { +        .probe                          = hdmi_dai_probe, +        .startup                        = hdmi_codec_startup, +        .shutdown                       = hdmi_codec_shutdown, +        .hw_params                      = hdmi_codec_hw_params, +        .prepare                        = hdmi_codec_prepare, +        .set_fmt                        = hdmi_codec_i2s_set_fmt, +        .mute_stream                    = hdmi_codec_mute, +        .pcm_new                        = hdmi_codec_pcm_new, +        .auto_selectable_formats        = &hdmi_codec_formats, +        .num_auto_selectable_formats    = 1, +}; + + struct hdmi_codec_ops { +         /* +          * Called when ASoC starts an audio stream setup. +          * Optional +          */ +         int (*audio_startup)(struct device *dev, void *data); + + +         /* +          * Shuts down the audio stream. +          * Mandatory +          */ +         void (*audio_shutdown)(struct device *dev, void *data); + +</pre> +</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ******************** +The information contained in this e-mail message (including any +attachments) may be confidential, proprietary, privileged, or otherwise +exempt from disclosure under applicable laws. It is intended to be +conveyed only to the designated recipient(s). Any use, dissemination, +distribution, printing, retaining or copying of this e-mail (including its +attachments) by unintended recipient(s) is strictly prohibited and may +be unlawful. If you are not an intended recipient of this e-mail, or believe +that you have received this e-mail in error, please notify the sender +immediately (by replying to this e-mail), delete any and all copies of +this e-mail (including any attachments) from your system, and do not +disclose the content of this e-mail to any other person. Thank you! +</pre><!--}--> diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..da1f671 --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,3 @@ +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: base64 diff --git a/a/content_digest b/N1/content_digest index 9d24522..d1004eb 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -29,7 +29,7 @@ AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Nicolas Prado <nfraprado@collabora.com> " alsa-devel@alsa-project.org <alsa-devel@alsa-project.org>\0" - "\00:1\0" + "\01:1\0" "b\0" "On Mon, 2024-12-02 at 13:16 +0000, Mark Brown wrote:\n" "> On Sun, Dec 01, 2024 at 05:15:45PM +0000, Jiaxin Yu (\344\277\236\345\256\266\351\221\253) wrote:\n" @@ -78,5 +78,71 @@ " * Mandatory\n" " */\n" void (*audio_shutdown)(struct device *dev, void *data); + "\01:2\0" + "b\0" + "<html><body><p>\r\n" + "<pre>\r\n" + "On Mon, 2024-12-02 at 13:16 +0000, Mark Brown wrote:\r\n" + "> On Sun, Dec 01, 2024 at 05:15:45PM +0000, Jiaxin Yu (俞家鑫) wrote:\r\n" + "> \r\n" + "> > So I want to ask if I can do it by just adding\r\n" + "> > SOC_DAPM_PIN_SWITCH("Speakers") and SOC_DAPM_PIN_SWITCH("HDMI")?\r\n" + "> > Correspondingly, dapm widget and route path need to be added. That\r\n" + "> > is\r\n" + "> > "SND_SOC_DAPM_SPK("Speakers", NULL)/ SND_SOC_DAPM_LINE("HDMI1",\r\n" + "> > NULL)"\r\n" + "> > and "{"Speakers", NULL, "Speaker"}/ {"HDMI1", NULL, "TX"}".\r\n" + "> \r\n" + "> Yes, that's what I'd expect to see.\r\n" + "\r\n" + "Dear Mark,\r\n" + "\r\n" + "So if I open the "HDMI Switch" amixer control, it will call\r\n" + "'hdmi_codec_startup', which in turn calls "audio_startup()"  in\r\n" + "'hdmi_codec_ops'. Conversely, if I close it, it will call\r\n" + "'hdmi_codec_shutdown', which in turn calls 'audio_shutdown' in\r\n" + "'hdmi_codec_ops'. Is this understanding correct?\r\n" + "\r\n" + "static const struct snd_soc_dai_ops hdmi_codec_i2s_dai_ops = {\r\n" + "        .probe                          = hdmi_dai_probe,\r\n" + "        .startup                        = hdmi_codec_startup,\r\n" + "        .shutdown                       = hdmi_codec_shutdown,\r\n" + "        .hw_params                      = hdmi_codec_hw_params,\r\n" + "        .prepare                        = hdmi_codec_prepare,\r\n" + "        .set_fmt                        = hdmi_codec_i2s_set_fmt,\r\n" + "        .mute_stream                    = hdmi_codec_mute,\r\n" + "        .pcm_new                        = hdmi_codec_pcm_new,\r\n" + "        .auto_selectable_formats        = &hdmi_codec_formats,\r\n" + "        .num_auto_selectable_formats    = 1,\r\n" + "};\r\n" + "\r\n" + " struct hdmi_codec_ops {\r\n" + "         /*\r\n" + "          * Called when ASoC starts an audio stream setup.\r\n" + "          * Optional\r\n" + "          */\r\n" + "         int (*audio_startup)(struct device *dev, void *data);\r\n" + "\r\n" + "\r\n" + "         /*\r\n" + "          * Shuts down the audio stream.\r\n" + "          * Mandatory\r\n" + "          */\r\n" + "         void (*audio_shutdown)(struct device *dev, void *data);\r\n" + "\r\n" + "</pre>\r\n" + "</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ********************\r\n" + "The information contained in this e-mail message (including any \r\n" + "attachments) may be confidential, proprietary, privileged, or otherwise\r\n" + "exempt from disclosure under applicable laws. It is intended to be \r\n" + "conveyed only to the designated recipient(s). Any use, dissemination, \r\n" + "distribution, printing, retaining or copying of this e-mail (including its \r\n" + "attachments) by unintended recipient(s) is strictly prohibited and may \r\n" + "be unlawful. If you are not an intended recipient of this e-mail, or believe \r\n" + "that you have received this e-mail in error, please notify the sender \r\n" + "immediately (by replying to this e-mail), delete any and all copies of \r\n" + "this e-mail (including any attachments) from your system, and do not\r\n" + "disclose the content of this e-mail to any other person. Thank you!\r\n" + </pre><!--}--> -782bb58443c15f093592dd66e8903173f48c8a51418dbf16c4282101561b34df +85eb98bb56b8003441248834d7069ee3d8bd1e337c89485af4457c4a49ffc7e5
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.