diff options
Diffstat (limited to 'sound/soc/intel/skylake/skl.c')
-rw-r--r-- | sound/soc/intel/skylake/skl.c | 115 |
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 | ||
881 | static struct sst_codecs skl_codecs = { | ||
882 | .num_codecs = 1, | ||
883 | .codecs = {"NAU88L25"} | ||
884 | }; | ||
885 | |||
886 | static struct sst_codecs kbl_codecs = { | ||
887 | .num_codecs = 1, | ||
888 | .codecs = {"NAU88L25"} | ||
889 | }; | ||
890 | |||
891 | static struct sst_codecs bxt_codecs = { | ||
892 | .num_codecs = 1, | ||
893 | .codecs = {"MX98357A"} | ||
894 | }; | ||
895 | |||
896 | static struct sst_codecs kbl_poppy_codecs = { | ||
897 | .num_codecs = 1, | ||
898 | .codecs = {"10EC5663"} | ||
899 | }; | ||
900 | |||
901 | static struct sst_codecs kbl_5663_5514_codecs = { | ||
902 | .num_codecs = 2, | ||
903 | .codecs = {"10EC5663", "10EC5514"} | ||
904 | }; | ||
905 | |||
906 | |||
879 | static struct sst_acpi_mach sst_skl_devdata[] = { | 907 | static 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 | ||
888 | static struct sst_acpi_mach sst_bxtp_devdata[] = { | 932 | static 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 | ||
893 | static struct sst_acpi_mach sst_kbl_devdata[] = { | 947 | static 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 | ||
900 | static struct sst_acpi_mach sst_glk_devdata[] = { | 989 | static 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 */ |