Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp205603pxb; Fri, 15 Jan 2021 00:43:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJwIw70Id3Jagyeud3fAfWghne4Zk0VcN4zMSK02Y7Phsm3qZLg4PkQAyrTV7WdpAPts37uB X-Received: by 2002:a50:becf:: with SMTP id e15mr9118323edk.138.1610700198348; Fri, 15 Jan 2021 00:43:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610700198; cv=none; d=google.com; s=arc-20160816; b=F+TGplTUjh5BopwteqG/Q14b3Vn/L5QF/uOoBbhx/fpdHa/r8EkQ4XX/9Nh0kiK9dY 732PrWgqiydbH7pYwtnWA1G69vjsRy99ej9qdrB8M5m8/ux5KZQAIgzvOxlkV982Tn3e ZQZDOasylxDJ3eswFmG0yvCvHv6927QV5xuefpEL1QIBPWIGeJoTn3qBI9L+n8WMH6UC tNBBAL0HmU2vq3lDX0L18RfFut/DvyfErNyjB/lj3wfOZEUidbhFPrm9N2g0Y1u6hSud GIbKypjCqvCsvAmjT0QhQm4Q/Uy89T+iXs0I+hzcv7vquHJ7Z1P3L0RrEu7LskoedKt5 1Bpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=MbBZrDP4IrIPZxUvjAYid9N/Fa9d/bofmIE0flpsVB0=; b=a58FLX0A9a0brwrsAypFBrBGfgCAf3PRPbGirCPKXsG+uT2XaGZSF3w9fdGdCG+gwT vvVVwTc62wrromFDf+33jXTeOVqd8POYEg5Lc4SovwYLi4svxvPilFvvBT6l+hcepxI+ /jvkxawYFe9bFSz1YKy45VWzjhcmFBg1jKv0dqXGeD0DrTXnXyIuSmsoTIFcYo9JHwUw oghv7LybKfcBwgepFBQtrKyD0e1t5jp2ZjQDGVqRaQhm/yS/XFx7rrc39jiQbLnjcoWN QStOS9xRWvj3814hLK9DKA8F60e1EAGOQU82kTF26e2gbAR2vKTyooUB5/xZAHiltsBk 0uaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b="Dmse58G/"; 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=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p11si3425542eja.213.2021.01.15.00.42.54; Fri, 15 Jan 2021 00:43:18 -0800 (PST) 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=@chromium.org header.s=google header.b="Dmse58G/"; 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=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732075AbhAOHx5 (ORCPT + 99 others); Fri, 15 Jan 2021 02:53:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730295AbhAOHx5 (ORCPT ); Fri, 15 Jan 2021 02:53:57 -0500 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3A906C0613C1 for ; Thu, 14 Jan 2021 23:53:17 -0800 (PST) Received: by mail-pl1-x62b.google.com with SMTP id d4so4288693plh.5 for ; Thu, 14 Jan 2021 23:53:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MbBZrDP4IrIPZxUvjAYid9N/Fa9d/bofmIE0flpsVB0=; b=Dmse58G/vKR25BWNNFJR75Iv5H2awuqE5/NF6KzNjEV+sQ0TtwrrDNUZ9dtpcBTOIi IHSQ7Uqlkr3OHOrWjHL0e17tkDBCrnj7zEj32Uh5tLtCJ8DLoCTj5yCtpVy2hQPKMo5G u9eSOHRju7b4ZwwQnSSPyWb3ltRx+vN/AjDIc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MbBZrDP4IrIPZxUvjAYid9N/Fa9d/bofmIE0flpsVB0=; b=GPE56jTKgLRMJAkUBcvKcb70r4mwsrmO6XAeGyhcNoUonjnIELgddipPb5cBYbwNUl +0P1WKkwDrNm30EwL5GcYVkFzPwQo49Nzm+PSD4fM05kqxlYmgUPrHGfnwauQEIwz/sT fIvWl9yhGvG4AyANPwy0UlJHHEU0vWBvC6SKaqK/4VvH/8OeiyI6sGQvcNBk9OIGLHZz hogHL/EEvfApYcp/7d6JacMp4hOXPLrWiUh2DKFxhKMOn6/VK6b5RsKZWP9ilDd3vN2b 6GksrYV9OeK5Xu7RGAJDMgxZtzsgqAmzgEQRnfPD7Skwz77azZxqBZayWcCeVs69YqP/ uZKQ== X-Gm-Message-State: AOAM533WZkqIq5faer+sKwHqLEojD6B9DDXRIUZWBs4C9HNi7niqMQ9T ZkO5uSvP6KWspmCCa5Mxj906oyqevvZmaWch X-Received: by 2002:a17:90b:78f:: with SMTP id l15mr353390pjz.234.1610697196496; Thu, 14 Jan 2021 23:53:16 -0800 (PST) Received: from localhost ([2401:fa00:1:10:725a:fff:fe46:44eb]) by smtp.gmail.com with ESMTPSA id e5sm7531175pjs.0.2021.01.14.23.53.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Jan 2021 23:53:15 -0800 (PST) From: Yu-Hsuan Hsu To: linux-kernel@vger.kernel.org Cc: Benson Leung , Enric Balletbo i Serra , Guenter Roeck , Cheng-Yi Chiang , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Prashant Malani , Pi-Hsun Shih , Yu-Hsuan Hsu , "Gustavo A . R . Silva" , alsa-devel@alsa-project.org Subject: [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Date: Fri, 15 Jan 2021 15:53:01 +0800 Message-Id: <20210115075301.47995-2-yuhsuan@chromium.org> X-Mailer: git-send-email 2.30.0.296.g2bfb1c46d8-goog In-Reply-To: <20210115075301.47995-1-yuhsuan@chromium.org> References: <20210115075301.47995-1-yuhsuan@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- Updated the info message. sound/soc/codecs/cros_ec_codec.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sound/soc/codecs/cros_ec_codec.c b/sound/soc/codecs/cros_ec_codec.c index f33a2a9654e7..c4772f82485a 100644 --- a/sound/soc/codecs/cros_ec_codec.c +++ b/sound/soc/codecs/cros_ec_codec.c @@ -1011,6 +1011,18 @@ 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 == -ENOPROTOOPT) { + dev_info(dev, + "Missing reset command. Please update EC firmware.\n"); + } else if (ret) { + dev_err(dev, "failed to EC_CODEC_I2S_RESET: %d\n", ret); + return ret; + } + platform_set_drvdata(pdev, priv); ret = devm_snd_soc_register_component(dev, &i2s_rx_component_driver, -- 2.30.0.296.g2bfb1c46d8-goog