@@ -635,6 +635,14 @@ sof_card_dai_links_create(struct device *dev, struct snd_soc_card *card,
635
635
return 0 ;
636
636
}
637
637
638
+ #define GLK_LINK_ORDER SOF_LINK_ORDER(SOF_LINK_AMP, \
639
+ SOF_LINK_CODEC, \
640
+ SOF_LINK_DMIC01, \
641
+ SOF_LINK_IDISP_HDMI, \
642
+ SOF_LINK_NONE, \
643
+ SOF_LINK_NONE, \
644
+ SOF_LINK_NONE)
645
+
638
646
static int sof_audio_probe (struct platform_device * pdev )
639
647
{
640
648
struct snd_soc_acpi_mach * mach = pdev -> dev .platform_data ;
@@ -676,24 +684,34 @@ static int sof_audio_probe(struct platform_device *pdev)
676
684
ctx -> amp_type = CODEC_RT5650 ;
677
685
}
678
686
679
- if (ctx -> amp_type == CODEC_RT1011 && soc_intel_is_cml ()) {
680
- /* backward-compatible with existing cml devices */
681
- card_name = devm_kstrdup (& pdev -> dev , "cml_rt1011_rt5682" ,
682
- GFP_KERNEL );
683
- if (!card_name )
684
- return - ENOMEM ;
685
-
686
- sof_audio_card_rt5682 .name = card_name ;
687
- }
687
+ if (mach -> mach_params .codec_mask & IDISP_CODEC_MASK )
688
+ ctx -> hdmi .idisp_codec = true;
688
689
689
690
if (is_legacy_cpu ) {
690
691
ctx -> rt5682 .is_legacy_cpu = true;
691
692
ctx -> dmic_be_num = 0 ;
692
693
/* HDMI is not supported by SOF on Baytrail/CherryTrail */
693
694
ctx -> hdmi_num = 0 ;
694
- } else {
695
- if (mach -> mach_params .codec_mask & IDISP_CODEC_MASK )
696
- ctx -> hdmi .idisp_codec = true;
695
+ } else if (soc_intel_is_glk ()) {
696
+ /* dmic16k not support */
697
+ ctx -> dmic_be_num = 1 ;
698
+
699
+ /* overwrite the DAI link order for GLK boards */
700
+ ctx -> link_order_overwrite = GLK_LINK_ORDER ;
701
+ } else if (soc_intel_is_cml ()) {
702
+ /* backward-compatible with existing devices */
703
+ switch (ctx -> amp_type ) {
704
+ case CODEC_RT1011 :
705
+ card_name = devm_kstrdup (& pdev -> dev , "cml_rt1011_rt5682" ,
706
+ GFP_KERNEL );
707
+ if (!card_name )
708
+ return - ENOMEM ;
709
+
710
+ sof_audio_card_rt5682 .name = card_name ;
711
+ break ;
712
+ default :
713
+ break ;
714
+ }
697
715
}
698
716
699
717
/* need to get main clock from pmc */
@@ -768,6 +786,12 @@ static const struct platform_device_id board_ids[] = {
768
786
{
769
787
.name = "sof_rt5682" ,
770
788
},
789
+ {
790
+ .name = "glk_rt5682_def" ,
791
+ .driver_data = (kernel_ulong_t )(SOF_RT5682_MCLK_EN |
792
+ SOF_SSP_PORT_CODEC (2 ) |
793
+ SOF_SSP_PORT_AMP (1 )),
794
+ },
771
795
{
772
796
.name = "cml_rt5682_def" ,
773
797
.driver_data = (kernel_ulong_t )(SOF_RT5682_MCLK_EN |
0 commit comments