Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp2966117rwb; Mon, 7 Nov 2022 21:46:27 -0800 (PST) X-Google-Smtp-Source: AMsMyM622tVBDlKpO4uWbxN0T/fHBt8VUV8JGuRosVWye8bbN4+KeR9k/1zoLCrypKvP21W2BjOK X-Received: by 2002:a63:4b5f:0:b0:43c:428d:507c with SMTP id k31-20020a634b5f000000b0043c428d507cmr44668667pgl.607.1667886386844; Mon, 07 Nov 2022 21:46:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1667886386; cv=none; d=google.com; s=arc-20160816; b=W+biT3qWfr5kqv1/IF6Bq3e7c0pVgp7KTH6xbE+qduLrf9O9nR858fRbfc0xt3u2D6 nkgA19UbljIYmUafyDOgTQyNiCgGoMJxcdm+FdNKqmIA3GsgXtKWlso+a97RN87wWRDv ZURSvl74GP+6GUqQ5+kr0WVjMW6mZzIiaXRpkwebZyKOXgSFiP3MVvN3aFsd/4z7KmZA ad3NdcKtxG9BMVJjdCaBUjXszJGirBTJabLiRcy3WWYsekdnjwDnN4IL0drhkKPehyOg yr+oo1JZ1oD+zZH9dBaCofS9/oeUI/Ep/zrKfUjucmZdlodHBfsmAkl2ZcB/vTyykxgi zHlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:from :dkim-signature; bh=cJ4Kp4qtRSrvjN0VOHg/NMsbcM2L3wi4GzWp4+H7lqY=; b=g2NSQ4YTvL+T7VNwWl/yVUKcdq2vu3WXY7YbroJkl9MhMUgKydjnplRoKpfO/A3hqB GDZ/P63lv8cMHs5L1RWGPiWYwXFdWC2ro5X0Hyn4Yj72d+ucqnfk4f72NRhftxNpGEMd 1uzYxcaROU8c+Ii/7KwN7P2+zj9LpJvFSoAW6C2JRunLZliykuObW1adEfZ3v2ld7di4 DDbiEdw+LYyqQDb5G1T1wtxL7Y8ZHPRC/sakOw7C/6dG5Bmx5vwksruEkDC6elLBQ4Xj SPtH2kBxZvVlfgV6cJAUkcVi+SwOxD3bEokxWyKr7W2WN3yHFafG9TVbtP+LyCxHZYDx 7GGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=VRlK8dyz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u5-20020a170902b28500b00176b8830921si12225717plr.294.2022.11.07.21.46.15; Mon, 07 Nov 2022 21:46:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=VRlK8dyz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233443AbiKHE5u (ORCPT + 91 others); Mon, 7 Nov 2022 23:57:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233399AbiKHE5c (ORCPT ); Mon, 7 Nov 2022 23:57:32 -0500 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF4FF2E691; Mon, 7 Nov 2022 20:53:56 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id s12so11121949edd.5; Mon, 07 Nov 2022 20:53:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cJ4Kp4qtRSrvjN0VOHg/NMsbcM2L3wi4GzWp4+H7lqY=; b=VRlK8dyzw8ngJPEBSuKzwQwMbZE+SmKnbjXkreWs+SKjkaHFsrmGvYExBUU74ZTOty qVrfpmkis7/qm8rR2q+eZ+Fl9rx6YSEDB+UUpdz1ZJWXNsP/Vf8/2hhjHpKEKaX6PgAi jRquLzFBP5/9DPUKDXp2s66eOXIm9u9v8VZRZVDmsQ7ZN8688j7Lrvvstsx77lXQzEep rT2GF97Nw/xTStzEkAEsB/DJ+hSj2tyqvgSPh1Aehz9z9B8AefxIIa9NhQf2B6ggOC12 9/zRmw5I8BMIRap64rWDVS+baDYSuDP/WMU1kd7mLt3Jfa/asDEe4JsWRkK6P+cf9m23 OqJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cJ4Kp4qtRSrvjN0VOHg/NMsbcM2L3wi4GzWp4+H7lqY=; b=pxjelmSwrXntr3bRusOPt7CchC12iIZ+MItO5ZuYw1snisb2wYBxpxtsIerxZCetGB CL56ptXL1FH/86trGphlOytMgjy+/mW6LFSAS2GNuJHFA0962b4fFvmbbGwVuQvk+G4z ql4EkDkIEjmiyrnwOvCwO1holxOuuwRjV7S2qHWlh0mdGx1zSr+qv8Irx6cuk1n+RuIH +7lxpQLbpMNbKRHJSdYyUV1gEh66bdqwwXPekzia06B3OQi5XeuB80B0OB1Sq+rpNzQE Ko02AdWyO5GeJrFvkuD5eW0oFo6cZYZzRMXdGd990IhB+QMnKdkZ/Zkfc5v5Q4fnVsZg YENA== X-Gm-Message-State: ACrzQf3dPaiL9Qn7RhMCKHrOwrWrdNpwJ0hoQad6sOtGsbTuzmx5YlRf KDt1mbwkwXDJ9OrDzaL7LWI= X-Received: by 2002:a05:6402:14ca:b0:462:e375:a1f4 with SMTP id f10-20020a05640214ca00b00462e375a1f4mr54812108edx.344.1667883235303; Mon, 07 Nov 2022 20:53:55 -0800 (PST) Received: from hp-power-15.localdomain (mm-58-12-212-37.vitebsk.dynamic.pppoe.byfly.by. [37.212.12.58]) by smtp.gmail.com with ESMTPSA id p11-20020a05640210cb00b004637489cf08sm4994444edu.88.2022.11.07.20.53.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Nov 2022 20:53:54 -0800 (PST) From: Siarhei Volkau Cc: Siarhei Volkau , Paul Cercueil , Rob Herring , Krzysztof Kozlowski , Thomas Bogendoerfer , Ulf Hansson , linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org Subject: [PATCH 1/2] mmc: jz4740: Don't change parent clock rate for some SoCs Date: Tue, 8 Nov 2022 07:52:59 +0300 Message-Id: <20221108045300.2084671-2-lis8215@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20221108045300.2084671-1-lis8215@gmail.com> References: <20221108045300.2084671-1-lis8215@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some SoCs have one clock divider for all MMC units, thus changing one affects others as well. This leads to random hangs and memory corruptions, observed on the JZ4755 based device with two MMC slots used at the same time. List of SoCs affected includes: JZ4725b, JZ4755, JZ4760 and JZ4760b. However, the MMC driver doesn't distinguish JZ4760 and JZ4770 which shall remain its behavior. For the JZ4755 is sufficient to use JZ4725b's binding. JZ4750 is outside of the patch. The MMC core has its own clock divisor, rather coarse but suitable well, and it shall keep the role of tuning clock for the MMC host in that case. Signed-off-by: Siarhei Volkau --- drivers/mmc/host/jz4740_mmc.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c index dc2db9c18..d390ff31d 100644 --- a/drivers/mmc/host/jz4740_mmc.c +++ b/drivers/mmc/host/jz4740_mmc.c @@ -114,6 +114,7 @@ enum jz4740_mmc_version { JZ_MMC_JZ4740, JZ_MMC_JZ4725B, JZ_MMC_JZ4760, + JZ_MMC_JZ4770, JZ_MMC_JZ4780, JZ_MMC_X1000, }; @@ -887,7 +888,13 @@ static int jz4740_mmc_set_clock_rate(struct jz4740_mmc_host *host, int rate) int real_rate; jz4740_mmc_clock_disable(host); - clk_set_rate(host->clk, host->mmc->f_max); + + /* + * Changing rate on these SoCs affects other MMC units too. + * Make sure the rate is configured properly by the CGU driver. + */ + if (host->version != JZ_MMC_JZ4725B && host->version != JZ_MMC_JZ4760) + clk_set_rate(host->clk, host->mmc->f_max); real_rate = clk_get_rate(host->clk); @@ -992,6 +999,7 @@ static const struct of_device_id jz4740_mmc_of_match[] = { { .compatible = "ingenic,jz4740-mmc", .data = (void *) JZ_MMC_JZ4740 }, { .compatible = "ingenic,jz4725b-mmc", .data = (void *)JZ_MMC_JZ4725B }, { .compatible = "ingenic,jz4760-mmc", .data = (void *) JZ_MMC_JZ4760 }, + { .compatible = "ingenic,jz4770-mmc", .data = (void *) JZ_MMC_JZ4770 }, { .compatible = "ingenic,jz4775-mmc", .data = (void *) JZ_MMC_JZ4780 }, { .compatible = "ingenic,jz4780-mmc", .data = (void *) JZ_MMC_JZ4780 }, { .compatible = "ingenic,x1000-mmc", .data = (void *) JZ_MMC_X1000 }, -- 2.36.1