summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>2018-12-13 14:03:00 -0500
committerMark Brown <broonie@kernel.org>2018-12-14 07:35:39 -0500
commit35bc99aaa1a3af23cf78b6b56f14230b5da3993b (patch)
tree2361200bccc20660ed6f17ebd846194ca3f56d71
parentae38d267417291db40de7439f2b0b690ab615f0e (diff)
ASoC: Intel: Skylake: Add more platform granularity
The current SKYLAKE kconfig is a all-you-can-eat selection that will support all known plaforms. This is however not necessarily a good thing: most platforms for SKL and KBL don't support the DSP, but a number of CNL/WHL ones do. Selecting this driver in all cases isn't really smart and will require users to muck with blacklists. Partition the configs to allow distributions to select on which platform this driver is used. Keep the existing SND_SOC_INTEL_SKYLAKE config to select everything for backwards compatibility. This patch does not provide new functionality, only finer-grained choices in supported platforms. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/intel/Kconfig73
-rw-r--r--sound/soc/intel/boards/Kconfig16
-rw-r--r--sound/soc/intel/skylake/skl.c12
3 files changed, 92 insertions, 9 deletions
diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index 18e717703685..99a62ba409df 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -102,15 +102,74 @@ config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
102 recommended option 102 recommended option
103 103
104config SND_SOC_INTEL_SKYLAKE 104config SND_SOC_INTEL_SKYLAKE
105 tristate "SKL/BXT/KBL/GLK/CNL... Platforms" 105 tristate "All Skylake/SST Platforms"
106 depends on PCI && ACPI 106 depends on PCI && ACPI
107 select SND_SOC_INTEL_SKYLAKE_COMMON 107 select SND_SOC_INTEL_SKL
108 select SND_SOC_INTEL_APL
109 select SND_SOC_INTEL_KBL
110 select SND_SOC_INTEL_GLK
111 select SND_SOC_INTEL_CNL
112 select SND_SOC_INTEL_CFL
108 help 113 help
109 If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/ 114 This is a backwards-compatible option to select all devices
110 GeminiLake or CannonLake platform with the DSP enabled in the BIOS 115 supported by the Intel SST/Skylake driver. This option is no
111 then enable this option by saying Y or m. 116 longer recommended and will be deprecated when the SOF
117 driver is introduced. Distributions should explicitly
118 select which platform uses this driver.
119
120config SND_SOC_INTEL_SKL
121 tristate "Skylake Platforms"
122 depends on PCI && ACPI
123 select SND_SOC_INTEL_SKYLAKE_FAMILY
124 help
125 If you have a Intel Skylake platform with the DSP enabled
126 in the BIOS then enable this option by saying Y or m.
127
128config SND_SOC_INTEL_APL
129 tristate "Broxton/ApolloLake Platforms"
130 depends on PCI && ACPI
131 select SND_SOC_INTEL_SKYLAKE_FAMILY
132 help
133 If you have a Intel Broxton/ApolloLake platform with the DSP
134 enabled in the BIOS then enable this option by saying Y or m.
135
136config SND_SOC_INTEL_KBL
137 tristate "Kabylake Platforms"
138 depends on PCI && ACPI
139 select SND_SOC_INTEL_SKYLAKE_FAMILY
140 help
141 If you have a Intel Kabylake platform with the DSP
142 enabled in the BIOS then enable this option by saying Y or m.
143
144config SND_SOC_INTEL_GLK
145 tristate "GeminiLake Platforms"
146 depends on PCI && ACPI
147 select SND_SOC_INTEL_SKYLAKE_FAMILY
148 help
149 If you have a Intel GeminiLake platform with the DSP
150 enabled in the BIOS then enable this option by saying Y or m.
151
152config SND_SOC_INTEL_CNL
153 tristate "CannonLake/WhiskyLake Platforms"
154 depends on PCI && ACPI
155 select SND_SOC_INTEL_SKYLAKE_FAMILY
156 help
157 If you have a Intel CNL/WHL platform with the DSP
158 enabled in the BIOS then enable this option by saying Y or m.
159
160config SND_SOC_INTEL_CFL
161 tristate "CoffeeLake Platforms"
162 depends on PCI && ACPI
163 select SND_SOC_INTEL_SKYLAKE_FAMILY
164 help
165 If you have a Intel CoffeeLake platform with the DSP
166 enabled in the BIOS then enable this option by saying Y or m.
167
168config SND_SOC_INTEL_SKYLAKE_FAMILY
169 tristate
170 select SND_SOC_INTEL_SKYLAKE_COMMON
112 171
113if SND_SOC_INTEL_SKYLAKE 172if SND_SOC_INTEL_SKYLAKE_FAMILY
114 173
115config SND_SOC_INTEL_SKYLAKE_SSP_CLK 174config SND_SOC_INTEL_SKYLAKE_SSP_CLK
116 tristate 175 tristate
@@ -135,7 +194,7 @@ config SND_SOC_INTEL_SKYLAKE_COMMON
135 GeminiLake or CannonLake platform with the DSP enabled in the BIOS 194 GeminiLake or CannonLake platform with the DSP enabled in the BIOS
136 then enable this option by saying Y or m. 195 then enable this option by saying Y or m.
137 196
138endif ## SND_SOC_INTEL_SKYLAKE 197endif ## SND_SOC_INTEL_SKYLAKE_FAMILY
139 198
140config SND_SOC_ACPI_INTEL_MATCH 199config SND_SOC_ACPI_INTEL_MATCH
141 tristate 200 tristate
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 3839d6205fcf..0a7e40d06395 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -172,7 +172,7 @@ config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
172 172
173endif ## SND_SST_ATOM_HIFI2_PLATFORM 173endif ## SND_SST_ATOM_HIFI2_PLATFORM
174 174
175if SND_SOC_INTEL_SKYLAKE 175if SND_SOC_INTEL_SKL
176 176
177config SND_SOC_INTEL_SKL_RT286_MACH 177config SND_SOC_INTEL_SKL_RT286_MACH
178 tristate "SKL with RT286 I2S mode" 178 tristate "SKL with RT286 I2S mode"
@@ -212,6 +212,10 @@ config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
212 Say Y or m if you have such a device. This is a recommended option. 212 Say Y or m if you have such a device. This is a recommended option.
213 If unsure select "N". 213 If unsure select "N".
214 214
215endif ## SND_SOC_INTEL_SKL
216
217if SND_SOC_INTEL_APL
218
215config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH 219config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
216 tristate "Broxton with DA7219 and MAX98357A in I2S Mode" 220 tristate "Broxton with DA7219 and MAX98357A in I2S Mode"
217 depends on MFD_INTEL_LPSS && I2C && ACPI 221 depends on MFD_INTEL_LPSS && I2C && ACPI
@@ -239,6 +243,10 @@ config SND_SOC_INTEL_BXT_RT298_MACH
239 Say Y or m if you have such a device. This is a recommended option. 243 Say Y or m if you have such a device. This is a recommended option.
240 If unsure select "N". 244 If unsure select "N".
241 245
246endif ## SND_SOC_INTEL_APL
247
248if SND_SOC_INTEL_KBL
249
242config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH 250config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
243 tristate "KBL with RT5663 and MAX98927 in I2S Mode" 251 tristate "KBL with RT5663 and MAX98927 in I2S Mode"
244 depends on MFD_INTEL_LPSS && I2C && ACPI 252 depends on MFD_INTEL_LPSS && I2C && ACPI
@@ -303,6 +311,10 @@ config SND_SOC_INTEL_KBL_RT5660_MACH
303 create an alsa sound card for RT5660 I2S audio codec. 311 create an alsa sound card for RT5660 I2S audio codec.
304 Say Y if you have such a device. 312 Say Y if you have such a device.
305 313
314endif ## SND_SOC_INTEL_KBL
315
316if SND_SOC_INTEL_GLK
317
306config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH 318config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
307 tristate "GLK with RT5682 and MAX98357A in I2S Mode" 319 tristate "GLK with RT5682 and MAX98357A in I2S Mode"
308 depends on MFD_INTEL_LPSS && I2C && ACPI 320 depends on MFD_INTEL_LPSS && I2C && ACPI
@@ -317,7 +329,7 @@ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
317 Say Y if you have such a device. 329 Say Y if you have such a device.
318 If unsure select "N". 330 If unsure select "N".
319 331
320endif ## SND_SOC_INTEL_SKYLAKE 332endif ## SND_SOC_INTEL_GLK
321 333
322if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC 334if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
323 335
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index f9888b1d5521..5abd35ca4e41 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -1142,24 +1142,36 @@ static void skl_remove(struct pci_dev *pci)
1142 1142
1143/* PCI IDs */ 1143/* PCI IDs */
1144static const struct pci_device_id skl_ids[] = { 1144static const struct pci_device_id skl_ids[] = {
1145#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL)
1145 /* Sunrise Point-LP */ 1146 /* Sunrise Point-LP */
1146 { PCI_DEVICE(0x8086, 0x9d70), 1147 { PCI_DEVICE(0x8086, 0x9d70),
1147 .driver_data = (unsigned long)&snd_soc_acpi_intel_skl_machines}, 1148 .driver_data = (unsigned long)&snd_soc_acpi_intel_skl_machines},
1149#endif
1150#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
1148 /* BXT-P */ 1151 /* BXT-P */
1149 { PCI_DEVICE(0x8086, 0x5a98), 1152 { PCI_DEVICE(0x8086, 0x5a98),
1150 .driver_data = (unsigned long)&snd_soc_acpi_intel_bxt_machines}, 1153 .driver_data = (unsigned long)&snd_soc_acpi_intel_bxt_machines},
1154#endif
1155#if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
1151 /* KBL */ 1156 /* KBL */
1152 { PCI_DEVICE(0x8086, 0x9D71), 1157 { PCI_DEVICE(0x8086, 0x9D71),
1153 .driver_data = (unsigned long)&snd_soc_acpi_intel_kbl_machines}, 1158 .driver_data = (unsigned long)&snd_soc_acpi_intel_kbl_machines},
1159#endif
1160#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
1154 /* GLK */ 1161 /* GLK */
1155 { PCI_DEVICE(0x8086, 0x3198), 1162 { PCI_DEVICE(0x8086, 0x3198),
1156 .driver_data = (unsigned long)&snd_soc_acpi_intel_glk_machines}, 1163 .driver_data = (unsigned long)&snd_soc_acpi_intel_glk_machines},
1164#endif
1165#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CNL)
1157 /* CNL */ 1166 /* CNL */
1158 { PCI_DEVICE(0x8086, 0x9dc8), 1167 { PCI_DEVICE(0x8086, 0x9dc8),
1159 .driver_data = (unsigned long)&snd_soc_acpi_intel_cnl_machines}, 1168 .driver_data = (unsigned long)&snd_soc_acpi_intel_cnl_machines},
1169#endif
1170#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CFL)
1160 /* CFL */ 1171 /* CFL */
1161 { PCI_DEVICE(0x8086, 0xa348), 1172 { PCI_DEVICE(0x8086, 0xa348),
1162 .driver_data = (unsigned long)&snd_soc_acpi_intel_cnl_machines}, 1173 .driver_data = (unsigned long)&snd_soc_acpi_intel_cnl_machines},
1174#endif
1163 { 0, } 1175 { 0, }
1164}; 1176};
1165MODULE_DEVICE_TABLE(pci, skl_ids); 1177MODULE_DEVICE_TABLE(pci, skl_ids);