Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1082289yba; Thu, 9 May 2019 10:25:51 -0700 (PDT) X-Google-Smtp-Source: APXvYqxdJwBBk8FcxzBqpo1E/3D8NnF13jURb5fG9BRoVJ4YE3kTgboa8GJMDwpU6m53wDlUQ3ag X-Received: by 2002:aa7:8190:: with SMTP id g16mr7017675pfi.92.1557422751512; Thu, 09 May 2019 10:25:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557422751; cv=none; d=google.com; s=arc-20160816; b=hn/RTDRiWcZZCllVb6SLzhpn8DszCFkQF2ibKTgR+MHZTty+yvOmg0QMqN//gv5qdp QubKdSQe6VF1qLyN2qgOpqrOikDbwGOp40I6GJaYzN13cs6lmQi5q7LRpUVvHPDcYZiV axaLDdrLUA+y252j3Q3XaEfiOZRkEspoQ8bsVs7x/YbdryvD9hvYLcgC/33+lDdXocKE CK1AkIqhKk/GklBwthhCU38JpDn/szgt/JirtrGmpgzUgj43pA3xFYccEHsTXtkzLwFv guYdtgzrDD1yoJ6d5BpR9iBi1NQWME1edvLKiroDyus4CDnenPdZDKZASLKKhw5/3g1l Ybcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=cPBzyUAV50pAnZfXXI85W0FJrR1AmwGO+3Mm+J5Ler8=; b=F+05z2jByg4AI3+j8huBiqCayLgq7TnK1ZFzPkFkw5AhtBYVAvLNdsjUGwJWhpeVs6 eoNJrPQE32AX8JG5gngh9ICxdhFCGJWVQZBW8wvJUvqvaHbEljw1By0Y920oBRiUFYhE sfBqyxWyk2QHEUbgZcgiPlP2JZLtvuYfIT1t4QBi7jdcdNyssapFZmbFcthPxB15ocgy IP+ZAvsHaQqgAQDbsPIGSsmpk3Qo9XQG7wCtqsY2fAX3rP6TRC+qxzwuj/M+4+7lcdBN FFUECm0ckxNNsMK5cbW1xh/cgggxIkD4ayPbhNKynxSjgXKONBpc1uQ9wJlbzofAvzr1 naog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=KZymrmgN; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d11si4135990pgt.76.2019.05.09.10.25.35; Thu, 09 May 2019 10:25:51 -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; dkim=pass header.i=@broadcom.com header.s=google header.b=KZymrmgN; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726812AbfEIRYk (ORCPT + 99 others); Thu, 9 May 2019 13:24:40 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:46152 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726754AbfEIRYi (ORCPT ); Thu, 9 May 2019 13:24:38 -0400 Received: by mail-pg1-f194.google.com with SMTP id t187so1529247pgb.13 for ; Thu, 09 May 2019 10:24:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cPBzyUAV50pAnZfXXI85W0FJrR1AmwGO+3Mm+J5Ler8=; b=KZymrmgNoadDcCwAw9QgPOqaSR0OLrD5V49mAh1uQt0GgJ3kfSscqL6ofV06PDPlwW 7JIc+kGuIJRjIpOrvb6N2dADvTRctPUm5ttHOPJ1QG1d5TZIv7631WzfeC7gBsCMTlN1 fbPaM6gs/seQ3JgTCfuCXd2U0Uj505rmkAGeo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cPBzyUAV50pAnZfXXI85W0FJrR1AmwGO+3Mm+J5Ler8=; b=oqIsF0Eaa8N3qpPo+yoVGWXnw/fyPoQ09qWP+hN6SBk+PdG2KuSHedoLb4+R9tz8cq 30PdKLdvLQceYkEkZZLCgSmbPO5lCRYn+YTsUIXMY5PNulcBTG+Odp0uFDmmq0ol7N56 2DyeRYRA2+2AplTI3uqLCVLyiQVYmo5f71EmJXG2J6U7jw9P6mCa2yNhnfUVuyvBjB2o GlvQCMzX5tYNwCw9hq3GUYjDD9A9yZW7jk6WYweo91IQyOWnPNW2m4DD7UQWPKBjjx8I 9Uk2UpppKM3+2LT+xQgaayLhfL+vrMTdXjMhg8PlTaxYZ/vrm0FQSGhxAxAuXVjsba6w mKyw== X-Gm-Message-State: APjAAAVHqF1ttSgmjsPBeTV2KsE7Fwv5UP1I1uvjdlmZJLyquUh+jHJW 57iu6CFaSrFGevD8rCcBEj8m2Q== X-Received: by 2002:a62:3892:: with SMTP id f140mr6877728pfa.128.1557422677403; Thu, 09 May 2019 10:24:37 -0700 (PDT) Received: from lbrmn-lnxub113.broadcom.net ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id m8sm3989699pgn.59.2019.05.09.10.24.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 May 2019 10:24:36 -0700 (PDT) From: Scott Branden To: Adrian Hunter , Ulf Hansson , Ray Jui , Scott Branden , Stefan Wahren Cc: BCM Kernel Feedback , linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Trac Hoang , stable@vger.kernel.org, Scott Branden Subject: [PATCH v3 1/2] mmc: sdhci-iproc: cygnus: Set NO_HISPD bit to fix HS50 data hold time problem Date: Thu, 9 May 2019 10:24:26 -0700 Message-Id: <20190509172427.17835-2-scott.branden@broadcom.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190509172427.17835-1-scott.branden@broadcom.com> References: <20190509172427.17835-1-scott.branden@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Trac Hoang The iproc host eMMC/SD controller hold time does not meet the specification in the HS50 mode. This problem can be mitigated by disabling the HISPD bit; thus forcing the controller output data to be driven on the falling clock edges rather than the rising clock edges. This change applies only to the Cygnus platform. Stable tag (v4.12+) chosen to assist stable kernel maintainers so that the change does not produce merge conflicts backporting to older kernel versions. In reality, the timing bug existed since the driver was first introduced but there is no need for this driver to be supported in kernel versions that old. Cc: stable@vger.kernel.org # v4.12+ Signed-off-by: Trac Hoang Signed-off-by: Scott Branden Acked-by: Adrian Hunter --- drivers/mmc/host/sdhci-iproc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c index 9d12c06c7fd6..9d4071c41c94 100644 --- a/drivers/mmc/host/sdhci-iproc.c +++ b/drivers/mmc/host/sdhci-iproc.c @@ -196,7 +196,8 @@ static const struct sdhci_ops sdhci_iproc_32only_ops = { }; static const struct sdhci_pltfm_data sdhci_iproc_cygnus_pltfm_data = { - .quirks = SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK, + .quirks = SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | + SDHCI_QUIRK_NO_HISPD_BIT, .quirks2 = SDHCI_QUIRK2_ACMD23_BROKEN | SDHCI_QUIRK2_HOST_OFF_CARD_ON, .ops = &sdhci_iproc_32only_ops, }; -- 2.17.1