ASoC: rt286: set combo jack by dmi
authorBard Liao <bardliao@realtek.com>
Thu, 6 Nov 2014 01:59:59 +0000 (09:59 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 6 Nov 2014 05:50:55 +0000 (05:50 +0000)
This patch enables combo jack configuration according to dmi.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt286.c

index 97daa80..d4acb64 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/i2c.h>
 #include <linux/platform_device.h>
 #include <linux/spi/spi.h>
+#include <linux/dmi.h>
 #include <linux/acpi.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
@@ -1205,6 +1206,16 @@ static const struct acpi_device_id rt286_acpi_match[] = {
 };
 MODULE_DEVICE_TABLE(acpi, rt286_acpi_match);
 
+static struct dmi_system_id force_combo_jack_table[] __initdata = {
+       {
+               .ident = "Intel Wilson Beach",
+               .matches = {
+                       DMI_MATCH(DMI_BOARD_NAME, "Wilson Beach SDS")
+               }
+       },
+       { }
+};
+
 static int rt286_i2c_probe(struct i2c_client *i2c,
                           const struct i2c_device_id *id)
 {
@@ -1240,6 +1251,9 @@ static int rt286_i2c_probe(struct i2c_client *i2c,
        if (pdata)
                rt286->pdata = *pdata;
 
+       if (dmi_check_system(force_combo_jack_table))
+               rt286->pdata.cbj_en = true;
+
        regmap_write(rt286->regmap, RT286_SET_AUDIO_POWER, AC_PWRST_D3);
 
        for (i = 0; i < RT286_POWER_REG_LEN; i++)