Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp444293imm; Fri, 5 Oct 2018 06:25:42 -0700 (PDT) X-Google-Smtp-Source: ACcGV61+SS7iAPs8fm82q98sic4INuEmDfpZwKxjjws2XPlsOw8pbEzLUaPsAm2T4Zi8qKVV1SYu X-Received: by 2002:a17:902:292a:: with SMTP id g39-v6mr11637816plb.269.1538745942362; Fri, 05 Oct 2018 06:25:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538745942; cv=none; d=google.com; s=arc-20160816; b=BzbQHHEtXG8F2xGgYrnYUdosZUDIah+KWIvybHwroPUkH28qZIUPGR7Py62z0u1DNW M2p6K1zgwdpIMn9VNvRXQL/PCChY8r8D0a8Yzb8Kf7DMo1yQPNr7ikntlhC5EJCgHMOU FzfSwp0SBQxRGFGfXJpzX9hyemiO+WCTrKSTeuKttL/kIFA6ptqGeH92+ZFxQoS6lZuq gJ0/f88KdN/iU3yeDQvZ7eMJqPKJqVHRFfbZ6z7yUT+0JuYi2HeUZAyIzZmaasCe8YqL /StHHqfFCXgaVgAgOqobmKIK2g+e9MZz4jXXpeKzKEfzdeG09xjY7DIgka9a1xTJLWtb W7gQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=Bc83GV/LVUvUXOYX3vjLZ9iXufVFRzZKRE9uD0hMI5k=; b=u0HEhWCdoTeanDSX5tAgp7+A4DilKWGrj6V8DY70UZsu5I8krWVpbE1MDjrq38kUvA Kpa/XMCayIGvu6lDYa9odSGk/HVK1NpEPG5ol7Y8aw2HeDM27AoJEqJuDzc4a1oJ9wNI /B9Jo5J7lhamKC4r2SRpJOYRcGezPyRCbhDpyxdV7tlnv48LInOaEnhpcSbhIhnyVwDZ TV4+24dkMWc++d/buG5h+P5ibjWwocZAqAWEVdmCHMnCiPJY76ze6mtzhMV35BSpc7Gq WZ3ZhvlENhon6z/ZpBtGyiq7M/rcFV3M1uyq/uSSwRp5K6Y05kcDJvWFdJ9ZLAeplIPt MFNg== 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 o19-v6si8654794pgd.164.2018.10.05.06.25.27; Fri, 05 Oct 2018 06:25:42 -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 S1729068AbeJEUXe (ORCPT + 99 others); Fri, 5 Oct 2018 16:23:34 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:13997 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729035AbeJEUXd (ORCPT ); Fri, 5 Oct 2018 16:23:33 -0400 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w95DIvcD012074; Fri, 5 Oct 2018 15:23:42 +0200 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2mv4mjkj23-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 05 Oct 2018 15:23:42 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 79E4A38; Fri, 5 Oct 2018 13:23:41 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas24.st.com [10.75.90.94]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 5B61D2CBE; Fri, 5 Oct 2018 13:23:41 +0000 (GMT) Received: from SAFEX1HUBCAS22.st.com (10.75.90.93) by Safex1hubcas24.st.com (10.75.90.94) with Microsoft SMTP Server (TLS) id 14.3.361.1; Fri, 5 Oct 2018 15:23:41 +0200 Received: from lmecxl0923.lme.st.com (10.48.0.237) by Webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.361.1; Fri, 5 Oct 2018 15:23:40 +0200 From: Ludovic Barre To: Ulf Hansson , Rob Herring CC: , Maxime Coquelin , Alexandre Torgue , , , , , , Ludovic Barre Subject: [PATCH V5 18/24] mmc: mmci: add variant property to not read datacnt Date: Fri, 5 Oct 2018 15:22:56 +0200 Message-ID: <1538745782-27446-19-git-send-email-ludovic.Barre@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1538745782-27446-1-git-send-email-ludovic.Barre@st.com> References: <1538745782-27446-1-git-send-email-ludovic.Barre@st.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.48.0.237] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-10-05_07:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ludovic Barre This patch adds a boolean property to not read datacnt register. Needed to support the STM32 sdmmc variant. MMCIDATACNT register should be read only after the data transfer is completed. When reading after an error event the read data count value may be different from the real number of data bytes transferred. Signed-off-by: Ludovic Barre --- drivers/mmc/host/mmci.c | 8 ++++++-- drivers/mmc/host/mmci.h | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index bc04329..84e92d1 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -1117,8 +1117,12 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data, * can be as much as a FIFO-worth of data ahead. This * matters for FIFO overruns only. */ - remain = readl(host->base + MMCIDATACNT); - success = data->blksz * data->blocks - remain; + if (!host->variant->datacnt_useless) { + remain = readl(host->base + MMCIDATACNT); + success = data->blksz * data->blocks - remain; + } else { + success = 0; + } dev_dbg(mmc_dev(host->mmc), "MCI ERROR IRQ, status 0x%08x at 0x%08x\n", status_err, success); diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index 1aa8eac..bbc4332 100644 --- a/drivers/mmc/host/mmci.h +++ b/drivers/mmc/host/mmci.h @@ -224,6 +224,8 @@ struct mmci_host; * @datactrl_blksz: block size in power of two * @datactrl_dpsm_enable: enable value for DPSM * @datactrl_first: true if data must be setup before send command + * @datacnt_useless: true if you could not use datacnt register to read + * remaining data * @pwrreg_powerup: power up value for MMCIPOWER register * @f_max: maximum clk frequency supported by the controller. * @signal_direction: input/out direction of bus signals can be indicated @@ -264,6 +266,7 @@ struct variant_data { unsigned int datactrl_blocksz; unsigned int datactrl_dpsm_enable; u8 datactrl_first:1; + u8 datacnt_useless:1; u8 st_sdio:1; u8 st_clkdiv:1; u8 blksz_datactrl16:1; -- 2.7.4