All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Enable SPDIF output on Intel Hades Canyon
@ 2022-05-23 20:20 Dag B
  2022-05-23 20:30 ` Pierre-Louis Bossart
  0 siblings, 1 reply; 7+ messages in thread
From: Dag B @ 2022-05-23 20:20 UTC (permalink / raw)
  To: ALSA development

[-- Attachment #1: Type: text/plain, Size: 949 bytes --]

Without the attached patch, the s/pdif output on the Hades Canyon NUC 
does not work.

"Well known" issue, less known fix. As far as I can tell, there is no 
risk of any averse side-effects. But a bonus fix is enabling on-wire 
headset microphone, by chaining the right 'model' choice for the hardware.

If I should Cc: someone directly for this patch to be picked up, please 
let me know.


I have been running with this patch for half a year or so.

Patch passes checkpatch.pl

Patch is based on what 'cyber4o' posted on the insanelymac forum [1]. 
All the glory to this person, any error is likely mine.

Some other users with issues: [2] [3]


Dag Bakke


[1] 
https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/8/

2] https://bbs.archlinux.org/viewtopic.php?id=270917

[3] 
https://www.reddit.com/r/intelnuc/comments/9ft9x8/any_linux_users_got_the_spdif_toslink_to_work_on/



[-- Attachment #2: patch_realtek.c.diff --]
[-- Type: text/x-patch, Size: 2650 bytes --]

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index ad292df7d805..1c4c7435b705 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4752,6 +4752,12 @@ static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
 	}
 }
 
+static void alc700_fixup_nuc_spdif(struct hda_codec *codec,
+				const struct hda_fixup *fix, int action)
+{
+	snd_hda_override_wcaps(codec, 0x6, 0x611);
+}
+
 /* Line2 = mic mute hotkey
  * GPIO2 = mic mute LED
  */
@@ -5792,7 +5798,7 @@ static void alc_fixup_headset_mode_alc255_no_hp_mic(struct hda_codec *codec,
 		struct alc_spec *spec = codec->spec;
 		spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
 		alc255_set_default_jack_type(codec);
-	} 
+	}
 	else
 		alc_fixup_headset_mode(codec, fix, action);
 }
@@ -6939,6 +6945,7 @@ enum {
 	ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE,
 	ALC225_FIXUP_S3_POP_NOISE,
 	ALC700_FIXUP_INTEL_REFERENCE,
+	ALC700_FIXUP_NUC_SPDIF,
 	ALC274_FIXUP_DELL_BIND_DACS,
 	ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
 	ALC298_FIXUP_TPT470_DOCK_FIX,
@@ -7260,6 +7267,12 @@ static const struct hda_fixup alc269_fixups[] = {
 		.chained = true,
 		.chain_id = ALC269_FIXUP_THINKPAD_ACPI,
 	},
+	[ALC700_FIXUP_NUC_SPDIF] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc700_fixup_nuc_spdif,
+		.chained = true,
+		.chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
+	},
 	[ALC269_FIXUP_DELL1_MIC_NO_PRESENCE] = {
 		.type = HDA_FIXUP_PINS,
 		.v.pins = (const struct hda_pintbl[]) {
@@ -9159,6 +9172,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
 	SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
 	SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
+	SND_PCI_QUIRK(0x10ec, 0x2073, "Intel NUC8 Hades Canyon", ALC700_FIXUP_NUC_SPDIF),
 	SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
 	SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
 	SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
@@ -9445,6 +9459,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
 	{.id = ALC298_FIXUP_TPT470_DOCK, .name = "tpt470-dock"},
 	{.id = ALC233_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
 	{.id = ALC700_FIXUP_INTEL_REFERENCE, .name = "alc700-ref"},
+	{.id = ALC700_FIXUP_NUC_SPDIF, .name = "nuc-hc"},
 	{.id = ALC269_FIXUP_SONY_VAIO, .name = "vaio"},
 	{.id = ALC269_FIXUP_DELL_M101Z, .name = "dell-m101z"},
 	{.id = ALC269_FIXUP_ASUS_G73JW, .name = "asus-g73jw"},

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] Enable SPDIF output on Intel Hades Canyon
  2022-05-23 20:20 [PATCH] Enable SPDIF output on Intel Hades Canyon Dag B
@ 2022-05-23 20:30 ` Pierre-Louis Bossart
  2022-05-23 21:29   ` Dag B
  0 siblings, 1 reply; 7+ messages in thread
From: Pierre-Louis Bossart @ 2022-05-23 20:30 UTC (permalink / raw)
  To: Dag B, ALSA development; +Cc: Takashi Iwai



On 5/23/22 15:20, Dag B wrote:
> Without the attached patch, the s/pdif output on the Hades Canyon NUC
> does not work.
> 
> "Well known" issue, less known fix. As far as I can tell, there is no
> risk of any averse side-effects. But a bonus fix is enabling on-wire
> headset microphone, by chaining the right 'model' choice for the hardware.
> 
> If I should Cc: someone directly for this patch to be picked up, please
> let me know.
> 
> 
> I have been running with this patch for half a year or so.
> 
> Patch passes checkpatch.pl
> 
> Patch is based on what 'cyber4o' posted on the insanelymac forum [1].
> All the glory to this person, any error is likely mine.

Thanks for the patch.

You would need a Signed-off-by tag for this patch, and CC: Takashi (added)

+	[ALC700_FIXUP_NUC_SPDIF] = {

Maybe use HC_NUC, there are multiple versions of those devices?

+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc700_fixup_nuc_spdif,

alc700_fixup_hc_nuc_spdif ?

+		.chained = true,
+		.chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,

that chain_id doesn't seem quite right?


> 
> Some other users with issues: [2] [3]
> 
> 
> Dag Bakke
> 
> 
> [1]
> https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/8/
> 
> 
> 2] https://bbs.archlinux.org/viewtopic.php?id=270917
> 
> [3]
> https://www.reddit.com/r/intelnuc/comments/9ft9x8/any_linux_users_got_the_spdif_toslink_to_work_on/
> 
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Enable SPDIF output on Intel Hades Canyon
  2022-05-23 20:30 ` Pierre-Louis Bossart
@ 2022-05-23 21:29   ` Dag B
  2022-05-23 21:53     ` Pierre-Louis Bossart
  0 siblings, 1 reply; 7+ messages in thread
From: Dag B @ 2022-05-23 21:29 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai, pierre-louis.bossart

[-- Attachment #1: Type: text/plain, Size: 2154 bytes --]

On 23.05.2022 22:30, Pierre-Louis Bossart wrote:
> On 5/23/22 15:20, Dag B wrote:
>> Without the attached patch, the s/pdif output on the Hades Canyon NUC
>> does not work.
>>
>> "Well known" issue, less known fix. As far as I can tell, there is no
>> risk of any averse side-effects. But a bonus fix is enabling on-wire
>> headset microphone, by chaining the right 'model' choice for the hardware.
>>
>> If I should Cc: someone directly for this patch to be picked up, please
>> let me know.
>>
>>
>> I have been running with this patch for half a year or so.
>>
>> Patch passes checkpatch.pl
>>
>> Patch is based on what 'cyber4o' posted on the insanelymac forum [1].
>> All the glory to this person, any error is likely mine.
> Thanks for the patch.
>
> You would need a Signed-off-by tag for this patch, and CC: Takashi (added)
>
> +	[ALC700_FIXUP_NUC_SPDIF] = {
>
> Maybe use HC_NUC, there are multiple versions of those devices?
>
> +		.type = HDA_FIXUP_FUNC,
> +		.v.func = alc700_fixup_nuc_spdif,
>
> alc700_fixup_hc_nuc_spdif ?
>
> +		.chained = true,
> +		.chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
>
> that chain_id doesn't seem quite right?
>
Thank you for reviewing this. I have made adjustments as suggested. Revised patch attached.
   

The chain_id may appear odd, I can assure you that it does the job. I picked up the suggestion from the excellent Arch Linux wiki:

https://wiki.archlinux.org/title/Intel_NUC#Hades_Canyon_NUC_-_No_External_Microphones

So my patch equates to:

a) creating a fixup for enabling spdif

and

b) making the new "model=nuc-hc" equate to the spdif fix + "model=dell-headset-multi"

I hope this is acceptable. As stated, I have used this solution for half a year or so.

|Signed-off-by: Dag Bakke <dag@bakke.com>|

Dag B



>> Some other users with issues: [2] [3]
>>
>>
>> Dag Bakke
>>
>>
>> [1]
>> https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/8/
>>
>>
>> 2]https://bbs.archlinux.org/viewtopic.php?id=270917
>>
>> [3]
>> https://www.reddit.com/r/intelnuc/comments/9ft9x8/any_linux_users_got_the_spdif_toslink_to_work_on/
>>
>>
>>

[-- Attachment #2: patch_realtek.c.diff --]
[-- Type: text/x-patch, Size: 2668 bytes --]

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index ad292df7d805..cd6a2cb4c381 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4752,6 +4752,12 @@ static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
 	}
 }
 
+static void alc700_fixup_hc_nuc_spdif(struct hda_codec *codec,
+				const struct hda_fixup *fix, int action)
+{
+	snd_hda_override_wcaps(codec, 0x6, 0x611);
+}
+
 /* Line2 = mic mute hotkey
  * GPIO2 = mic mute LED
  */
@@ -5792,7 +5798,7 @@ static void alc_fixup_headset_mode_alc255_no_hp_mic(struct hda_codec *codec,
 		struct alc_spec *spec = codec->spec;
 		spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
 		alc255_set_default_jack_type(codec);
-	} 
+	}
 	else
 		alc_fixup_headset_mode(codec, fix, action);
 }
@@ -6939,6 +6945,7 @@ enum {
 	ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE,
 	ALC225_FIXUP_S3_POP_NOISE,
 	ALC700_FIXUP_INTEL_REFERENCE,
+	ALC700_FIXUP_HC_NUC_SPDIF,
 	ALC274_FIXUP_DELL_BIND_DACS,
 	ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
 	ALC298_FIXUP_TPT470_DOCK_FIX,
@@ -7260,6 +7267,12 @@ static const struct hda_fixup alc269_fixups[] = {
 		.chained = true,
 		.chain_id = ALC269_FIXUP_THINKPAD_ACPI,
 	},
+	[ALC700_FIXUP_HC_NUC_SPDIF] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc700_fixup_hc_nuc_spdif,
+		.chained = true,
+		.chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
+	},
 	[ALC269_FIXUP_DELL1_MIC_NO_PRESENCE] = {
 		.type = HDA_FIXUP_PINS,
 		.v.pins = (const struct hda_pintbl[]) {
@@ -9159,6 +9172,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
 	SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
 	SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
+	SND_PCI_QUIRK(0x10ec, 0x2073, "Intel NUC8 Hades Canyon", ALC700_FIXUP_HC_NUC_SPDIF),
 	SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
 	SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
 	SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
@@ -9445,6 +9459,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
 	{.id = ALC298_FIXUP_TPT470_DOCK, .name = "tpt470-dock"},
 	{.id = ALC233_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
 	{.id = ALC700_FIXUP_INTEL_REFERENCE, .name = "alc700-ref"},
+	{.id = ALC700_FIXUP_HC_NUC_SPDIF, .name = "nuc-hc"},
 	{.id = ALC269_FIXUP_SONY_VAIO, .name = "vaio"},
 	{.id = ALC269_FIXUP_DELL_M101Z, .name = "dell-m101z"},
 	{.id = ALC269_FIXUP_ASUS_G73JW, .name = "asus-g73jw"},

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] Enable SPDIF output on Intel Hades Canyon
  2022-05-23 21:29   ` Dag B
@ 2022-05-23 21:53     ` Pierre-Louis Bossart
  2022-05-24  6:58       ` Dag B
  0 siblings, 1 reply; 7+ messages in thread
From: Pierre-Louis Bossart @ 2022-05-23 21:53 UTC (permalink / raw)
  To: Dag B, alsa-devel; +Cc: tiwai



On 5/23/22 16:29, Dag B wrote:
> On 23.05.2022 22:30, Pierre-Louis Bossart wrote:
>> On 5/23/22 15:20, Dag B wrote:
>>> Without the attached patch, the s/pdif output on the Hades Canyon NUC
>>> does not work.
>>>
>>> "Well known" issue, less known fix. As far as I can tell, there is no
>>> risk of any averse side-effects. But a bonus fix is enabling on-wire
>>> headset microphone, by chaining the right 'model' choice for the
>>> hardware.
>>>
>>> If I should Cc: someone directly for this patch to be picked up, please
>>> let me know.
>>>
>>>
>>> I have been running with this patch for half a year or so.
>>>
>>> Patch passes checkpatch.pl
>>>
>>> Patch is based on what 'cyber4o' posted on the insanelymac forum [1].
>>> All the glory to this person, any error is likely mine.
>> Thanks for the patch.
>>
>> You would need a Signed-off-by tag for this patch, and CC: Takashi
>> (added)
>>
>> +    [ALC700_FIXUP_NUC_SPDIF] = {
>>
>> Maybe use HC_NUC, there are multiple versions of those devices?
>>
>> +        .type = HDA_FIXUP_FUNC,
>> +        .v.func = alc700_fixup_nuc_spdif,
>>
>> alc700_fixup_hc_nuc_spdif ?
>>
>> +        .chained = true,
>> +        .chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
>>
>> that chain_id doesn't seem quite right?
>>
> Thank you for reviewing this. I have made adjustments as suggested.
> Revised patch attached.
>  
> The chain_id may appear odd, I can assure you that it does the job. I
> picked up the suggestion from the excellent Arch Linux wiki:
> 
> https://wiki.archlinux.org/title/Intel_NUC#Hades_Canyon_NUC_-_No_External_Microphones

Parts of my comment was the reference to ALC269 when this is an ALC700,
but it seems the two parts are identical if I understand this
definition well:	

ALC269_TYPE_ALC700,

The other point was the reference to Dell when this isn't a Dell
platform. ALC269_FIXUP_DELL1_MIC_NO_PRESENCE may do the job but so far
it's only used for Dell platforms, so it's a bit confusing.

> So my patch equates to:
> 
> a) creating a fixup for enabling spdif
> 
> and
> 
> b) making the new "model=nuc-hc" equate to the spdif fix +
> "model=dell-headset-multi"
> 
> I hope this is acceptable. As stated, I have used this solution for half
> a year or so.
> 
> |Signed-off-by: Dag Bakke <dag@bakke.com>|

usually this comes inside the patch with a git commit title and message.

> 
> Dag B
> 
> 
> 
>>> Some other users with issues: [2] [3]
>>>
>>>
>>> Dag Bakke
>>>
>>>
>>> [1]
>>> https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/8/
>>>
>>>
>>>
>>> 2]https://bbs.archlinux.org/viewtopic.php?id=270917
>>>
>>> [3]
>>> https://www.reddit.com/r/intelnuc/comments/9ft9x8/any_linux_users_got_the_spdif_toslink_to_work_on/
>>>
>>>
>>>
>>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Enable SPDIF output on Intel Hades Canyon
  2022-05-23 21:53     ` Pierre-Louis Bossart
@ 2022-05-24  6:58       ` Dag B
  2022-05-27 14:50         ` Takashi Iwai
  0 siblings, 1 reply; 7+ messages in thread
From: Dag B @ 2022-05-24  6:58 UTC (permalink / raw)
  To: Pierre-Louis Bossart, alsa-devel; +Cc: tiwai

[-- Attachment #1: Type: text/plain, Size: 3044 bytes --]

On 23.05.2022 23:53, Pierre-Louis Bossart wrote:

>
> On 5/23/22 16:29, Dag B wrote:
>> On 23.05.2022 22:30, Pierre-Louis Bossart wrote:
>>> On 5/23/22 15:20, Dag B wrote:
>>>> Without the attached patch, the s/pdif output on the Hades Canyon NUC
>>>> does not work.
>>>>
>>>> "Well known" issue, less known fix. As far as I can tell, there is no
>>>> risk of any averse side-effects. But a bonus fix is enabling on-wire
>>>> headset microphone, by chaining the right 'model' choice for the
>>>> hardware.
>>>>
>>>> If I should Cc: someone directly for this patch to be picked up, please
>>>> let me know.
>>>>
>>>>
>>>> I have been running with this patch for half a year or so.
>>>>
>>>> Patch passes checkpatch.pl
>>>>
>>>> Patch is based on what 'cyber4o' posted on the insanelymac forum [1].
>>>> All the glory to this person, any error is likely mine.
>>> Thanks for the patch.
>>>
>>> You would need a Signed-off-by tag for this patch, and CC: Takashi
>>> (added)
>>>
>>> +    [ALC700_FIXUP_NUC_SPDIF] = {
>>>
>>> Maybe use HC_NUC, there are multiple versions of those devices?
>>>
>>> +        .type = HDA_FIXUP_FUNC,
>>> +        .v.func = alc700_fixup_nuc_spdif,
>>>
>>> alc700_fixup_hc_nuc_spdif ?
>>>
>>> +        .chained = true,
>>> +        .chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
>>>
>>> that chain_id doesn't seem quite right?
>>>
>> Thank you for reviewing this. I have made adjustments as suggested.
>> Revised patch attached.
>>   
>> The chain_id may appear odd, I can assure you that it does the job. I
>> picked up the suggestion from the excellent Arch Linux wiki:
>>
>> https://wiki.archlinux.org/title/Intel_NUC#Hades_Canyon_NUC_-_No_External_Microphones
> Parts of my comment was the reference to ALC269 when this is an ALC700,
> but it seems the two parts are identical if I understand this
> definition well:	
>
> ALC269_TYPE_ALC700,
>
> The other point was the reference to Dell when this isn't a Dell
> platform. ALC269_FIXUP_DELL1_MIC_NO_PRESENCE may do the job but so far
> it's only used for Dell platforms, so it's a bit confusing.

Actually, it is already used for Skull Canyon. So there is precedence.   :-)

>
>> So my patch equates to:
>>
>> a) creating a fixup for enabling spdif
>>
>> and
>>
>> b) making the new "model=nuc-hc" equate to the spdif fix +
>> "model=dell-headset-multi"
>>
>> I hope this is acceptable. As stated, I have used this solution for half
>> a year or so.
>>
>> |Signed-off-by: Dag Bakke <dag@bakke.com>|
> usually this comes inside the patch with a git commit title and message.

Better now?



>
>> Dag B
>>
>>
>>
>>>> Some other users with issues: [2] [3]
>>>>
>>>>
>>>> Dag Bakke
>>>>
>>>>
>>>> [1]
>>>> https://www.insanelymac.com/forum/topic/339291-guide-hac-mini-osx-mojave-on-intel-hades-canyon-nuc8i7hvknuc8i7hnk/page/8/
>>>>
>>>>
>>>>
>>>> 2]https://bbs.archlinux.org/viewtopic.php?id=270917
>>>>
>>>> [3]
>>>> https://www.reddit.com/r/intelnuc/comments/9ft9x8/any_linux_users_got_the_spdif_toslink_to_work_on/
>>>>
>>>>
>>>>
>>>>

[-- Attachment #2: patch_realtek.c.diff --]
[-- Type: text/x-patch, Size: 3012 bytes --]

From fe562e391b522dca09f00a5f8c280ab43136ef1f Mon Sep 17 00:00:00 2001
From: Dag B <dag@bakke.com>
Date: Tue, 24 May 2022 08:38:42 +0200
Subject: [PATCH] Enable Intel Hades Canyon SPDIF

Signed-off-by: Dag B <dag@bakke.com>
---
 sound/pci/hda/patch_realtek.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index ad292df7d805..cd6a2cb4c381 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4752,6 +4752,12 @@ static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
 	}
 }
 
+static void alc700_fixup_hc_nuc_spdif(struct hda_codec *codec,
+				const struct hda_fixup *fix, int action)
+{
+	snd_hda_override_wcaps(codec, 0x6, 0x611);
+}
+
 /* Line2 = mic mute hotkey
  * GPIO2 = mic mute LED
  */
@@ -5792,7 +5798,7 @@ static void alc_fixup_headset_mode_alc255_no_hp_mic(struct hda_codec *codec,
 		struct alc_spec *spec = codec->spec;
 		spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
 		alc255_set_default_jack_type(codec);
-	} 
+	}
 	else
 		alc_fixup_headset_mode(codec, fix, action);
 }
@@ -6939,6 +6945,7 @@ enum {
 	ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE,
 	ALC225_FIXUP_S3_POP_NOISE,
 	ALC700_FIXUP_INTEL_REFERENCE,
+	ALC700_FIXUP_HC_NUC_SPDIF,
 	ALC274_FIXUP_DELL_BIND_DACS,
 	ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
 	ALC298_FIXUP_TPT470_DOCK_FIX,
@@ -7260,6 +7267,12 @@ static const struct hda_fixup alc269_fixups[] = {
 		.chained = true,
 		.chain_id = ALC269_FIXUP_THINKPAD_ACPI,
 	},
+	[ALC700_FIXUP_HC_NUC_SPDIF] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc700_fixup_hc_nuc_spdif,
+		.chained = true,
+		.chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
+	},
 	[ALC269_FIXUP_DELL1_MIC_NO_PRESENCE] = {
 		.type = HDA_FIXUP_PINS,
 		.v.pins = (const struct hda_pintbl[]) {
@@ -9159,6 +9172,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
 	SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
 	SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
+	SND_PCI_QUIRK(0x10ec, 0x2073, "Intel NUC8 Hades Canyon", ALC700_FIXUP_HC_NUC_SPDIF),
 	SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
 	SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
 	SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
@@ -9445,6 +9459,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
 	{.id = ALC298_FIXUP_TPT470_DOCK, .name = "tpt470-dock"},
 	{.id = ALC233_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
 	{.id = ALC700_FIXUP_INTEL_REFERENCE, .name = "alc700-ref"},
+	{.id = ALC700_FIXUP_HC_NUC_SPDIF, .name = "nuc-hc"},
 	{.id = ALC269_FIXUP_SONY_VAIO, .name = "vaio"},
 	{.id = ALC269_FIXUP_DELL_M101Z, .name = "dell-m101z"},
 	{.id = ALC269_FIXUP_ASUS_G73JW, .name = "asus-g73jw"},
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] Enable SPDIF output on Intel Hades Canyon
  2022-05-24  6:58       ` Dag B
@ 2022-05-27 14:50         ` Takashi Iwai
  2022-05-27 14:51           ` Takashi Iwai
  0 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2022-05-27 14:50 UTC (permalink / raw)
  To: Dag B; +Cc: alsa-devel, Pierre-Louis Bossart, tiwai

On Tue, 24 May 2022 08:58:30 +0200,
Dag B wrote:
> From fe562e391b522dca09f00a5f8c280ab43136ef1f Mon Sep 17 00:00:00 2001
> From: Dag B <dag@bakke.com>
> Date: Tue, 24 May 2022 08:38:42 +0200
> Subject: [PATCH] Enable Intel Hades Canyon SPDIF
> 
> Signed-off-by: Dag B <dag@bakke.com>

Please give more description, especially why this patch is needed and
what actually does.

About the code change:


> ---
>  sound/pci/hda/patch_realtek.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index ad292df7d805..cd6a2cb4c381 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4752,6 +4752,12 @@ static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
>  	}
>  }
>  
> +static void alc700_fixup_hc_nuc_spdif(struct hda_codec *codec,
> +				const struct hda_fixup *fix, int action)
> +{
> +	snd_hda_override_wcaps(codec, 0x6, 0x611);

Better to be the values with AC_WCAP_*.


> @@ -5792,7 +5798,7 @@ static void alc_fixup_headset_mode_alc255_no_hp_mic(struct hda_codec *codec,
>  		struct alc_spec *spec = codec->spec;
>  		spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
>  		alc255_set_default_jack_type(codec);
> -	} 
> +	}
>  	else
>  		alc_fixup_headset_mode(codec, fix, action);
>  }

Avoid unnecessary changes like this.


> @@ -9159,6 +9172,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>  	SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
>  	SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
>  	SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
> +	SND_PCI_QUIRK(0x10ec, 0x2073, "Intel NUC8 Hades Canyon", ALC700_FIXUP_HC_NUC_SPDIF),

So this is about the generic ID (with Realtek vendor-id).
It's most likely OK, as such an ID is used only for some reference
board or such, but it should be mentioned in the changelog.

> @@ -9445,6 +9459,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
>  	{.id = ALC298_FIXUP_TPT470_DOCK, .name = "tpt470-dock"},
>  	{.id = ALC233_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
>  	{.id = ALC700_FIXUP_INTEL_REFERENCE, .name = "alc700-ref"},
> +	{.id = ALC700_FIXUP_HC_NUC_SPDIF, .name = "nuc-hc"},

Ditto, better to mention the available model name in the changelog,
too.

Once after all those are fixed / improved, please resubmit the patch.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Enable SPDIF output on Intel Hades Canyon
  2022-05-27 14:50         ` Takashi Iwai
@ 2022-05-27 14:51           ` Takashi Iwai
  0 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2022-05-27 14:51 UTC (permalink / raw)
  To: Dag B; +Cc: alsa-devel, Pierre-Louis Bossart, tiwai

On Fri, 27 May 2022 16:50:21 +0200,
Takashi Iwai wrote:
> 
> On Tue, 24 May 2022 08:58:30 +0200,
> Dag B wrote:
> > From fe562e391b522dca09f00a5f8c280ab43136ef1f Mon Sep 17 00:00:00 2001
> > From: Dag B <dag@bakke.com>
> > Date: Tue, 24 May 2022 08:38:42 +0200
> > Subject: [PATCH] Enable Intel Hades Canyon SPDIF
> > 
> > Signed-off-by: Dag B <dag@bakke.com>
> 
> Please give more description, especially why this patch is needed and
> what actually does.

One more thing: the Signed-off-by line must contain the full name.
It's a legal requirement.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-05-27 14:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-23 20:20 [PATCH] Enable SPDIF output on Intel Hades Canyon Dag B
2022-05-23 20:30 ` Pierre-Louis Bossart
2022-05-23 21:29   ` Dag B
2022-05-23 21:53     ` Pierre-Louis Bossart
2022-05-24  6:58       ` Dag B
2022-05-27 14:50         ` Takashi Iwai
2022-05-27 14:51           ` Takashi Iwai

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.