Received: by 2002:a05:7412:251c:b0:e2:908c:2ebd with SMTP id w28csp1146537rda; Mon, 23 Oct 2023 04:16:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE0tLggnjvlXqSmj8PzsCaRq/GIf+zIPF2moBc8qfzOVpJQyFF5MqQ5Lsj6gXso9o3nu1e/ X-Received: by 2002:a05:6a20:1593:b0:155:5c28:ea74 with SMTP id h19-20020a056a20159300b001555c28ea74mr7273653pzj.12.1698059782053; Mon, 23 Oct 2023 04:16:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698059782; cv=none; d=google.com; s=arc-20160816; b=C6WbjUVgGzz++DJ2yZTX9ShyPiA5NKZO0l62Z6Zip5jHStdwvgbT+xFiqEkgYRvnmQ ZStFz+z8aj5e47KCztNnyBihcbnAFTcPKulw022d2cXq2PV0+0H3eT6Bno5SgjdTB1qW Ttb8vniiQghifpvBlLb2eITo29UOIcatTblBMVOlXUdlFndmz2XljFiLzZXUaR6tqRLc WeSPQusT9fzSXeu7j/ejIbjnRUXUfiEFp5SlhYDXJvMnjE2AdhOtTKhFDvhN6Lvn43nI KxnYba48RYcWKwVXDmoiGVH+pL7rIVgD5T9sV3QVNs6lYAFBay2ignNGotISsb7uNCZA D36Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=6hu9rh6KgAvsKfYXXWL8zYTarr8RBDwNjZxBfWtY8rc=; fh=xwmCw8uuMY0HTcc8IGcz6mpl/rx618yh2oilyM9EM7Q=; b=e8ix0l78EVE9EquyqwwOWLDLtpKG8knYA71yrxLVPHbAdu/0zGtYCb5kGz/evmS7Yl b1bN/eclDoGcN/gvUWnGdZzdGwHOTcCXNFrGjBqf/ArqdMT/kvUfk68kAghlnjLKNkod w5tX9vfKRGyCPG6plF+UfjwKIGj4o1MqodHyNjo+ckHqHdu5Ci45k2GaqlKHAwniR9S4 d+6O8zsTBBJ4V5pC+J7nmuvHUQtjV/OuKTyqCWZhx2EnJn4sWpvgSaw7jTLyRanbbS+F 82U7vmj0qbO/026b/VfZWw1O4v+mmbATRVDOsIDU4FkWONLMlWqOptYJCIDsC0zYh4Gs eK3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jhJdqTgG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id nu1-20020a17090b1b0100b002773b1bf75fsi6293560pjb.23.2023.10.23.04.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Oct 2023 04:16:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jhJdqTgG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id DC0CD807C7C7; Mon, 23 Oct 2023 04:15:14 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233712AbjJWLPF (ORCPT + 99 others); Mon, 23 Oct 2023 07:15:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233702AbjJWLPD (ORCPT ); Mon, 23 Oct 2023 07:15:03 -0400 Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40F18C1 for ; Mon, 23 Oct 2023 04:15:00 -0700 (PDT) Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-d9fe0a598d8so656496276.2 for ; Mon, 23 Oct 2023 04:15:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1698059699; x=1698664499; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=6hu9rh6KgAvsKfYXXWL8zYTarr8RBDwNjZxBfWtY8rc=; b=jhJdqTgG6cuxZgiMwNG6i7xc7PU5cqdtV6LM1qD+GztmAFymK7qG5xFJmz3uIJC+KK hS65xNfgvvCvi7UMeXmnszp+eHXFOKD24oGaLgE/J9dsjRtxH25Zh+HJ6kl81himaf9F V8ZxLdxxdvnoTA1L91gSMN48R6DfMdJtfkSoYAo52os7K+7jhCIHrvQqFRIZx119vLx2 zHRNEiDWWCLlfNPOOKtowb+wIghE9Br1o/gAEImZB6E26WHAziimA2nveYxOIvUngwpi 5AEjzQojpTynXf8HOR3kYGKZCKYO0aeKqZI1yJIh7xfjF2ovyH/DlGvEC5mEvklnxoaa niIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698059699; x=1698664499; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6hu9rh6KgAvsKfYXXWL8zYTarr8RBDwNjZxBfWtY8rc=; b=v7QglN0QlSg4BUTjhIwW7uGE+FjHWxpon9xJrLOt5Fu2oHQyV2Q20i5uQ7GJmL4Miq boaOwDdeXl2r7+yhNFrKQo6+Q9o4SCwFoag6Cg7330NDITxKqRkXo4GlQrCxcYW29iAW n6E97L/qPeu0BK4uxmTrfQYLMjHeQNchTnJIf6I1cw2iIaTWt+qNISkiFhQtYBNlfFJB fCufT6jLAQNhvs0eHIqMYdqum285LjWIDJDzaWYti3sK5neqlGqHF09S12NJdivamJay Luvi8vrcooUBULYMY8aLTBUJYEtJeC2/4+NFVufGNBd5Y2Y7vmquuZT94+UgODKdLCnW aV/Q== X-Gm-Message-State: AOJu0Yxay9+abnAZpeMk2BVdlp9B0PLyK7j2ezcRN29MehS7puKnFa5f IxcwlgrjxhZd+4LV3+vUk7C1oEIhzn+R+KS24cjLcg== X-Received: by 2002:a5b:608:0:b0:d9a:e947:447b with SMTP id d8-20020a5b0608000000b00d9ae947447bmr8427971ybq.14.1698059699399; Mon, 23 Oct 2023 04:14:59 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ulf Hansson Date: Mon, 23 Oct 2023 13:14:23 +0200 Message-ID: Subject: Re: [PATCH v2] mmc: meson-mx-sdhc: Fix initialization frozen issue To: Ziyang Huang , Thorsten Leemhuis Cc: neil.armstrong@linaro.org, khilman@baylibre.com, jbrunet@baylibre.com, martin.blumenstingl@googlemail.com, yinxin_1989@aliyun.com, briannorris@chromium.org, linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 23 Oct 2023 04:15:15 -0700 (PDT) + Thorsten On Tue, 10 Oct 2023 at 18:44, Ziyang Huang wrote: > > Commit 4bc31edebde5 ("mmc: core: Set HS clock speed before sending > HS CMD13") set HS clock (52MHz) before switching to HS mode. For this > freq, FCLK_DIV5 will be selected and div value is 10 (reg value is 9). > Then we set rx_clk_phase to 11 or 15 which is out of range and make > hardware frozen. After we send command request, no irq will be > interrupted and the mmc driver will keep to wait for request finished, > even durning rebooting. > > So let's set it to Phase 90 which should work in most cases. Then let > meson_mx_sdhc_execute_tuning() to find the accurate value for data > transfer. > > If this doesn't work, maybe need to define a factor in dts. > > Fixes: e4bf1b0970ef ("mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host") > Signed-off-by: Ziyang Huang I have re-added Thorsten to see if he has some time to test this on his end. Kind regards Uffe > --- > Changes since v1: > Use Phase 90 instand of value 1 > > drivers/mmc/host/meson-mx-sdhc-mmc.c | 26 +++++--------------------- > 1 file changed, 5 insertions(+), 21 deletions(-) > > diff --git a/drivers/mmc/host/meson-mx-sdhc-mmc.c b/drivers/mmc/host/meson-mx-sdhc-mmc.c > index 97168cdfa8e9..29698fceb89c 100644 > --- a/drivers/mmc/host/meson-mx-sdhc-mmc.c > +++ b/drivers/mmc/host/meson-mx-sdhc-mmc.c > @@ -269,7 +269,7 @@ static int meson_mx_sdhc_enable_clks(struct mmc_host *mmc) > static int meson_mx_sdhc_set_clk(struct mmc_host *mmc, struct mmc_ios *ios) > { > struct meson_mx_sdhc_host *host = mmc_priv(mmc); > - u32 rx_clk_phase; > + u32 val, rx_clk_phase; > int ret; > > meson_mx_sdhc_disable_clks(mmc); > @@ -290,27 +290,11 @@ static int meson_mx_sdhc_set_clk(struct mmc_host *mmc, struct mmc_ios *ios) > mmc->actual_clock = clk_get_rate(host->sd_clk); > > /* > - * according to Amlogic the following latching points are > - * selected with empirical values, there is no (known) formula > - * to calculate these. > + * Phase 90 should work in most cases. For data transmission, > + * meson_mx_sdhc_execute_tuning() will find a accurate value > */ > - if (mmc->actual_clock > 100000000) { > - rx_clk_phase = 1; > - } else if (mmc->actual_clock > 45000000) { > - if (ios->signal_voltage == MMC_SIGNAL_VOLTAGE_330) > - rx_clk_phase = 15; > - else > - rx_clk_phase = 11; > - } else if (mmc->actual_clock >= 25000000) { > - rx_clk_phase = 15; > - } else if (mmc->actual_clock > 5000000) { > - rx_clk_phase = 23; > - } else if (mmc->actual_clock > 1000000) { > - rx_clk_phase = 55; > - } else { > - rx_clk_phase = 1061; > - } > - > + regmap_read(host->regmap, MESON_SDHC_CLKC, &val); > + rx_clk_phase = FIELD_GET(MESON_SDHC_CLKC_CLK_DIV, val) / 4; > regmap_update_bits(host->regmap, MESON_SDHC_CLK2, > MESON_SDHC_CLK2_RX_CLK_PHASE, > FIELD_PREP(MESON_SDHC_CLK2_RX_CLK_PHASE, > -- > 2.34.1 >