ASoC: rt298: Configure combo jack for headphones
authorDavid Ward <david.ward@gatech.edu>
Sun, 18 Apr 2021 13:46:56 +0000 (09:46 -0400)
committerMark Brown <broonie@kernel.org>
Mon, 19 Apr 2021 15:53:24 +0000 (16:53 +0100)
During jack detection, the combo jack is configured for a CTIA headset, and
then for an OMTP headset, while sensing the mic connection. If a mic is not
found in either case, the combo jack should be re-configured for headphones
only. This is consistent with the HDA driver behavior.

Signed-off-by: David Ward <david.ward@gatech.edu>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210418134658.4333-4-david.ward@gatech.edu
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt298.c

index 32cc9b6287d21d95e0fd5dbd29dffda7ea6ddbee..c592c40a7ab35decf97e45d76dd718e044e81162 100644 (file)
@@ -267,11 +267,16 @@ static int rt298_jack_detect(struct rt298_priv *rt298, bool *hp, bool *mic)
                                msleep(300);
                                regmap_read(rt298->regmap,
                                        RT298_CBJ_CTRL2, &val);
-                               if (0x0070 == (val & 0x0070))
+                               if (0x0070 == (val & 0x0070)) {
                                        *mic = true;
-                               else
+                               } else {
                                        *mic = false;
+                                       regmap_update_bits(rt298->regmap,
+                                               RT298_CBJ_CTRL1,
+                                               0xfcc0, 0xc400);
+                               }
                        }
+
                        regmap_update_bits(rt298->regmap,
                                RT298_DC_GAIN, 0x200, 0x0);