Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp558220ybt; Wed, 8 Jul 2020 06:28:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxqeMLRJUfDjtyEfNMTMe28bydqFxj/NAWRQPdqix0Nwj9/YAmnkOGaKTWhdoRZbuPd5l1U X-Received: by 2002:aa7:da06:: with SMTP id r6mr56560576eds.189.1594214933390; Wed, 08 Jul 2020 06:28:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594214933; cv=none; d=google.com; s=arc-20160816; b=n+wJH5rOYFDEY/i6j3niJLjecvSZfUyTpOqU1dYssBoF/C1ZU7Pyw9UOtoLsObvv2N 6QR1O62LkaMuwpQ0LWshwIn/8yxFZ3rfYuPTlSyOh7sNPUkvpmA4olK7PQuyJbysgTqY 5EKMBapDwmALGqrRSBukgDJd9+6J7CElI+JREvDZmjx0MgdyEsTMXhvUXYgpF/yUa16w pExvxUykwNnksGe/ss0dTMXmrYHq7pU+GCupPQhJ0iCWzDTPc7e/8e25/BElRa1Bq1hV NkBH8H5JYG/jJAnyvbOj33h4+TwdDgsEwF15OBhzw7lkh1Kw4HIEDWAwUSCAQhVfd/93 dKHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=nLdXECLtQR/Jw6PnNJBO5O7DiN9iPSyCU6LSlGREUDY=; b=XMuX3ODHqE9fXaNpS5Pb00Rb0fEGV7d2eE6SHTFVzdLp3eRUIGx+1e3P9JXp8mcoae rw4wfsl47/YFGhxnR8838fqr6b6k3dCJ3E/jaoiGWS4lwVk7HDWo+hPxhpUQPrz1OiBl FrLvgsrWZlOuOX4KwVEodhG3akf7rEvYreaIZglKnqdY0qh71yLULBY4+rcZRMVUb/2g viMoN5BI0OCpoUQPHKsLYGilP2cOLywZjJgctgnlKWqK3Q4EFuUc3/U7XNgux9WijJf3 8NpoCvHp9/mWT16B18XFxUyOhzMij0LNu2QZi4FjnXv6xl+GYTwV+sItUDP8Dq1PAudJ qY9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=sjhiUnqO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h1si16671381ejc.200.2020.07.08.06.28.30; Wed, 08 Jul 2020 06:28:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=sjhiUnqO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729263AbgGHN2P (ORCPT + 99 others); Wed, 8 Jul 2020 09:28:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40740 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728364AbgGHN2P (ORCPT ); Wed, 8 Jul 2020 09:28:15 -0400 Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06356C061A0B for ; Wed, 8 Jul 2020 06:28:15 -0700 (PDT) Received: by mail-ed1-x544.google.com with SMTP id dm19so35554517edb.13 for ; Wed, 08 Jul 2020 06:28:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nLdXECLtQR/Jw6PnNJBO5O7DiN9iPSyCU6LSlGREUDY=; b=sjhiUnqOgyku9GLu3mmz/Um7HUrzDAYJqAJxMNLm0sRIJhmQ7LHp4nt2gEXQd5wcHr XS4x1CQFpjLShiftGsXNL53GxV0RnsCMTevOP8ikkGWzQDS30K6+2IX4ZqV7u0jME2Ba dILkafio6QobeRnjg3uuNJuzZIyJS00+nCI7OAtYb9uft6T/mg+5OMqrqtVMyFkPrjxf CLK2tp9cL/LjyHla1IXqhYbRvMl5HX0mJV+6GTtZgmqiW9UWXNS+BdFdYsKd2vqXou5V PxoBaAzoLKBw2x4gJsFyxmcleZAn2GGdrLOuuHOBIA10QNDeMzxXg2Zx35tnuOfP+H/a +ciQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nLdXECLtQR/Jw6PnNJBO5O7DiN9iPSyCU6LSlGREUDY=; b=M37blM3So+hqjoC+bFXGbpwMYR8m12vhQ5IQQZf+Ddb/wHt+lRdvEd47mZiTiKcWWV CcoVbSjPk6rMwywyCeqJ/bkhUUIADrAlXyQipO0TrCq0og7crOsbMxQ2WgJyahn05cHj DDwj2SNrYUgtfI3RijCGvEDsthq/U5QP4wjA67Yi621jg0gvUWxxfbFkB6afjmcrDJMJ +I+r/NnX0dZwHfyPllOfYFfDzamIjHp5ljd+h4Hq6OCvq+HHzDA2TiOCX0MYlteqJ+0z Bxvp1GImbevzLkrP74mOi+oTiiP9BP/xijpRvymJcbnm6uWO+QkuqRaw1lV9yURAcwbQ T9Dg== X-Gm-Message-State: AOAM532yReaZSfLSDYnTeX2ZHFx4YpLnFxCziTQ3jrblirhPLYnlIo4t nY+ABl3rKA22oUL93aSZxZ7RgzRZrqFBLKk/zxDL7Q== X-Received: by 2002:a50:ed15:: with SMTP id j21mr41499564eds.246.1594214893469; Wed, 08 Jul 2020 06:28:13 -0700 (PDT) MIME-Version: 1.0 References: <20200708071117.3070707-1-yuhsuan@chromium.org> In-Reply-To: From: Guenter Roeck Date: Wed, 8 Jul 2020 06:28:02 -0700 Message-ID: Subject: Re: [PATCH] ASoC: cros_ec_codec: Reset I2S RX when probing To: Enric Balletbo i Serra Cc: Yu-Hsuan Hsu , linux-kernel , Benson Leung , Guenter Roeck , Cheng-Yi Chiang , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Tzung-Bi Shih , Gwendal Grignou , Lee Jones , Yicheng Li , ALSA development Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 8, 2020 at 3:16 AM Enric Balletbo i Serra wrote: > > Hi Yu-Hsuan, > > Thank you for your patch. > > On 8/7/20 9:11, Yu-Hsuan Hsu wrote: > > It is not guaranteed that I2S RX is disabled when the kernel booting. > > For example, if the kernel crashes while it is enabled, it will keep > > enabled until the next time EC reboots. Reset I2S RX when probing to > > fix this issue. > > > > Signed-off-by: Yu-Hsuan Hsu > > --- > > include/linux/platform_data/cros_ec_commands.h | 1 + > > sound/soc/codecs/cros_ec_codec.c | 7 +++++++ > > 2 files changed, 8 insertions(+) > > > > diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h > > index 69210881ebac8..11ce917ca924c 100644 > > --- a/include/linux/platform_data/cros_ec_commands.h > > +++ b/include/linux/platform_data/cros_ec_commands.h > > @@ -4598,6 +4598,7 @@ enum ec_codec_i2s_rx_subcmd { > > EC_CODEC_I2S_RX_SET_SAMPLE_DEPTH = 0x2, > > EC_CODEC_I2S_RX_SET_DAIFMT = 0x3, > > EC_CODEC_I2S_RX_SET_BCLK = 0x4, > > + EC_CODEC_I2S_RX_RESET = 0x5, > > Is this a new command not available in the firmware that is already in the field? > > > > EC_CODEC_I2S_RX_SUBCMD_COUNT, > > }; > > > > diff --git a/sound/soc/codecs/cros_ec_codec.c b/sound/soc/codecs/cros_ec_codec.c > > index 8d45c628e988e..5495214e73e68 100644 > > --- a/sound/soc/codecs/cros_ec_codec.c > > +++ b/sound/soc/codecs/cros_ec_codec.c > > @@ -1034,6 +1034,13 @@ static int cros_ec_codec_platform_probe(struct platform_device *pdev) > > } > > priv->ec_capabilities = r.capabilities; > > > > + /* Reset EC codec I2S RX. */ > > + p.cmd = EC_CODEC_I2S_RX_RESET; > > + ret = send_ec_host_command(priv->ec_device, EC_CMD_EC_CODEC_I2S_RX, > > + (uint8_t *)&p, sizeof(p), NULL, 0); > > + if (ret) > > + dev_err(dev, "failed to EC_CODEC_I2S_RESET: %d\n", ret); > > + > > With an old firmware I suspect this message will appear on every boot, right? > So, to solve the issue and get rid of this error you're forced to upgrade the > firmware. Is that true? > It might possibly make more sense to fail this silently and to send EC_CODEC_I2S_RX_DISABLE as backup if it is not supported (-ENOTSUPP can possibly be used as trigger if the call returns it). Also, I don't accept dev_err() if the error is ignored for patches in my scope of responsibility. Guenter > > platform_set_drvdata(pdev, priv); > > > > ret = devm_snd_soc_register_component(dev, &i2s_rx_component_driver, > >