aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake/skl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/intel/skylake/skl.c')
-rw-r--r--sound/soc/intel/skylake/skl.c114
1 files changed, 103 insertions, 11 deletions
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index 4c9b5781282b..334917ee41cf 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -866,6 +866,7 @@ static void skl_remove(struct pci_dev *pci)
866 /* codec removal, invoke bus_device_remove */ 866 /* codec removal, invoke bus_device_remove */
867 snd_hdac_ext_bus_device_remove(ebus); 867 snd_hdac_ext_bus_device_remove(ebus);
868 868
869 skl->debugfs = NULL;
869 skl_platform_unregister(&pci->dev); 870 skl_platform_unregister(&pci->dev);
870 skl_free_dsp(skl); 871 skl_free_dsp(skl);
871 skl_machine_device_unregister(skl); 872 skl_machine_device_unregister(skl);
@@ -876,29 +877,120 @@ static void skl_remove(struct pci_dev *pci)
876 dev_set_drvdata(&pci->dev, NULL); 877 dev_set_drvdata(&pci->dev, NULL);
877} 878}
878 879
880static struct sst_codecs skl_codecs = {
881 .num_codecs = 1,
882 .codecs = {"NAU88L25"}
883};
884
885static struct sst_codecs kbl_codecs = {
886 .num_codecs = 1,
887 .codecs = {"NAU88L25"}
888};
889
890static struct sst_codecs bxt_codecs = {
891 .num_codecs = 1,
892 .codecs = {"MX98357A"}
893};
894
895static struct sst_codecs kbl_poppy_codecs = {
896 .num_codecs = 1,
897 .codecs = {"10EC5663"}
898};
899
900static struct sst_codecs kbl_5663_5514_codecs = {
901 .num_codecs = 2,
902 .codecs = {"10EC5663", "10EC5514"}
903};
904
905
879static struct sst_acpi_mach sst_skl_devdata[] = { 906static struct sst_acpi_mach sst_skl_devdata[] = {
880 { "INT343A", "skl_alc286s_i2s", "intel/dsp_fw_release.bin", NULL, NULL, NULL }, 907 {
881 { "INT343B", "skl_n88l25_s4567", "intel/dsp_fw_release.bin", 908 .id = "INT343A",
882 NULL, NULL, &skl_dmic_data }, 909 .drv_name = "skl_alc286s_i2s",
883 { "MX98357A", "skl_n88l25_m98357a", "intel/dsp_fw_release.bin", 910 .fw_filename = "intel/dsp_fw_release.bin",
884 NULL, NULL, &skl_dmic_data }, 911 },
912 {
913 .id = "INT343B",
914 .drv_name = "skl_n88l25_s4567",
915 .fw_filename = "intel/dsp_fw_release.bin",
916 .machine_quirk = sst_acpi_codec_list,
917 .quirk_data = &skl_codecs,
918 .pdata = &skl_dmic_data
919 },
920 {
921 .id = "MX98357A",
922 .drv_name = "skl_n88l25_m98357a",
923 .fw_filename = "intel/dsp_fw_release.bin",
924 .machine_quirk = sst_acpi_codec_list,
925 .quirk_data = &skl_codecs,
926 .pdata = &skl_dmic_data
927 },
885 {} 928 {}
886}; 929};
887 930
888static struct sst_acpi_mach sst_bxtp_devdata[] = { 931static struct sst_acpi_mach sst_bxtp_devdata[] = {
889 { "INT343A", "bxt_alc298s_i2s", "intel/dsp_fw_bxtn.bin", NULL, NULL, NULL }, 932 {
890 { "DLGS7219", "bxt_da7219_max98357a_i2s", "intel/dsp_fw_bxtn.bin", NULL, NULL, NULL }, 933 .id = "INT343A",
934 .drv_name = "bxt_alc298s_i2s",
935 .fw_filename = "intel/dsp_fw_bxtn.bin",
936 },
937 {
938 .id = "DLGS7219",
939 .drv_name = "bxt_da7219_max98357a_i2s",
940 .fw_filename = "intel/dsp_fw_bxtn.bin",
941 .machine_quirk = sst_acpi_codec_list,
942 .quirk_data = &bxt_codecs,
943 },
891}; 944};
892 945
893static struct sst_acpi_mach sst_kbl_devdata[] = { 946static struct sst_acpi_mach sst_kbl_devdata[] = {
894 { "INT343A", "kbl_alc286s_i2s", "intel/dsp_fw_kbl.bin", NULL, NULL, NULL }, 947 {
895 { "INT343B", "kbl_n88l25_s4567", "intel/dsp_fw_kbl.bin", NULL, NULL, &skl_dmic_data }, 948 .id = "INT343A",
896 { "MX98357A", "kbl_n88l25_m98357a", "intel/dsp_fw_kbl.bin", NULL, NULL, &skl_dmic_data }, 949 .drv_name = "kbl_alc286s_i2s",
950 .fw_filename = "intel/dsp_fw_kbl.bin",
951 },
952 {
953 .id = "INT343B",
954 .drv_name = "kbl_n88l25_s4567",
955 .fw_filename = "intel/dsp_fw_kbl.bin",
956 .machine_quirk = sst_acpi_codec_list,
957 .quirk_data = &kbl_codecs,
958 .pdata = &skl_dmic_data
959 },
960 {
961 .id = "MX98357A",
962 .drv_name = "kbl_n88l25_m98357a",
963 .fw_filename = "intel/dsp_fw_kbl.bin",
964 .machine_quirk = sst_acpi_codec_list,
965 .quirk_data = &kbl_codecs,
966 .pdata = &skl_dmic_data
967 },
968 {
969 .id = "MX98927",
970 .drv_name = "kbl_r5514_5663_max",
971 .fw_filename = "intel/dsp_fw_kbl.bin",
972 .machine_quirk = sst_acpi_codec_list,
973 .quirk_data = &kbl_5663_5514_codecs,
974 .pdata = &skl_dmic_data
975 },
976 {
977 .id = "MX98927",
978 .drv_name = "kbl_rt5663_m98927",
979 .fw_filename = "intel/dsp_fw_kbl.bin",
980 .machine_quirk = sst_acpi_codec_list,
981 .quirk_data = &kbl_poppy_codecs,
982 .pdata = &skl_dmic_data
983 },
984
897 {} 985 {}
898}; 986};
899 987
900static struct sst_acpi_mach sst_glk_devdata[] = { 988static struct sst_acpi_mach sst_glk_devdata[] = {
901 { "INT343A", "glk_alc298s_i2s", "intel/dsp_fw_glk.bin", NULL, NULL, NULL }, 989 {
990 .id = "INT343A",
991 .drv_name = "glk_alc298s_i2s",
992 .fw_filename = "intel/dsp_fw_glk.bin",
993 },
902}; 994};
903 995
904/* PCI IDs */ 996/* PCI IDs */