From patchwork Thu Aug 29 10:49:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 172574 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp2043076ily; Thu, 29 Aug 2019 03:55:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqwxH60UUjJezge8RDi2zz+VY/lLo0MIzywrXN5pyh10V4eQz51Nu6GK/eBp6bC7qD7vRi9v X-Received: by 2002:a65:514c:: with SMTP id g12mr7761985pgq.76.1567076132116; Thu, 29 Aug 2019 03:55:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567076132; cv=none; d=google.com; s=arc-20160816; b=oUxXsjCDqSx3HPTfJy0f62nl66zSXIngfVJF8iThuoJ/906BcLQHeQM1Q+eUNnX5hq p+4rxYlSfAm5IclSvGTpPiBGyd8dzT+QJddaeqcCoLGAgtVildKw9nKB+j3Wf4bf23H3 Vg7iDN6DYkwAY6q5JMeJeOZEhIuzFE2vGyxnZ0B02flaWXmKWb083ox9ajnt4GL3iE56 i78j3Rzn95t4ium4uizbuZZdvKYuN/rGViImfxHbBpADsrkkmP7RiPafFBlE8rxYtYNL YCthjas0C5ik11P9fj/a3VF0e99dy0ywMDIPrUeqAYFXM89z5XpurCTAY1adwoKa8cZu oWwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=bONSGLTFaXqEMmGlC9jNWtPpXwIX2FvApbhg5YEacHY=; b=JXdwv70bnalSDTZS/yfad16leAOTrtt7cjuDULzM55ssWNkDVQ+lZTCo6c1DKK9DZw kutaRiMtMjqKFaqnnYZgSX+br6IOpAb9/bA4ekeBa49RWruyzxYdWqggVC1O0vtSITBy 3XFDCpd3CDi9ijXOghfnF509YHH5c93jAxFPnmMp5eEkUgkn84wW/69ObYaV17Mtq1B4 9HrG2+6/gy68nXU6mNwAM4pVZ+rRfLjnBv73bl2Z1XQbv2QTBubSGQ0Yb7wqFwaa4HlH 7Aa2NKbcMPMIJ12nZjTUG5YSoRjbnp9xmincIW3CvG8BkVqVYigr0r3O/0RzYXuMMB8w 4mRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=tf+IoCMZ; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 l9si1620742plb.317.2019.08.29.03.55.31; Thu, 29 Aug 2019 03:55:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=tf+IoCMZ; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727594AbfH2Kzb (ORCPT + 14 others); Thu, 29 Aug 2019 06:55:31 -0400 Received: from conuserg-12.nifty.com ([210.131.2.79]:17274 "EHLO conuserg-12.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726983AbfH2KuJ (ORCPT ); Thu, 29 Aug 2019 06:50:09 -0400 Received: from localhost.localdomain (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-12.nifty.com with ESMTP id x7TAnTof013730; Thu, 29 Aug 2019 19:49:29 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-12.nifty.com x7TAnTof013730 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1567075772; bh=bONSGLTFaXqEMmGlC9jNWtPpXwIX2FvApbhg5YEacHY=; h=From:To:Cc:Subject:Date:From; b=tf+IoCMZ8FnlxiyVUG2h+Gy5Y+i7OqvaRwxaxqL44y7HIrFVR5O1s87bCOlAVmSDO 0d6p10gASi9nIjm3tDfdhjHFq2KynTVYZMS2Hlvk3AOIz/8dDmc2vTMjKCG9jY/Brk nC/tc+Qn1zmMeux84bhSFkZNsGLaRebjUI7E/tWaArsJJJPQcMMfr+cGQz6Zra2blq xjYDwGglnO4+WpI83mNxsv5PgnG6GLm8JdX+aWaIfGZxr3u8WEm2BTUd/0T9kQwbOc Sfuw5ClVm1CZS5pnCftjK0KGbta7/T3IeQ6x7tWiQPE0KlFFxJUwN87qtqg/vvZxqN nGBUW9VnhYAYw== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: linux-mmc@vger.kernel.org, Adrian Hunter , Ulf Hansson Cc: Piotr Sroka , Masahiro Yamada , stable@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] mmc: sdhci-cadence: enable v4_mode to fix ADMA 64-bit addressing Date: Thu, 29 Aug 2019 19:49:26 +0900 Message-Id: <20190829104928.27404-1-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.17.1 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org The IP datasheet says this controller is compatible with SD Host Specification Version v4.00. As it turned out, the ADMA of this IP does not work with 64-bit mode when it is in the Version 3.00 compatible mode; it understands the old 64-bit descriptor table (as defined in SDHCI v2), but the ADMA System Address Register (SDHCI_ADMA_ADDRESS) cannot point to the 64-bit address. I noticed this issue only after commit bd2e75633c80 ("dma-contiguous: use fallback alloc_pages for single pages"). Prior to that commit, dma_set_mask_and_coherent() returned the dma address that fits in 32-bit range, at least for the default arm64 configuration (arch/arm64/configs/defconfig). Now the host->adma_addr exceeds the 32-bit limit, causing the real problem for the Socionext SoCs. (As a side-note, I was also able to reproduce the issue for older kernels by turning off CONFIG_DMA_CMA.) Call sdhci_enable_v4_mode() to fix this. I think it is better to back-port this, but only possible for v4.20+. When this driver was merged (v4.10), the v4 mode support did not exist. It was added by commit b3f80b434f72 ("mmc: sdhci: Add sd host v4 mode") i.e. v4.20. Cc: # v4.20+ Signed-off-by: Masahiro Yamada --- drivers/mmc/host/sdhci-cadence.c | 1 + 1 file changed, 1 insertion(+) -- 2.17.1 diff --git a/drivers/mmc/host/sdhci-cadence.c b/drivers/mmc/host/sdhci-cadence.c index 163d1cf4367e..44139fceac24 100644 --- a/drivers/mmc/host/sdhci-cadence.c +++ b/drivers/mmc/host/sdhci-cadence.c @@ -369,6 +369,7 @@ static int sdhci_cdns_probe(struct platform_device *pdev) host->mmc_host_ops.execute_tuning = sdhci_cdns_execute_tuning; host->mmc_host_ops.hs400_enhanced_strobe = sdhci_cdns_hs400_enhanced_strobe; + sdhci_enable_v4_mode(host); sdhci_get_of_property(pdev);