Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp157361pxu; Thu, 7 Jan 2021 01:03:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJxDy8a9o+1fGO1QKnhHvAYyr+Nb7fz/bRwTozKvzIqGmjZt8gkJH4CLZHGuhyZRzPe8Ip5g X-Received: by 2002:a05:6402:318f:: with SMTP id di15mr944368edb.237.1610010189142; Thu, 07 Jan 2021 01:03:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610010189; cv=none; d=google.com; s=arc-20160816; b=MiPeXGv6QZvYokgNPigTOAmCfkwezxdVYbgUDLVNZ3xx+e8tDR6Gt3ptLxOHbJX0lJ +uJevde8f5gk3D9m0lN2DhYiT/xdS+EZLOmGw2LnffQohkdU4IMmE7k3hrpXkl/9fh9L m2V1dbThs/OsnmO2EGDJCxOndhq89+EBAZpmX+BKdAfoact0AMX0G2NnonOwc2TGVH4W nKrjCV2py/0iA8/bf99uoo0LUylRQuICefAmXVUs1koinM4MStiI8Uo1cgY3+79YJj4z gTbVo+mcCVbPdJYfsJ/o1UqBMd5+J4UDTaNbQw8Zn5KiH3n3dijdlo65Izf8Tatf81d+ QvKA== 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=lgk0TCrbfrPPwCLQFrB7xrsoIfDGu1gFurEi0wsLYw0=; b=CTpOj9MYtr61o0rIM8GfISzf3zlUQJWgAONUE/uWqN6Mo+6HPXTX8qVFIjtJAlXQMo 2QUMwyMQYIToleC+RZj68fCRm4Vzas3Sc864YKYE/tQ9yzTiVX3b1j3olfb8XxCSKOLW fvIqsH5NRS8BWCkVi0LAK0jLj6U9zpMxyU8Xigoxkoom7wkPhSo+KjY5qT09Tomgo2Dp zsAbGUkNuYScHuHSBviX6kQonE9yj5W6C2NxFgmDE+03ZMTZdDE/GKlJ3BtTfgo5ucaQ RoCWvdSA068QIuehgn3Gh2BlOdnwEku4CfQ4zdGOJZ2bxjV7RHOu7QhMjSXKpnBQFrzJ 2KeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=SVJKcvr9; 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 o60si1993671eda.61.2021.01.07.01.02.45; Thu, 07 Jan 2021 01:03:09 -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=SVJKcvr9; 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 S1727105AbhAGJAx (ORCPT + 99 others); Thu, 7 Jan 2021 04:00:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725974AbhAGJAw (ORCPT ); Thu, 7 Jan 2021 04:00:52 -0500 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32E43C0612F5 for ; Thu, 7 Jan 2021 01:00:12 -0800 (PST) Received: by mail-pl1-x62c.google.com with SMTP id r4so3138820pls.11 for ; Thu, 07 Jan 2021 01:00:12 -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=lgk0TCrbfrPPwCLQFrB7xrsoIfDGu1gFurEi0wsLYw0=; b=SVJKcvr9Izh4sNUSpK6YEtczrCVWRg6wTpG7q41qHhdCkeMm+Efzi6nwWrDDlZrzD2 xV6UIRfzfTgjd+dQNkU9PQ9IO0xnXPiptG/pB442Ha2BDDWDopILjcKnm0cQ2FSwRmvG pEuPHdSbikE850NnUNOre/c2jNp6n7QVqELH0= 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=lgk0TCrbfrPPwCLQFrB7xrsoIfDGu1gFurEi0wsLYw0=; b=mytz9Riw1B9ZJ72Uj5vFMGz0Xkzs1CmOuiQhm0iBxnQw0Z4qBFrL7ZH0kb5UU2oA3h 7EGkGMFyYMRnVNuqaPtzTpuyp/iChRbHww0z6T2VKqUgx+oaiJrnImAslX8eSiF+qVBB Pyqvxg9Oh4zWYqTxvfc2dOGkRrcJ7jNnkIwuw8EvKkxKzpC8cwDKIC5UKd2fQTp0mipT 8b/2JReKjUgBxha0Fi16Bw0pFZlSOcXJnvY3lkXYSRfQaCqvapw+zMibYAp8CYsX2NBF LVEiQQj132tr909rxjbIEKOldDFw0JzkBQ4SqU0DxazkcQSlGzF714nphIlsvfsMow3o LqAQ== X-Gm-Message-State: AOAM533DfNc8sI5bWlZl1lVxiyLD4Hwpfx6Z6Cm9jZlB7wHsUre0TNDS eITeBoixiMy4yZAd97T0HA3pbiviaUjceX8x X-Received: by 2002:a17:90a:c396:: with SMTP id h22mr8438394pjt.84.1610010011464; Thu, 07 Jan 2021 01:00:11 -0800 (PST) Received: from localhost ([2401:fa00:1:10:725a:fff:fe46:44eb]) by smtp.gmail.com with ESMTPSA id v1sm5679450pga.63.2021.01.07.01.00.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 07 Jan 2021 01:00:10 -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 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Date: Thu, 7 Jan 2021 16:59:42 +0800 Message-Id: <20210107085942.2891525-2-yuhsuan@chromium.org> X-Mailer: git-send-email 2.29.2.729.g45daf8777d-goog In-Reply-To: <20210107085942.2891525-1-yuhsuan@chromium.org> References: <20210107085942.2891525-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 --- sound/soc/codecs/cros_ec_codec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/codecs/cros_ec_codec.c b/sound/soc/codecs/cros_ec_codec.c index f33a2a9654e7..28b3e2c48c86 100644 --- a/sound/soc/codecs/cros_ec_codec.c +++ b/sound/soc/codecs/cros_ec_codec.c @@ -1011,6 +1011,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_warn(dev, "failed to EC_CODEC_I2S_RESET: %d\n", ret); + platform_set_drvdata(pdev, priv); ret = devm_snd_soc_register_component(dev, &i2s_rx_component_driver, -- 2.29.2.729.g45daf8777d-goog