Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp3001997pxm; Mon, 28 Feb 2022 10:04:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJzPHtOa4Ew1+dXL78Lx/e5w1svLPTpYmje+N2dOyB2w4/B05j3HSoAmojKClR7CTRUSAeu0 X-Received: by 2002:a17:902:7b8d:b0:14b:8884:b4ad with SMTP id w13-20020a1709027b8d00b0014b8884b4admr21813660pll.120.1646071480655; Mon, 28 Feb 2022 10:04:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646071480; cv=none; d=google.com; s=arc-20160816; b=G+KEHG+DAgfN26U8FHDH7cxxw3WOeQqamzkOHwNsXZUwrenR3grgL7uD+WUjHR8du8 pE/YkkFHJAhcoO90cjGV0UQ3qENwB1fQEW6ENs8WiORlwslz0NA9eNbLqR7Mm8u7lIT7 Vs3M5RLJmar4n9WpoJc8cV7xtDSz1KE/Gis1CD/1XUMaO5n+juXo1s9UhW5Av4/ZGJeL IvXo7hX8EEEG8lYcKsY99qTRRkWbKMVfwK5kgWo7x9Gy0AxtLB5bJP+IwrnuUOWTsLIa 7iJtx41kWhrXqpF6jA9BKS7pg3C1u/AdJm/HruzkdFRZkp1kUbAhIajaguXFC1fD86kB vIKQ== 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=aj7ohy06sMocjpRr7VZziDX9Znc+y574ZQOuLLO9Ujc=; b=iElVA0UEAYuOpV63HeJrBts6KFBFn6NrgBql0UoJmLrQq8KJpWhwrf6fgdHFQBQlrW XGgnpLRwfN2CQtrGJm54dmq10wDFhjLmLralz1eDzSJ8DS5lC439rgzXrSPV3OFK2u1s G1cajR2R0nfsq5aicIouaYMFcdmw7EAHZzPJBMMiFAJs8HsLsukl1wc9MGj2q5qmNb19 DEEzfnRaKR99UtZi7TGABDr8SfWG+ROPWIbaqPtZtmj+j6iSObNLfxi/RWsAkx+gY3la GBCCLyihidUjKgG9CDEkPR2OowRELXxCEDQTnH0n2SmplQ/+gEMiQJjrDNGypr6HWkIa fp2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=w8xFoxch; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l15-20020a170902f68f00b0014ad5e51a03si11024796plg.564.2022.02.28.10.04.24; Mon, 28 Feb 2022 10:04:40 -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=pass header.i=@linaro.org header.s=google header.b=w8xFoxch; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237819AbiB1QOO (ORCPT + 99 others); Mon, 28 Feb 2022 11:14:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237817AbiB1QOM (ORCPT ); Mon, 28 Feb 2022 11:14:12 -0500 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCD94396AA for ; Mon, 28 Feb 2022 08:13:33 -0800 (PST) Received: by mail-lf1-x132.google.com with SMTP id g39so22165905lfv.10 for ; Mon, 28 Feb 2022 08:13:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aj7ohy06sMocjpRr7VZziDX9Znc+y574ZQOuLLO9Ujc=; b=w8xFoxchmHuUDWSWIr1m6mGNR6QoP/Fkox6tNxODLRHvHOdqf9pAqIoK8/XrJ7sHc9 XM5W5YdyH4w05cP766eT945ueHGFLySs0dT2QHLWngzOsr/hbmx9tevQJyU+XTL57HdT ajGIIzFSBnly4VtG8mQC7Z3poAmBiopPqJ6ULBOqT4Ik6srf4xCR5L1K+EtQM5QTjWVQ L47zDYUutuH2hzqZ7NahI0n1+nRJpkDhW1NRYqV4TegLZtdeU+mfG96bvfWZ01lMEOk3 sQFHLwC/tMagzFhuDQiAfKao32H7O9/xPui6f+K4/ahLSDIiX8sv8BUDtZekvYNthp11 e3mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aj7ohy06sMocjpRr7VZziDX9Znc+y574ZQOuLLO9Ujc=; b=r1BTE7nQOAC01nZgtHkNDFN0N7XCKdU88LVLgf29XdXVLVv50HE5jW1lgX1RWjKzHy W0V+4rZNrZZ5Sc+9EiGaiCy5i8h6M9CbvaBhaZN6ZdZS27xeCdJj9jadG1CeqTFPdXOU ry1Lu0Q4yaoD3++n42+2oAd6cBh0Jz3eFpsHQEC+xGpzyDX94lngEoB+pQi0Fmqtnxw7 t2TxT0yUjaiAD5Niu3CD2rMM32C7udGszmgIOIHmFWFGTKm34e0bi8iuahjqa8KlqucY AcZK7GenHKF+yeotAgMKid+JIJulD3gnkcasPeydoDUoSpPIlK42x/+1xkmDN5K1r4VI gNpg== X-Gm-Message-State: AOAM530PG24cxMMoM4sG8+WXhMbVR5Zh//vNoh845/6qbadHtULJ5Ek/ 5Pgg/lDgBKzDxXj2KWIkpX4lT6fc+EEuKwPhYEPQnw== X-Received: by 2002:a05:6512:3604:b0:443:5d4b:3760 with SMTP id f4-20020a056512360400b004435d4b3760mr13142342lfs.358.1646064811622; Mon, 28 Feb 2022 08:13:31 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Ulf Hansson Date: Mon, 28 Feb 2022 17:12:55 +0100 Message-ID: Subject: Re: [PATCH] mmc: rtsx: add 74 Clocks in power on flow To: Ricky WU Cc: "gregkh@linuxfoundation.org" , "kai.heng.feng@canonical.com" , "tommyhebb@gmail.com" , "linux-mmc@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 22 Feb 2022 at 08:28, Ricky WU wrote: > > After 1ms stabilizing the voltage time > add "Host provides at least 74 Clocks > before issuing first command" that is > spec definition > > Signed-off-by: Ricky Wu > --- > drivers/mmc/host/rtsx_pci_sdmmc.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c b/drivers/mmc/host/rtsx_pci_sdmmc.c > index 2a3f14afe9f8..e016d720e453 100644 > --- a/drivers/mmc/host/rtsx_pci_sdmmc.c > +++ b/drivers/mmc/host/rtsx_pci_sdmmc.c > @@ -940,10 +940,17 @@ static int sd_power_on(struct realtek_pci_sdmmc *host) > if (err < 0) > return err; > > + mdelay(1); > + > err = rtsx_pci_write_register(pcr, CARD_OE, SD_OUTPUT_EN, SD_OUTPUT_EN); > if (err < 0) > return err; > > + /* send init 74 clocks */ > + rtsx_pci_write_register(pcr, SD_BUS_STAT, SD_CLK_TOGGLE_EN, SD_CLK_TOGGLE_EN); > + mdelay(5); > + rtsx_pci_write_register(pcr, SD_BUS_STAT, SD_CLK_TOGGLE_EN, 0); > + > if (PCI_PID(pcr) == PID_5261) { > /* > * If test mode is set switch to SD Express mandatorily, As you probably are aware of, the mmc core uses three power states (MMC_POWER_ON, MMC_POWER_UP and MMC_POWER_OFF) to manage the initialization, while it invokes the ->set_ios() callback for the mmc host driver. During these steps the core also tries to manage the different delays that are needed according to the eMMC/SD specs. You may have a look at mmc_power_up() in drivers/mmc/core/core.c. In the rtsx case, MMC_POWER_ON and MMC_POWER_UP are treated as one single step. Moreover, it has turned out that some mmc HWs are actually controlling these delays during the initialization themselves, which makes the delays in the core superfluous. Therefore we have made the delays configurable for host drivers. For DT based platforms, we have the DT property "post-power-on-delay-ms" and for others, it's perfectly fine to update host->power_delay_ms before calling mmc_add_host(). Would it be possible to take advantage of the above "features" from the core, to avoid hard coded and superfluous delays? Kind regards Uffe