Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp366309pxv; Thu, 24 Jun 2021 09:33:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzw4Flbb2GE77Bm52UxqeoVrajU+sKncms5jfa/msjMPRsc3EJzkFfVbGIMpTXTz6XEdZ57 X-Received: by 2002:a05:6602:10e:: with SMTP id s14mr4943298iot.52.1624552425818; Thu, 24 Jun 2021 09:33:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624552425; cv=none; d=google.com; s=arc-20160816; b=myvAD4ATcu61SaGhJgS6BukjSH66TIwIkFQsmGKTDDWd0SHNYf3VqcXErdORu5fxiQ PaX/lodmIQyHT/1gT188rqkb9rcgm02w5HunhUdgVJZxu4u4pyl118UWfgpkg3UC9/as snsMSh0Kecs4zkJ//ywOPK6pZBBNeMT6c7V4zVYVfR3sUL9SjpGHY6Mv9EWM5tsslVdg 2SgvycT/reELZ4DcFShcFffxQVb/FE9mOIx44ytyvGGgtNy01NWUb2tbDga9rus4exfg kh8vk04t3fmCaF02Xy4PQM8WDX7zRR2ice3qPx0eV+TmmKgEgEA3BCTvBFhIt2LVHWyj txTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=RT5dzZftBebY2VOviVkfQ45/MM67CQrK4oo7y7p6OG0=; b=Wfig840LEptudpRRie0YxPc0UPZaHI5mpWt2O+vzdOcW+8TG0PR6Mz6e4bNS1mtqrr 4Ito3EqQ1BrpiKHZxiikTAZWlg0225eVAj2r2TdlNmPtzAh9A5Rhe3BxE7ybY+Ai+WjR nMtgNJ7WOQZDcg+neF3SBBuB/OMTG+bZjkEx2hJXaxdUjrPTRzl8u6e1WJpWuNSm8add 8zxrxjVdz6Oo7QZ8q0OP+eQWk30/Rd0wkk11ZGsH4RGMNEE+RJGrC+crAyxRHHP+3+yP k61CF6kGxgsseOddSIX54o8yJIIfYWCmFlSp0cRMS+NpvwTWv4Yd+RV4TPKJKnHKxibS pPNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tJbie+vJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o192si4049236jao.55.2021.06.24.09.33.32; Thu, 24 Jun 2021 09:33:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tJbie+vJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231969AbhFXQda (ORCPT + 99 others); Thu, 24 Jun 2021 12:33:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229445AbhFXQd2 (ORCPT ); Thu, 24 Jun 2021 12:33:28 -0400 Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87191C061574; Thu, 24 Jun 2021 09:31:08 -0700 (PDT) Received: by mail-pj1-x102e.google.com with SMTP id bb10-20020a17090b008ab029016eef083425so6238593pjb.5; Thu, 24 Jun 2021 09:31:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=RT5dzZftBebY2VOviVkfQ45/MM67CQrK4oo7y7p6OG0=; b=tJbie+vJZ7aFEOnM7n2nhQUuEowCHMuiAhZKobMJ1IWm2818LP+iS584rYMuKq7WcE tacamuymP3RotbIwUZDpeaXsp1EcDo23sywrdX2dgsdn0tH/X6EZpPs8m1WZR151yw9N KcceZpaaU7wStGnhAQ6YcFbj54yVURk4R7ON/Ff52J3/4y22wTz+jEpOlAzkhF0pGew7 FMcXybyAGxfmr8I64BIZKhT+QwUDK8TjjxzNonp51KC11LFQtYYJKT0eCUB2mpLrg8kB Una9dQe6+zW404yUPWM2JYfW0PpolL/mLasVSS58v0k7TRXEZ8Sn0bGo/5viCPXa4hfv Y25g== 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; bh=RT5dzZftBebY2VOviVkfQ45/MM67CQrK4oo7y7p6OG0=; b=XIMAvtGJsKoVfikjjciOAVq9Vbb4cG9CL7cdKuuHBop2Yx/Ik+3F7ueNp7Nt6YrIrd TTjiWo2kJRwlMggR0oXjOqBRM8BAw9QZSLmIVi4E3htz254n2npkNZ7KtrGZmgS7n14n JSxDaWnRbd/PMZGsLG9a/d79lp1mcVglq7j/WGkcLcQXFW6WGDuLemT8bSDK1DvT66xr pe8cutauOKsVnxc0WmPetWNbMb8TfQahpZa2FZYFy6rMoXIF8awQqc4FWWZKnzs9MpXq cY6gugdUEG4WQYV788Yc9CttZGKcAmBWBwY6oajQEgn+iPmhQtBCspfzZkoVgdEzhA7y x8kg== X-Gm-Message-State: AOAM533GHvssG1zlV3S6Lv63xpneoV66V2IHPzAv4wFGvRHvt0tvQlzZ xxj1fPzgvK6pVNFNsu0lr6VqyTxBr9bvsx8/ X-Received: by 2002:a17:90b:153:: with SMTP id em19mr9847379pjb.21.1624552267912; Thu, 24 Jun 2021 09:31:07 -0700 (PDT) Received: from stbsrv-and-01.and.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id w11sm2889539pgp.60.2021.06.24.09.31.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 09:31:07 -0700 (PDT) From: Al Cooper To: linux-kernel@vger.kernel.org Cc: Al Cooper , Adrian Hunter , linux-mmc@vger.kernel.org, Ulf Hansson Subject: [PATCH] mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode Date: Thu, 24 Jun 2021 12:30:45 -0400 Message-Id: <20210624163045.33651-1-alcooperx@gmail.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When an eMMC device is being run in HS400 mode, any access to the RPMB device will cause the error message "mmc1: Invalid UHS-I mode selected". This happens as a result of tuning being disabled before RPMB access and then re-enabled after the RPMB access is complete. When tuning is re-enabled, the system has to switch from HS400 to HS200 to do the tuning and then back to HS400. As part of sequence to switch from HS400 to HS200 the system is temporarily put into HS mode. When switching to HS mode, sdhci_get_preset_value() is called and does not have support for HS mode and prints the warning message and returns the preset for SDR12. The fix is to add support for MMC and SD HS modes to sdhci_get_preset_value(). This can be reproduced on any system running eMMC in HS400 mode (not HS400ES) by using the "mmc" utility to run the following command: "mmc rpmb read-counter /dev/mmcblk0rpmb". Signed-off-by: Al Cooper --- drivers/mmc/host/sdhci.c | 4 ++++ drivers/mmc/host/sdhci.h | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index bf238ade1602..6b39126fbf06 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -1812,6 +1812,10 @@ static u16 sdhci_get_preset_value(struct sdhci_host *host) u16 preset = 0; switch (host->timing) { + case MMC_TIMING_MMC_HS: + case MMC_TIMING_SD_HS: + preset = sdhci_readw(host, SDHCI_PRESET_FOR_HIGH_SPEED); + break; case MMC_TIMING_UHS_SDR12: preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR12); break; diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index 0770c036e2ff..960fed78529e 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h @@ -253,6 +253,7 @@ /* 60-FB reserved */ +#define SDHCI_PRESET_FOR_HIGH_SPEED 0x64 #define SDHCI_PRESET_FOR_SDR12 0x66 #define SDHCI_PRESET_FOR_SDR25 0x68 #define SDHCI_PRESET_FOR_SDR50 0x6A base-commit: 7426cedc7dad67bf3c71ea6cc29ab7822e1a453f -- 2.17.1