Message ID | 20230215113249.47727-1-william.qiu@starfivetech.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp142914wrn; Wed, 15 Feb 2023 03:46:11 -0800 (PST) X-Google-Smtp-Source: AK7set+UKkmO6JA4GU1Ewjs9+WidRZy1dZGcJdZsRqmlSbuDeQD3hoetyWMA51FFdk2obmqwgYNw X-Received: by 2002:a17:906:7cb:b0:88d:33fe:3308 with SMTP id m11-20020a17090607cb00b0088d33fe3308mr2142073ejc.9.1676461570994; Wed, 15 Feb 2023 03:46:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676461570; cv=none; d=google.com; s=arc-20160816; b=fumh6SdtRHR1x0BHWWnvglX1KYzWJyNTNt2C0+4RNrNVuDFbLhvpD4YcSIu/I5m6Jx IWymlGwvQOQUL+zgyioVff+JJE2AZ7+uvgr0mOT9lXmHNlRXzrQeN/zcFuXRTprJ8f6n pupSnkkN9LnsP1Djam74qhBhqqp8qrAqpFdkTXVSrlQAk4HQF3MrCtLltDVoEw/j09aI 6tag+Pq0JbGbxgBxSfDDg8kCbuLr9L9c2f/V4HcSh9P5JrMRWWjhYeDWKy494T9XGWF4 MwMkJBvBD0aX2XNiCIMiAl4dYjULUJgQo5jjqUnc7tQ4Tbv1+0YCuT1hmoSWv7hEH9yh QRNg== 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 :message-id:date:subject:cc:to:from; bh=pfp5Taamuc47zqWIm2xCjPkb7aiyC9cXBTe0k9gILhI=; b=NQJfsseOkyyYF/DCO+CPFuXIlEKvsRJdLd95cNDF93ITntEAIzmp1pArS54cTjWK1Z 0YxFtxNVJ+Y7KfEB9zJIsAuT0t+hl339lHV7L+tZr1tp/511GamZqHOiz75chm1pUag1 5Mi/aEGO8pRohNhjy7nGm3zMhZqT+sKmgps/KZCKlNEBHtHXzfhocM202ug2S6jQLVlU 1tgNZwcIfg/FknRpopWz6S+62mAmCXUJYzl21Pxmpk0uzHLZwADAqBIH1HxirqYqQg63 vLXa3tstJv6nC7Vlc1eshVvoTANJTb5XTtVV5y79Vm4tVsS7FY4m2L80tzglSupqAOnC oauA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z14-20020a17090674ce00b008b1357271c0si4479792ejl.863.2023.02.15.03.45.47; Wed, 15 Feb 2023 03:46:10 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233650AbjBOLdL convert rfc822-to-8bit (ORCPT <rfc822;tebrre53rla2o@gmail.com> + 99 others); Wed, 15 Feb 2023 06:33:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35744 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233526AbjBOLc6 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 15 Feb 2023 06:32:58 -0500 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DF11CA3B; Wed, 15 Feb 2023 03:32:53 -0800 (PST) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id 30CF924E173; Wed, 15 Feb 2023 19:32:51 +0800 (CST) Received: from EXMBX068.cuchost.com (172.16.6.68) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 15 Feb 2023 19:32:51 +0800 Received: from williamqiu-virtual-machine.starfivetech.com (171.223.208.138) by EXMBX068.cuchost.com (172.16.6.68) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 15 Feb 2023 19:32:50 +0800 From: William Qiu <william.qiu@starfivetech.com> To: <linux-riscv@lists.infradead.org>, <devicetree@vger.kernel.org>, <linux-mmc@vger.kernel.org> CC: Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Jaehoon Chung <jh80.chung@samsung.com>, Ulf Hansson <ulf.hansson@linaro.org>, William Qiu <william.qiu@starfivetech.com>, <linux-kernel@vger.kernel.org> Subject: [PATCH v4 0/4] StarFive's SDIO/eMMC driver support Date: Wed, 15 Feb 2023 19:32:45 +0800 Message-ID: <20230215113249.47727-1-william.qiu@starfivetech.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [171.223.208.138] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX068.cuchost.com (172.16.6.68) X-YovoleRuleAgent: yovoleflag Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,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 Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756797389843541058?= X-GMAIL-MSGID: =?utf-8?q?1757897368239738459?= |
Series | StarFive's SDIO/eMMC driver support | |
Message
William Qiu
Feb. 15, 2023, 11:32 a.m. UTC
Hi, This patchset adds initial rudimentary support for the StarFive designware mobile storage host controller driver. And this driver will be used in StarFive's VisionFive 2 board. The main purpose of adding this driver is to accommodate the ultra-high speed mode of eMMC. The last patch should be applied after the patchset [1]: [1] https://lore.kernel.org/all/20221220011247.35560-1-hal.feng@starfivetech.com/ Changes v3->v4: - Added documentation to describe StarFive System Controller Registers. - Added aon_syscon and stg_syscon node. - Fixed some checkpatch errors/warnings. Changes v2->v3: - Wraped commit message according to Linux coding style. - Rephrased the description of the patches. - Changed the description of syscon regsiter. - Dropped redundant properties. Changes v1->v2: - Renamed the dt-binding 'starfive,jh7110-sdio.yaml' to 'starfive,jh7110-mmc.yaml'. - Changed the type of 'starfive,syscon' and modify its description. - Deleted unused head files like '#include <linux/gpio.h>'. - Added comment for the 'rise_point' and 'fall_point'. - Changed the API 'num_caps' to 'common_caps'. - Changed the node name 'sys_syscon' to 'syscon'. - Changed the node name 'sdio' to 'mmc'. The patch series is based on v6.1. William Qiu (4): dt-bindings: mmc: Add StarFive MMC module mmc: starfive: Add sdio/emmc driver support riscv: dts: starfive: Add mmc node dt-bindings: syscon: Add StarFive syscon doc .../bindings/mmc/starfive,jh7110-mmc.yaml | 77 ++++++++ .../bindings/soc/starfive/jh7110-syscon.yaml | 51 +++++ MAINTAINERS | 11 ++ .../jh7110-starfive-visionfive-2.dtsi | 23 +++ arch/riscv/boot/dts/starfive/jh7110.dtsi | 47 +++++ drivers/mmc/host/Kconfig | 10 + drivers/mmc/host/Makefile | 1 + drivers/mmc/host/dw_mmc-starfive.c | 186 ++++++++++++++++++ 8 files changed, 406 insertions(+) create mode 100644 Documentation/devicetree/bindings/mmc/starfive,jh7110-mmc.yaml create mode 100644 Documentation/devicetree/bindings/soc/starfive/jh7110-syscon.yaml create mode 100644 drivers/mmc/host/dw_mmc-starfive.c -- 2.34.1
Comments
On Wed, 15 Feb 2023 at 12:32, William Qiu <william.qiu@starfivetech.com> wrote: > > Hi, > > This patchset adds initial rudimentary support for the StarFive > designware mobile storage host controller driver. And this driver will > be used in StarFive's VisionFive 2 board. The main purpose of adding > this driver is to accommodate the ultra-high speed mode of eMMC. > > The last patch should be applied after the patchset [1]: > [1] https://lore.kernel.org/all/20221220011247.35560-1-hal.feng@starfivetech.com/ > > Changes v3->v4: > - Added documentation to describe StarFive System Controller Registers. > - Added aon_syscon and stg_syscon node. > - Fixed some checkpatch errors/warnings. > > Changes v2->v3: > - Wraped commit message according to Linux coding style. > - Rephrased the description of the patches. > - Changed the description of syscon regsiter. > - Dropped redundant properties. > > Changes v1->v2: > - Renamed the dt-binding 'starfive,jh7110-sdio.yaml' to 'starfive,jh7110-mmc.yaml'. > - Changed the type of 'starfive,syscon' and modify its description. > - Deleted unused head files like '#include <linux/gpio.h>'. > - Added comment for the 'rise_point' and 'fall_point'. > - Changed the API 'num_caps' to 'common_caps'. > - Changed the node name 'sys_syscon' to 'syscon'. > - Changed the node name 'sdio' to 'mmc'. > > The patch series is based on v6.1. > > William Qiu (4): > dt-bindings: mmc: Add StarFive MMC module > mmc: starfive: Add sdio/emmc driver support > riscv: dts: starfive: Add mmc node > dt-bindings: syscon: Add StarFive syscon doc > > .../bindings/mmc/starfive,jh7110-mmc.yaml | 77 ++++++++ > .../bindings/soc/starfive/jh7110-syscon.yaml | 51 +++++ > MAINTAINERS | 11 ++ > .../jh7110-starfive-visionfive-2.dtsi | 23 +++ > arch/riscv/boot/dts/starfive/jh7110.dtsi | 47 +++++ > drivers/mmc/host/Kconfig | 10 + > drivers/mmc/host/Makefile | 1 + > drivers/mmc/host/dw_mmc-starfive.c | 186 ++++++++++++++++++ > 8 files changed, 406 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mmc/starfive,jh7110-mmc.yaml > create mode 100644 Documentation/devicetree/bindings/soc/starfive/jh7110-syscon.yaml > create mode 100644 drivers/mmc/host/dw_mmc-starfive.c > I have dropped the v3 patches and applied patch1 and patch2 from the v4 series instead, for my next branch, thanks! Kind regards Uffe
On 2023/2/15 20:37, Ulf Hansson wrote: > On Wed, 15 Feb 2023 at 12:32, William Qiu <william.qiu@starfivetech.com> wrote: >> >> Hi, >> >> This patchset adds initial rudimentary support for the StarFive >> designware mobile storage host controller driver. And this driver will >> be used in StarFive's VisionFive 2 board. The main purpose of adding >> this driver is to accommodate the ultra-high speed mode of eMMC. >> >> The last patch should be applied after the patchset [1]: >> [1] https://lore.kernel.org/all/20221220011247.35560-1-hal.feng@starfivetech.com/ >> >> Changes v3->v4: >> - Added documentation to describe StarFive System Controller Registers. >> - Added aon_syscon and stg_syscon node. >> - Fixed some checkpatch errors/warnings. >> >> Changes v2->v3: >> - Wraped commit message according to Linux coding style. >> - Rephrased the description of the patches. >> - Changed the description of syscon regsiter. >> - Dropped redundant properties. >> >> Changes v1->v2: >> - Renamed the dt-binding 'starfive,jh7110-sdio.yaml' to 'starfive,jh7110-mmc.yaml'. >> - Changed the type of 'starfive,syscon' and modify its description. >> - Deleted unused head files like '#include <linux/gpio.h>'. >> - Added comment for the 'rise_point' and 'fall_point'. >> - Changed the API 'num_caps' to 'common_caps'. >> - Changed the node name 'sys_syscon' to 'syscon'. >> - Changed the node name 'sdio' to 'mmc'. >> >> The patch series is based on v6.1. >> >> William Qiu (4): >> dt-bindings: mmc: Add StarFive MMC module >> mmc: starfive: Add sdio/emmc driver support >> riscv: dts: starfive: Add mmc node >> dt-bindings: syscon: Add StarFive syscon doc >> >> .../bindings/mmc/starfive,jh7110-mmc.yaml | 77 ++++++++ >> .../bindings/soc/starfive/jh7110-syscon.yaml | 51 +++++ >> MAINTAINERS | 11 ++ >> .../jh7110-starfive-visionfive-2.dtsi | 23 +++ >> arch/riscv/boot/dts/starfive/jh7110.dtsi | 47 +++++ >> drivers/mmc/host/Kconfig | 10 + >> drivers/mmc/host/Makefile | 1 + >> drivers/mmc/host/dw_mmc-starfive.c | 186 ++++++++++++++++++ >> 8 files changed, 406 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/mmc/starfive,jh7110-mmc.yaml >> create mode 100644 Documentation/devicetree/bindings/soc/starfive/jh7110-syscon.yaml >> create mode 100644 drivers/mmc/host/dw_mmc-starfive.c >> > > I have dropped the v3 patches and applied patch1 and patch2 from the > v4 series instead, for my next branch, thanks! > > Kind regards > Uffe Hi Uffe, Sorry to bother you.But I found a bug that in drivers/mmc/host/dw_mmc-starfive.c: 47 static int dw_mci_starfive_execute_tuning(struct dw_mci_slot *slot, 48 u32 opcode) 49 { 50 static const int grade = MAX_DELAY_CHAIN; 51 struct dw_mci *host = slot->host; 52 struct starfive_priv *priv = host->priv; 53 int rise_point = -1, fall_point = -1; 54 int err, prev_err; 55 int i; 56 bool found = 0; 57 u32 regval; 58 59 /* 60 * Use grade as the max delay chain, and use the rise_point and 61 * fall_point to ensure the best sampling point of a data input 62 * signals. 63 */ 64 for (i = 0; i < grade; i++) { 65 regval = i << priv->syscon_shift; 66 err = regmap_update_bits(priv->reg_syscon, priv->syscon_offset, 67 priv->syscon_mask, regval); 68 if (err) 69 return err; 70 mci_writel(host, RINTSTS, ALL_INT_CLR); 71 72 err = mmc_send_tuning(slot->mmc, opcode, NULL); 73 if (!err) 74 found = 1; 75 76 if (i > 0) { --> 77 if (err && !prev_err) prev_err was never initialized to zero. So I'm here to ask for your suggestion, should I send a new version to fix it or send you a patch with a fixes tag? Best regards William
On Mon, 27 Feb 2023 at 08:47, William Qiu <william.qiu@starfivetech.com> wrote: > > > > On 2023/2/15 20:37, Ulf Hansson wrote: > > On Wed, 15 Feb 2023 at 12:32, William Qiu <william.qiu@starfivetech.com> wrote: > >> > >> Hi, > >> > >> This patchset adds initial rudimentary support for the StarFive > >> designware mobile storage host controller driver. And this driver will > >> be used in StarFive's VisionFive 2 board. The main purpose of adding > >> this driver is to accommodate the ultra-high speed mode of eMMC. > >> > >> The last patch should be applied after the patchset [1]: > >> [1] https://lore.kernel.org/all/20221220011247.35560-1-hal.feng@starfivetech.com/ > >> > >> Changes v3->v4: > >> - Added documentation to describe StarFive System Controller Registers. > >> - Added aon_syscon and stg_syscon node. > >> - Fixed some checkpatch errors/warnings. > >> > >> Changes v2->v3: > >> - Wraped commit message according to Linux coding style. > >> - Rephrased the description of the patches. > >> - Changed the description of syscon regsiter. > >> - Dropped redundant properties. > >> > >> Changes v1->v2: > >> - Renamed the dt-binding 'starfive,jh7110-sdio.yaml' to 'starfive,jh7110-mmc.yaml'. > >> - Changed the type of 'starfive,syscon' and modify its description. > >> - Deleted unused head files like '#include <linux/gpio.h>'. > >> - Added comment for the 'rise_point' and 'fall_point'. > >> - Changed the API 'num_caps' to 'common_caps'. > >> - Changed the node name 'sys_syscon' to 'syscon'. > >> - Changed the node name 'sdio' to 'mmc'. > >> > >> The patch series is based on v6.1. > >> > >> William Qiu (4): > >> dt-bindings: mmc: Add StarFive MMC module > >> mmc: starfive: Add sdio/emmc driver support > >> riscv: dts: starfive: Add mmc node > >> dt-bindings: syscon: Add StarFive syscon doc > >> > >> .../bindings/mmc/starfive,jh7110-mmc.yaml | 77 ++++++++ > >> .../bindings/soc/starfive/jh7110-syscon.yaml | 51 +++++ > >> MAINTAINERS | 11 ++ > >> .../jh7110-starfive-visionfive-2.dtsi | 23 +++ > >> arch/riscv/boot/dts/starfive/jh7110.dtsi | 47 +++++ > >> drivers/mmc/host/Kconfig | 10 + > >> drivers/mmc/host/Makefile | 1 + > >> drivers/mmc/host/dw_mmc-starfive.c | 186 ++++++++++++++++++ > >> 8 files changed, 406 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/mmc/starfive,jh7110-mmc.yaml > >> create mode 100644 Documentation/devicetree/bindings/soc/starfive/jh7110-syscon.yaml > >> create mode 100644 drivers/mmc/host/dw_mmc-starfive.c > >> > > > > I have dropped the v3 patches and applied patch1 and patch2 from the > > v4 series instead, for my next branch, thanks! > > > > Kind regards > > Uffe > > Hi Uffe, > > Sorry to bother you.But I found a bug that in drivers/mmc/host/dw_mmc-starfive.c: > > 47 static int dw_mci_starfive_execute_tuning(struct dw_mci_slot *slot, > 48 u32 opcode) > 49 { > 50 static const int grade = MAX_DELAY_CHAIN; > 51 struct dw_mci *host = slot->host; > 52 struct starfive_priv *priv = host->priv; > 53 int rise_point = -1, fall_point = -1; > 54 int err, prev_err; > 55 int i; > 56 bool found = 0; > 57 u32 regval; > 58 > 59 /* > 60 * Use grade as the max delay chain, and use the rise_point and > 61 * fall_point to ensure the best sampling point of a data input > 62 * signals. > 63 */ > 64 for (i = 0; i < grade; i++) { > 65 regval = i << priv->syscon_shift; > 66 err = regmap_update_bits(priv->reg_syscon, priv->syscon_offset, > 67 priv->syscon_mask, regval); > 68 if (err) > 69 return err; > 70 mci_writel(host, RINTSTS, ALL_INT_CLR); > 71 > 72 err = mmc_send_tuning(slot->mmc, opcode, NULL); > 73 if (!err) > 74 found = 1; > 75 > 76 if (i > 0) { > --> 77 if (err && !prev_err) > > prev_err was never initialized to zero. > > So I'm here to ask for your suggestion, should I send a new version > to fix it or send you a patch with a fixes tag? Please send a new incremental patch on top. I will queue it up as a fix for v6.3-rc[n]. Kind regards Uffe
On 2023/2/27 22:53, Ulf Hansson wrote: > On Mon, 27 Feb 2023 at 08:47, William Qiu <william.qiu@starfivetech.com> wrote: >> >> >> >> On 2023/2/15 20:37, Ulf Hansson wrote: >> > On Wed, 15 Feb 2023 at 12:32, William Qiu <william.qiu@starfivetech.com> wrote: >> >> >> >> Hi, >> >> >> >> This patchset adds initial rudimentary support for the StarFive >> >> designware mobile storage host controller driver. And this driver will >> >> be used in StarFive's VisionFive 2 board. The main purpose of adding >> >> this driver is to accommodate the ultra-high speed mode of eMMC. >> >> >> >> The last patch should be applied after the patchset [1]: >> >> [1] https://lore.kernel.org/all/20221220011247.35560-1-hal.feng@starfivetech.com/ >> >> >> >> Changes v3->v4: >> >> - Added documentation to describe StarFive System Controller Registers. >> >> - Added aon_syscon and stg_syscon node. >> >> - Fixed some checkpatch errors/warnings. >> >> >> >> Changes v2->v3: >> >> - Wraped commit message according to Linux coding style. >> >> - Rephrased the description of the patches. >> >> - Changed the description of syscon regsiter. >> >> - Dropped redundant properties. >> >> >> >> Changes v1->v2: >> >> - Renamed the dt-binding 'starfive,jh7110-sdio.yaml' to 'starfive,jh7110-mmc.yaml'. >> >> - Changed the type of 'starfive,syscon' and modify its description. >> >> - Deleted unused head files like '#include <linux/gpio.h>'. >> >> - Added comment for the 'rise_point' and 'fall_point'. >> >> - Changed the API 'num_caps' to 'common_caps'. >> >> - Changed the node name 'sys_syscon' to 'syscon'. >> >> - Changed the node name 'sdio' to 'mmc'. >> >> >> >> The patch series is based on v6.1. >> >> >> >> William Qiu (4): >> >> dt-bindings: mmc: Add StarFive MMC module >> >> mmc: starfive: Add sdio/emmc driver support >> >> riscv: dts: starfive: Add mmc node >> >> dt-bindings: syscon: Add StarFive syscon doc >> >> >> >> .../bindings/mmc/starfive,jh7110-mmc.yaml | 77 ++++++++ >> >> .../bindings/soc/starfive/jh7110-syscon.yaml | 51 +++++ >> >> MAINTAINERS | 11 ++ >> >> .../jh7110-starfive-visionfive-2.dtsi | 23 +++ >> >> arch/riscv/boot/dts/starfive/jh7110.dtsi | 47 +++++ >> >> drivers/mmc/host/Kconfig | 10 + >> >> drivers/mmc/host/Makefile | 1 + >> >> drivers/mmc/host/dw_mmc-starfive.c | 186 ++++++++++++++++++ >> >> 8 files changed, 406 insertions(+) >> >> create mode 100644 Documentation/devicetree/bindings/mmc/starfive,jh7110-mmc.yaml >> >> create mode 100644 Documentation/devicetree/bindings/soc/starfive/jh7110-syscon.yaml >> >> create mode 100644 drivers/mmc/host/dw_mmc-starfive.c >> >> >> > >> > I have dropped the v3 patches and applied patch1 and patch2 from the >> > v4 series instead, for my next branch, thanks! >> > >> > Kind regards >> > Uffe >> >> Hi Uffe, >> >> Sorry to bother you.But I found a bug that in drivers/mmc/host/dw_mmc-starfive.c: >> >> 47 static int dw_mci_starfive_execute_tuning(struct dw_mci_slot *slot, >> 48 u32 opcode) >> 49 { >> 50 static const int grade = MAX_DELAY_CHAIN; >> 51 struct dw_mci *host = slot->host; >> 52 struct starfive_priv *priv = host->priv; >> 53 int rise_point = -1, fall_point = -1; >> 54 int err, prev_err; >> 55 int i; >> 56 bool found = 0; >> 57 u32 regval; >> 58 >> 59 /* >> 60 * Use grade as the max delay chain, and use the rise_point and >> 61 * fall_point to ensure the best sampling point of a data input >> 62 * signals. >> 63 */ >> 64 for (i = 0; i < grade; i++) { >> 65 regval = i << priv->syscon_shift; >> 66 err = regmap_update_bits(priv->reg_syscon, priv->syscon_offset, >> 67 priv->syscon_mask, regval); >> 68 if (err) >> 69 return err; >> 70 mci_writel(host, RINTSTS, ALL_INT_CLR); >> 71 >> 72 err = mmc_send_tuning(slot->mmc, opcode, NULL); >> 73 if (!err) >> 74 found = 1; >> 75 >> 76 if (i > 0) { >> --> 77 if (err && !prev_err) >> >> prev_err was never initialized to zero. >> >> So I'm here to ask for your suggestion, should I send a new version >> to fix it or send you a patch with a fixes tag? > > Please send a new incremental patch on top. I will queue it up as a > fix for v6.3-rc[n]. > > Kind regards > Uffe Fine, I'll do it in my next version. Thanks for your apply. Best regards William