Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp440903imm; Fri, 21 Sep 2018 02:51:04 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZk15vfcxwXywzaDMjHS3fd5Cg1XXgbzDFxdbYBuEtJUDgxkxjW3NujqPDj1DQBzWrk76Be X-Received: by 2002:a63:eb53:: with SMTP id b19-v6mr40705072pgk.371.1537523464122; Fri, 21 Sep 2018 02:51:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537523464; cv=none; d=google.com; s=arc-20160816; b=T5Jl396maQQ8ATJkzVs1txc1UCz5jQjHCLXf6jz4lEkqc6fLoUh8WvrjdAMh8gFFeE nfuvaxWpRi/8tQHi8RY7JXUT8U24YN9uR1cxwA91K2JGYdKqIRsNGp7jB1dUWVummp5W qJ3QdafkVjPL5uevgbF5UdxsESSTNeS5oOrQHCOAN7QgSZlOzSiSHHLku0kuEWkBsJGC 5cdlQQElqeN796AOWAGq9nPsyFcueF8xS6b2mSwsUYgIh6NgvcTClzwYpDgvXZentm47 5ZevkRQ3JdS9XHWPmfde79yvLjnyAmZsYhQW+LCeqdsiTOpwNhMlWhkPpw1Yy2IdyGOl VFlQ== 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=Yr6y2ZfLu4h2+3wxzLUSPV264yAPnz8I4azUFNKV8bA=; b=g8rpqCxF+GHQ4MfmY2VtG1akj+jVJb38cwa2sMN8NSNHdK43TDlPBPqI4A4uo2VNVr y8D3fxrgOoOZXaMPmelTbAT+jGPhiDdWAFtSWphV88VJhbL8Zud1BDKD/iI3tazAlYrZ tIKiU6qGT5m8oF6d/5tvy+UOs7GUANKdeuTchBqhpclD0DQXpNvalHATm4B09j8if7NY /kRQnXCtPaURRUrA9t990wynxWd0jfUg1SPadyKT9b9d6gKa+KnyRJwP2bTkBEvXuzYw BEekB10Jz6N4O2G0rz2049d68eFHpYxfoFTwypyi1prMd4Al4TKMWIeqrjlRbhYyg1qi jj8Q== 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 j65-v6si6634811pge.589.2018.09.21.02.50.48; Fri, 21 Sep 2018 02:51:04 -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 S2389927AbeIUPf7 (ORCPT + 99 others); Fri, 21 Sep 2018 11:35:59 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:1314 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389624AbeIUPf6 (ORCPT ); Fri, 21 Sep 2018 11:35:58 -0400 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w8L9hviE025548; Fri, 21 Sep 2018 11:46:54 +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 2mmkmr380a-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 21 Sep 2018 11:46:54 +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 A505A31; Fri, 21 Sep 2018 09:46:53 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas23.st.com [10.75.90.46]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 827E82AC3; Fri, 21 Sep 2018 09:46:53 +0000 (GMT) Received: from SAFEX1HUBCAS22.st.com (10.75.90.93) by SAFEX1HUBCAS23.st.com (10.75.90.46) with Microsoft SMTP Server (TLS) id 14.3.361.1; Fri, 21 Sep 2018 11:46:53 +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, 21 Sep 2018 11:46:53 +0200 From: Ludovic Barre To: Ulf Hansson , Rob Herring CC: Maxime Coquelin , Alexandre Torgue , , Gerald Baeza , Loic Pallardy , , , , , , Ludovic Barre Subject: [PATCH V2 22/27] mmc: mmci: add variant property to not read datacnt Date: Fri, 21 Sep 2018 11:46:16 +0200 Message-ID: <1537523181-14578-23-git-send-email-ludovic.Barre@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1537523181-14578-1-git-send-email-ludovic.Barre@st.com> References: <1537523181-14578-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-09-21_04:,, 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 b525ba4..b1d5bc5 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -1095,8 +1095,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 93e879b..e130689 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; bool datactrl_first; + bool datacnt_useless; bool st_sdio; bool st_clkdiv; bool blksz_datactrl16; -- 2.7.4