Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1352940pxa; Thu, 13 Aug 2020 06:58:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzUBs8kAJ/eNtoNkNwZ721PGefhq/pjfH9fOTKyqPN4I5IPPJj4aE1lIQBaBPVMwB/UvB2Z X-Received: by 2002:a17:906:a3d6:: with SMTP id ca22mr4822733ejb.78.1597327088143; Thu, 13 Aug 2020 06:58:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597327088; cv=none; d=google.com; s=arc-20160816; b=XWf9z/YdOROTf49d0wU/FYQSKBYCqC3PcZFOfJYHshAC9v1PmbVySLzXI4d/47SPof KKAWQ6PvPiyDru7CsvLSZi9xn2dj3L6dvS5XPP/AZNAewc4mgiHaiImql9fIMtkOEofs JAsO+xksUtVhtHXTdJzsGKupR2QORb4POjtmLJAGCQBrIVgElySihcIlna6VI9Fx5XOl 6/AoDYAA3QwFFQhvK+nUzixkqIG/Ypc5gx71UjaNvyCsDKdSD1CFILGfiH7p0mViqIgp ZzLjeALPfbHxJiD7snuLk/8VC4equFc1tyKChZhtErpYTJA5/Wj6Czn0aiPu0sZrqkcS XB2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=ZL42NDAwRyqFSgHd9+LPNZsn853QbpqMscEZvhiYWzM=; b=ZuNLxLTzxKeJzfRUm21Va2lmgkGtiSubsZ2zDKc8fTcRXap1Xek5PH8c6JLjPF4JLV 42vRGFg+ZHemSOqp5NKo++1WrZfZlzQi1/8a7Ncc5sBH5dSyoP52D/rZYiINqfRNnCdO VhhSGTWy3H4+9YnM6FqHdzjE74xLbpix4L/TlF7QUiD1wA+8vZeUVesVudcBKGUR8OAH ju2bjIZarVf23RCzxLPuZKee8uft8hgCL5Q3WwuhQCbFgMrCPA0hKjIyJfU7Krd3Rrpp EPUxRNMgd0eDWEKwhK4Mg4aK3evMmGZCkEQH3dl+cFRqag3CFtu1SKYYihiUCTOAFZZn W3EQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=DZc9ySxO; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bx11si2391157edb.300.2020.08.13.06.57.43; Thu, 13 Aug 2020 06:58:08 -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=@gmail.com header.s=20161025 header.b=DZc9ySxO; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726567AbgHMN5K (ORCPT + 99 others); Thu, 13 Aug 2020 09:57:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726053AbgHMN5J (ORCPT ); Thu, 13 Aug 2020 09:57:09 -0400 Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 459FFC061757; Thu, 13 Aug 2020 06:57:09 -0700 (PDT) Received: by mail-wm1-x342.google.com with SMTP id 184so5148260wmb.0; Thu, 13 Aug 2020 06:57:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=ZL42NDAwRyqFSgHd9+LPNZsn853QbpqMscEZvhiYWzM=; b=DZc9ySxOXmzqhLq8wmbQNIP8qC3GDOlMAZXwH7T9qCDObVYdxITsnlnU7bMMNL0I2v 8lwS7+qRhmzNhfUwwC0kNFVA8VZtzhOKjDROTB3vtPBcNcTcYjxuoURPglFJn45b2mgn dnUGwPgc6LU4AEVPxf/jffEers4VwtF2ItE5gO9UUBy6QeE3kRF9mgP8QaLA6zi5aNj8 qbn1Q9yNmgEcfilN2hl4qfiHdQKqYejDnn/EhxGdOJL6+bOTWQiKbknzYBcjQnLzS6Vp Q1q+E+nufJFqn8GO5egocKKELypeNx1wr8X2QMpEra5OR1Ndc0rUl/zoTuqIXLLdF5fN V51g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ZL42NDAwRyqFSgHd9+LPNZsn853QbpqMscEZvhiYWzM=; b=gSrlB0FcPa1fsKpSv/CD+cuX/ebAK6DdP946YBlkY0WpjxML6rDS3UKFBKhvSsC98R cSebHRYpjjFbSNOnakJ54Xl2NUz74ZnHFYEEv4dl/sLHDh4uMP5UyunLAW4V1Fm/zENb gd+u/xg2h6pBSdh/dDR2UctDnv415FCAri9k1lKfFmzx/iG8uGYdh3B6GIZMWi+wN87w VQQ3NtF1C647zoChBiRuLK3XtbL9gCyzLgoIurS4z2pGTw9THuK9giSYqULXCjvrAHzB +dTAJ3G0YYgqNhYfnJC0UZwQ8FzBohS3WlLULSwSgtl8gBbCWHSOxH8PyXBMurKVGvzj VO5A== X-Gm-Message-State: AOAM5335jSLV/EhsHbyoYcdhAMjHA4qU4tT/hcRZUoyG/ELD2xQHY0F6 lDK9QYrIh6EKRquhFp1mSg2apLn2QRs= X-Received: by 2002:a1c:1b93:: with SMTP id b141mr4598606wmb.150.1597327027636; Thu, 13 Aug 2020 06:57:07 -0700 (PDT) Received: from ziggy.stardust ([213.195.117.232]) by smtp.gmail.com with ESMTPSA id n11sm5016409wmi.15.2020.08.13.06.57.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Aug 2020 06:57:06 -0700 (PDT) Subject: Re: [RESEND,v4,3/3] mmc: mediatek: add optional module reset property To: Wenbin Mei , Ulf Hansson , Rob Herring Cc: Chaotian Jing , Philipp Zabel , linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, srv_heupstream@mediatek.com, stable@vger.kernel.org References: <20200813093811.28606-1-wenbin.mei@mediatek.com> <20200813093811.28606-4-wenbin.mei@mediatek.com> From: Matthias Brugger Message-ID: <7337a174-169d-2dd1-ed91-f05291d4f3a6@gmail.com> Date: Thu, 13 Aug 2020 15:57:05 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <20200813093811.28606-4-wenbin.mei@mediatek.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13/08/2020 11:38, Wenbin Mei wrote: > This patch fixs eMMC-Access on mt7622/Bpi-64. > Before we got these Errors on mounting eMMC ion R64: > [ 48.664925] blk_update_request: I/O error, dev mmcblk0, sector 204800 op 0x1:(WRITE) > flags 0x800 phys_seg 1 prio class 0 > [ 48.676019] Buffer I/O error on dev mmcblk0p1, logical block 0, lost sync page write > > This patch adds a optional reset management for msdc. > Sometimes the bootloader does not bring msdc register > to default state, so need reset the msdc controller. > > Cc: # v5.4+ > Fixes: 966580ad236e ("mmc: mediatek: add support for MT7622 SoC") > Signed-off-by: Wenbin Mei > Tested-by: Frank Wunderlich I think you missed to add Philipp Zabels Reviewed-by tag. Regards, Matthias > --- > drivers/mmc/host/mtk-sd.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c > index 39e7fc54c438..fc97d5bf3a20 100644 > --- a/drivers/mmc/host/mtk-sd.c > +++ b/drivers/mmc/host/mtk-sd.c > @@ -22,6 +22,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -434,6 +435,7 @@ struct msdc_host { > struct msdc_save_para save_para; /* used when gate HCLK */ > struct msdc_tune_para def_tune_para; /* default tune setting */ > struct msdc_tune_para saved_tune_para; /* tune result of CMD21/CMD19 */ > + struct reset_control *reset; > }; > > static const struct mtk_mmc_compatible mt8135_compat = { > @@ -1516,6 +1518,12 @@ static void msdc_init_hw(struct msdc_host *host) > u32 val; > u32 tune_reg = host->dev_comp->pad_tune_reg; > > + if (host->reset) { > + reset_control_assert(host->reset); > + usleep_range(10, 50); > + reset_control_deassert(host->reset); > + } > + > /* Configure to MMC/SD mode, clock free running */ > sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_MODE | MSDC_CFG_CKPDN); > > @@ -2273,6 +2281,11 @@ static int msdc_drv_probe(struct platform_device *pdev) > if (IS_ERR(host->src_clk_cg)) > host->src_clk_cg = NULL; > > + host->reset = devm_reset_control_get_optional_exclusive(&pdev->dev, > + "hrst"); > + if (IS_ERR(host->reset)) > + return PTR_ERR(host->reset); > + > host->irq = platform_get_irq(pdev, 0); > if (host->irq < 0) { > ret = -EINVAL; >