ASoC: Intel: bytcr_rt5651: Actually honor the DMIC_EN quirk if specified
authorHans de Goede <hdegoede@redhat.com>
Sun, 4 Mar 2018 14:36:00 +0000 (15:36 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 7 Mar 2018 14:17:52 +0000 (14:17 +0000)
Before this commit it was possible to set the DMIC_EN quirk in the machine
driver, but it would never be passed to the codec driver so it was a nop.

This commit adds code to actually pass the quirk to the codec driver.

Since the DMIC_EN quirk was ignored before, this commit removes it from
the default quirk settings, to avoid this causing an unexpected functional
change. If we really want the DMIC_EN behavior anywhere it should be
specifically enabled by follow up commits.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bytcr_rt5651.c

index 499e405..a874bba 100644 (file)
@@ -57,8 +57,8 @@ enum {
 #define BYT_RT5651_MCLK_EN             BIT(17)
 #define BYT_RT5651_MCLK_25MHZ          BIT(18)
 
-/* jack-detect-source + terminating empty entry */
-#define MAX_NO_PROPS 2
+/* jack-detect-source + dmic-en + terminating empty entry */
+#define MAX_NO_PROPS 3
 
 struct byt_rt5651_private {
        struct clk *mclk;
@@ -66,7 +66,6 @@ struct byt_rt5651_private {
 };
 
 static unsigned long byt_rt5651_quirk = BYT_RT5651_DMIC_MAP |
-                                       BYT_RT5651_DMIC_EN |
                                        BYT_RT5651_MCLK_EN;
 
 static void log_quirks(struct device *dev)
@@ -327,6 +326,9 @@ static int byt_rt5651_add_codec_device_props(const char *i2c_dev_name)
        props[cnt++] = PROPERTY_ENTRY_U32("realtek,jack-detect-source",
                                BYT_RT5651_JDSRC(byt_rt5651_quirk));
 
+       if (byt_rt5651_quirk & BYT_RT5651_DMIC_EN)
+               props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,dmic-en");
+
        ret = device_add_properties(i2c_dev, props);
        put_device(i2c_dev);