[v2,9/9] ASoC: Intel: Switch DMI table match to a test of variable
diff mbox series

Message ID 20200120160801.53089-10-andriy.shevchenko@linux.intel.com
State New
Headers show
Series
  • x86: Easy way of detecting MS Surface 3
Related show

Commit Message

Andy Shevchenko Jan. 20, 2020, 4:08 p.m. UTC
Since we have a common x86 quirk that provides an exported variable,
use it instead of local DMI table match.

Cc: Cezary Rojewski <cezary.rojewski@intel.com>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Cc: Jie Yang <yang.jie@linux.intel.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 .../intel/common/soc-acpi-intel-cht-match.c   | 33 ++-----------------
 1 file changed, 3 insertions(+), 30 deletions(-)

Comments

Mark Brown Jan. 20, 2020, 5:55 p.m. UTC | #1
On Mon, Jan 20, 2020 at 06:08:01PM +0200, Andy Shevchenko wrote:
> Since we have a common x86 quirk that provides an exported variable,
> use it instead of local DMI table match.

Acked-by: Mark Brown <broonie@kernel.org>

> -	if (cht_machine_id == CHT_SURFACE_MACH)
> -		return &cht_surface_mach;
> -	else
> -		return mach;
> +	return x86_microsoft_surface_3_machine ? &cht_surface_mach : arg;

but if you're respinning this please replace this with a normal
conditional statement to improve legibility.
Andy Shevchenko Jan. 21, 2020, 3:20 p.m. UTC | #2
On Mon, Jan 20, 2020 at 05:55:54PM +0000, Mark Brown wrote:
> On Mon, Jan 20, 2020 at 06:08:01PM +0200, Andy Shevchenko wrote:
> > Since we have a common x86 quirk that provides an exported variable,
> > use it instead of local DMI table match.
> 
> Acked-by: Mark Brown <broonie@kernel.org>
> 
> > -	if (cht_machine_id == CHT_SURFACE_MACH)
> > -		return &cht_surface_mach;
> > -	else
> > -		return mach;
> > +	return x86_microsoft_surface_3_machine ? &cht_surface_mach : arg;
> 
> but if you're respinning this please replace this with a normal
> conditional statement to improve legibility.

Okay, will do. Thanks for review!

Patch
diff mbox series

diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
index d0fb43c2b9f6..c35766125d5e 100644
--- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
@@ -5,31 +5,11 @@ 
  * Copyright (c) 2017, Intel Corporation.
  */
 
-#include <linux/dmi.h>
+#include <linux/platform_data/x86/machine.h>
+
 #include <sound/soc-acpi.h>
 #include <sound/soc-acpi-intel-match.h>
 
-static unsigned long cht_machine_id;
-
-#define CHT_SURFACE_MACH 1
-
-static int cht_surface_quirk_cb(const struct dmi_system_id *id)
-{
-	cht_machine_id = CHT_SURFACE_MACH;
-	return 1;
-}
-
-static const struct dmi_system_id cht_table[] = {
-	{
-		.callback = cht_surface_quirk_cb,
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Surface 3"),
-		},
-	},
-	{ }
-};
-
 static struct snd_soc_acpi_mach cht_surface_mach = {
 	.id = "10EC5640",
 	.drv_name = "cht-bsw-rt5645",
@@ -41,14 +21,7 @@  static struct snd_soc_acpi_mach cht_surface_mach = {
 
 static struct snd_soc_acpi_mach *cht_quirk(void *arg)
 {
-	struct snd_soc_acpi_mach *mach = arg;
-
-	dmi_check_system(cht_table);
-
-	if (cht_machine_id == CHT_SURFACE_MACH)
-		return &cht_surface_mach;
-	else
-		return mach;
+	return x86_microsoft_surface_3_machine ? &cht_surface_mach : arg;
 }
 
 /* Cherryview-based platforms: CherryTrail and Braswell */