Received: by 10.192.165.148 with SMTP id m20csp1524074imm; Thu, 3 May 2018 00:25:55 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrfeefAh4SGVdTRA2VIAG1uhh+/38Ptmqsy71JNDmsOk+OTiLwviLX6KW3Dt4WLJ28iNJ10 X-Received: by 2002:a63:8ac4:: with SMTP id y187-v6mr18315363pgd.64.1525332355926; Thu, 03 May 2018 00:25:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525332355; cv=none; d=google.com; s=arc-20160816; b=jGsfmaRpOGcAY42EVJmoYt2POjX1KS6Cm4jUDTr+47OMD4Jf3hSdoYU+894BDwN18V ysmhHED/ZyCx0p5xgfH7eYYh01bO++EvVLt2goN9CWlWPl9nYxxvimtxY5kqKMp9tPCF hjtCfW8Ez6bIIgu6fIuy5YbXtXMhOg/u9xi7brwtyU3rXNv/3DRpwgLjy9EgpCkkNvak 29vsokiFMLr/N1XMIbEpZu9EicTq+KUTDt9myYx8U9bj/9Bm8O0gVvXQL5bMqbAEfELD sVUGRfBYiF/ipwUjYtla6HgBdiJT/ruqSOeq+/GcK0sbXNY7G2H1NwsTnVOC7qN7WLav DSRg== 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:in-reply-to :mime-version:user-agent:date:message-id:from:references:to:subject :cc:arc-authentication-results; bh=9u+Py3RLVYNx48Sag8l/BNHUEHhPB7DCW/c2auAO4fE=; b=s7U+67V5HWVnMMsUkI2eovr3zwH9jtvu10BUtQt62KL5PPdbq9wTk1MeiqfJcA8dTo 75kIapt1v2hwTx1B1hr1jHoTkmR8TZQzThBfqFxFJxLyax6ieFXW8xNbmW5hcr/uLBj5 MNap92a34Wmh0Jbj6MGQB430y6BDxyJ5vghe3rGu5PoS8QUsLOoOtwSRy+edgTsBWNUS OSS9bK2cKLtDT5PSBc8FA9qiXJLKdeJDKvw5Ul3Qk+uoFZ89KfKvxfbnvqmp+DHGO0nN lUGsMD6MZhMOoXWBDR+7mkbCe4sLeo1mFgx3VQ83elLPNBXGyOiUXYqBxcN33ho1aB5S BM1Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o24-v6si10860419pgn.36.2018.05.03.00.25.41; Thu, 03 May 2018 00:25:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751140AbeECHZZ (ORCPT + 99 others); Thu, 3 May 2018 03:25:25 -0400 Received: from lucky1.263xmail.com ([211.157.147.131]:60732 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751058AbeECHZX (ORCPT ); Thu, 3 May 2018 03:25:23 -0400 Received: from shawn.lin?rock-chips.com (unknown [192.168.167.190]) by lucky1.263xmail.com (Postfix) with ESMTP id 0104496854; Thu, 3 May 2018 15:25:13 +0800 (CST) X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 Received: from [172.16.12.50] (localhost [127.0.0.1]) by smtp.263.net (Postfix) with ESMTPA id 34AA13D1; Thu, 3 May 2018 15:25:09 +0800 (CST) X-IP-DOMAINF: 1 X-RL-SENDER: shawn.lin@rock-chips.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: shawn.lin@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-SENDER: lintao@rock-chips.com X-DNS-TYPE: 0 Received: from [172.16.12.50] (unknown [58.22.7.114]) by smtp.263.net (Postfix) whith ESMTP id 31587DT2NVI; Thu, 03 May 2018 15:25:12 +0800 (CST) Cc: shawn.lin@rock-chips.com, Ulf Hansson , Rob Herring , "linux-mmc@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v5 1/3] mmc: dw_mmc-bluefield: Add driver extension To: Liming Sun , Mark Rutland , Jaehoon Chung , Catalin Marinas , Will Deacon References: <026fa942828c54fda5bad225981e56abc808b949.1524497286.git.lsun@mellanox.com> <1525198787-46403-1-git-send-email-lsun@mellanox.com> From: Shawn Lin Message-ID: <485d5c78-e16f-5034-9314-9e17e48d3570@rock-chips.com> Date: Thu, 3 May 2018 15:25:09 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=iso-2022-jp; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018/5/2 20:45, Liming Sun wrote: > Please see response inline. > > Thanks, > Liming > >> -----Original Message----- >> From: Shawn Lin [mailto:shawn.lin@rock-chips.com] >> Sent: Tuesday, May 1, 2018 9:02 PM >> To: Liming Sun ; Mark Rutland >> ; Jaehoon Chung ; >> Catalin Marinas ; Will Deacon >> >> Cc: Ulf Hansson ; Rob Herring >> ; shawn.lin@rock-chips.com; linux- >> mmc@vger.kernel.org; devicetree@vger.kernel.org; linux- >> kernel@vger.kernel.org; stable@kernel.org >> Subject: Re: [PATCH v5 1/3] mmc: dw_mmc-bluefield: Add driver extension >> >> On 2018/5/2 2:19, Liming Sun wrote: >>> This commit adds extension to the dw_mmc driver for Mellanox BlueField >>> SoC. It updates the UHS_REG_EXT register to bring up the eMMC card on >>> this SoC. >>> >>> Cc: stable@kernel.org >> >> Why? > > [Liming] This is recommended value from HW team. Without this setting, the eMMC > controller and cards can be found in Linux, but not stable. Writing to it could caused > CRC error. Well, I refered to the "Cc: stable@kernel.org" in the commit msg. > >> >>> Signed-off-by: Liming Sun >>> Reviewed-by: David Woods >>> --- >>> drivers/mmc/host/Kconfig | 9 +++++ >>> drivers/mmc/host/Makefile | 1 + >>> drivers/mmc/host/dw_mmc-bluefield.c | 72 >> +++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 82 insertions(+) >>> create mode 100644 drivers/mmc/host/dw_mmc-bluefield.c >>> >>> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig >>> index 9589f9c..26ac6b5 100644 >>> --- a/drivers/mmc/host/Kconfig >>> +++ b/drivers/mmc/host/Kconfig >>> @@ -717,6 +717,15 @@ config MMC_DW_K3 >>> Synopsys DesignWare Memory Card Interface driver. Select this >> option >>> for platforms based on Hisilicon K3 SoC's. >>> >>> +config MMC_DW_BLUEFIELD >> >> And did you have feedback of my comment in V2? >> http://lists-archives.com/linux-kernel/29104830-mmc-dw_mmc-bluefield- >> add-driver-extension.html >> >>> + tristate "BlueField specific extensions for Synopsys DW Memory Card >> Interface" >>> + depends on MMC_DW >>> + select MMC_DW_PLTFM >>> + help >>> + This selects support for Mellanox BlueField SoC specific extensions >> to >>> + the Synopsys DesignWare Memory Card Interface driver. Select this >>> + option for platforms based on Mellanox BlueField SoC's. >>> + >>> config MMC_DW_PCI >>> tristate "Synopsys Designware MCI support on PCI bus" >>> depends on MMC_DW && PCI >>> diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile >>> index 6aead24..267b3f1 100644 >>> --- a/drivers/mmc/host/Makefile >>> +++ b/drivers/mmc/host/Makefile >>> @@ -55,6 +55,7 @@ obj-$(CONFIG_MMC_DW_K3) += dw_mmc- >> k3.o >>> obj-$(CONFIG_MMC_DW_PCI) += dw_mmc-pci.o >>> obj-$(CONFIG_MMC_DW_ROCKCHIP) += dw_mmc-rockchip.o >>> obj-$(CONFIG_MMC_DW_ZX) += dw_mmc-zx.o >>> +obj-$(CONFIG_MMC_DW_BLUEFIELD) += dw_mmc-bluefield.o >>> obj-$(CONFIG_MMC_SH_MMCIF) += sh_mmcif.o >>> obj-$(CONFIG_MMC_JZ4740) += jz4740_mmc.o >>> obj-$(CONFIG_MMC_VUB300) += vub300.o >>> diff --git a/drivers/mmc/host/dw_mmc-bluefield.c >> b/drivers/mmc/host/dw_mmc-bluefield.c >>> new file mode 100644 >>> index 0000000..12067b1 >>> --- /dev/null >>> +++ b/drivers/mmc/host/dw_mmc-bluefield.c >>> @@ -0,0 +1,72 @@ >>> +// SPDX-License-Identifier: GPL-2.0 >>> +/* >>> + * Copyright (C) 2018 Mellanox Technologies. >>> + * >>> + * This program is free software; you can redistribute it and/or modify >>> + * it under the terms of the GNU General Public License as published by >>> + * the Free Software Foundation; either version 2 of the License, or >>> + * (at your option) any later version. >>> + */ >>> + >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> + >>> +#include "dw_mmc.h" >>> +#include "dw_mmc-pltfm.h" >>> + >>> +static void dw_mci_bluefield_set_ios(struct dw_mci *host, struct >> mmc_ios *ios) >>> +{ >>> + u32 regs; >>> + >>> + /* Set drive=4 (bit 29:23) and sample=2 (bit 22:16) in UHS_REG_EXT. >> */ >>> + regs = mci_readl(host, UHS_REG_EXT); >>> + regs = (regs & ~0x3F100000 & ~0x7F0000) | (4 << 23) | (2 << 16); >>> + mci_writel(host, UHS_REG_EXT, regs); >>> +} >>> + >>> +static const struct dw_mci_drv_data bluefield_drv_data = { >>> + .set_ios = dw_mci_bluefield_set_ios >>> +}; >>> + >>> +static const struct of_device_id dw_mci_bluefield_match[] = { >>> + { .compatible = "mellanox,bluefield-dw-mshc", >>> + .data = &bluefield_drv_data }, >>> + {}, >>> +}; >>> +MODULE_DEVICE_TABLE(of, dw_mci_bluefield_match); >>> + >>> +static int dw_mci_bluefield_probe(struct platform_device *pdev) >>> +{ >>> + const struct dw_mci_drv_data *drv_data = NULL; >>> + const struct of_device_id *match; >>> + >>> + if (pdev->dev.of_node) { >>> + match = of_match_node(dw_mci_bluefield_match, >>> + pdev->dev.of_node); >>> + drv_data = match->data; >>> + } >>> + >>> + return dw_mci_pltfm_register(pdev, drv_data); >>> +} >>> + >>> +static struct platform_driver dw_mci_bluefield_pltfm_driver = { >>> + .probe = dw_mci_bluefield_probe, >>> + .remove = dw_mci_pltfm_remove, >>> + .driver = { >>> + .name = "dwmmc_bluefield", >>> + .of_match_table = dw_mci_bluefield_match, >>> + .pm = &dw_mci_pltfm_pmops, >>> + }, >>> +}; >>> + >>> +module_platform_driver(dw_mci_bluefield_pltfm_driver); >>> + >>> +MODULE_DESCRIPTION("BlueField DW Multimedia Card driver"); >>> +MODULE_AUTHOR("Mellanox Technologies"); >>> +MODULE_LICENSE("GPL v2"); >>> > > > >