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