Re: [PATCH 2/2] ASoC: Intel: bytcr_rt5640: Add quirks for ASUS MeMO Pad 7 (ME176C)

Stephan Gerhold
2018-12-22T14:59:15Z

On Sat, Dec 22, 2018 at 03:47:12PM +0100, Stephan Gerhold wrote:
> Add quirks to select the correct input map, jack-detect options
> and channel map to make sound work on the ASUS MeMO Pad 7 (ME176C).

Everything seems to work fine with the quirks below, although I have to
say that the internal microphone quality is really bad. There are
always high-pitched sounds in the background. Not sure if the hardware
is just really bad or if there is any way to improve it.
(I never use it so I have not investigated much further..)

>
> Note: Although sound works out of the box, jack detection currently
> requires overriding the ACPI DSDT table. This is necessary because
> the rt5640 ACPI device (10EC5640) has the wrong GPIO listed as
> interrupt (one of the Bluetooth GPIOs).
> The correct GPIO is GPO2 0x0004 (listed as the first GPIO in the
> Intel(R) Audio Machine Driver - AMCR0F28 device).

At some point it might be possible to add a workaround for this using
that AMCR0F28 device which has the correct GPIO. However, at the moment
I still need the DSDT override for Bluetooth to work (with no simple
workaround), so it's probably easiest if we just document it here for
now. Eventually I will investigate this later..

>
> Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
> ---
> sound/soc/intel/boards/bytcr_rt5640.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
> index a22366ce33c4..ca8b4d5ff70f 100644
> --- a/sound/soc/intel/boards/bytcr_rt5640.c
> +++ b/sound/soc/intel/boards/bytcr_rt5640.c
> @@ -428,6 +428,18 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
> BYT_RT5640_SSP0_AIF1 |
> BYT_RT5640_MCLK_EN),
> },
> + {
> + .matches = {
> + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
> + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ME176C"),
> + },
> + .driver_data = (void *)(BYT_RT5640_IN1_MAP |
> + BYT_RT5640_JD_SRC_JD2_IN4N |
> + BYT_RT5640_OVCD_TH_2000UA |
> + BYT_RT5640_OVCD_SF_0P75 |
> + BYT_RT5640_SSP0_AIF1 |
> + BYT_RT5640_MCLK_EN),
> + },
> {
> .matches = {
> DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
> --
> 2.20.1
>