linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kuninori Morimoto <kuninori.morimoto.gx@gmail.com>
To: Simon <horms@verge.net.au>, Chris Ball <cjb@laptop.org>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: Ian Molton <ian@mnementh.co.uk>,
	Morimoto <kuninori.morimoto.gx@renesas.com>,
	Magnus <magnus.damm@gmail.com>,
	Linux-SH <linux-sh@vger.kernel.org>,
	linux-mmc@vger.kernel.org
Subject: [PATCH 4/9 v3] mmc: tmio: add TMIO_MMC_SDIO_STATUS_QUIRK
Date: Mon, 25 Aug 2014 03:00:52 +0000	[thread overview]
Message-ID: <8761hhtgrh.wl%kuninori.morimoto.gx@gmail.com> (raw)
In-Reply-To: <87bnr9tgwj.wl%kuninori.morimoto.gx@gmail.com>

From: Shinobu Uehara <shinobu.uehara.xc@renesas.com>

Renesas R-Car SDHI should set reserved bits
on CTL_SDIO_STATUS register when writing.
This patch adds new TMIO_MMC_SDIO_STATUS_QUIRK flags
for this purpose

[Kuninori Morimoto: tidyuped for upstreaming
                    enabled this flags for all SH-Mobile/R-Car]

Tested-by: Nguyen Xuan Nui <nx-nui@jinso.co.jp>
Tested-by: Hiep Cao Minh <cm-hiep@jinso.co.jp>
Signed-off-by: Shinobu Uehara <shinobu.uehara.xc@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v2 -> v3

 - no change

 drivers/mmc/host/sh_mobile_sdhi.c |    5 +++++
 drivers/mmc/host/tmio_mmc_pio.c   |    7 ++++++-
 include/linux/mfd/tmio.h          |    5 +++++
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index d56ebd9..42730d9 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -230,6 +230,11 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
 	 */
 	mmc_data->flags |= TMIO_MMC_HAVE_CMD12_CTRL;
 
+	/*
+	 * All SDHI need SDIO_INFO1 reserved bit
+	 */
+	mmc_data->flags |= TMIO_MMC_SDIO_STATUS_QUIRK;
+
 	if (of_id && of_id->data) {
 		const struct sh_mobile_sdhi_of_data *of_data = of_id->data;
 		mmc_data->flags |= of_data->tmio_flags;
diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c
index 1f1fdfb..e51a993 100644
--- a/drivers/mmc/host/tmio_mmc_pio.c
+++ b/drivers/mmc/host/tmio_mmc_pio.c
@@ -650,6 +650,7 @@ irqreturn_t tmio_mmc_sdio_irq(int irq, void *devid)
 	struct mmc_host *mmc = host->mmc;
 	struct tmio_mmc_data *pdata = host->pdata;
 	unsigned int ireg, status;
+	unsigned int sdio_status;
 
 	if (!(pdata->flags & TMIO_MMC_SDIO_IRQ))
 		return IRQ_HANDLED;
@@ -657,7 +658,11 @@ irqreturn_t tmio_mmc_sdio_irq(int irq, void *devid)
 	status = sd_ctrl_read16(host, CTL_SDIO_STATUS);
 	ireg = status & TMIO_SDIO_MASK_ALL & ~host->sdcard_irq_mask;
 
-	sd_ctrl_write16(host, CTL_SDIO_STATUS, status & ~TMIO_SDIO_MASK_ALL);
+	sdio_status = status & ~TMIO_SDIO_MASK_ALL;
+	if (pdata->flags & TMIO_MMC_SDIO_STATUS_QUIRK)
+		sdio_status |= 6;
+
+	sd_ctrl_write16(host, CTL_SDIO_STATUS, sdio_status);
 
 	if (mmc->caps & MMC_CAP_SDIO_IRQ && ireg & TMIO_SDIO_STAT_IOIRQ)
 		mmc_signal_sdio_irq(mmc);
diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h
index 7432d95..a7493ae 100644
--- a/include/linux/mfd/tmio.h
+++ b/include/linux/mfd/tmio.h
@@ -89,6 +89,11 @@
  */
 #define TMIO_MMC_HAVE_CMD12_CTRL	(1 << 7)
 
+/*
+ * Some controllers needs to set 1 on SDIO status reserved bits
+ */
+#define TMIO_MMC_SDIO_STATUS_QUIRK	(1 << 8)
+
 int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base);
 int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base);
 void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state);
-- 
1.7.9.5


  parent reply	other threads:[~2014-08-25  3:00 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <d3d6aa34548248768494ad88056cf4bd@SINPR06MB105.apcprd06.prod.outlook.com>
     [not found] ` <87simtenpi.wl%kuninori.morimoto.gx@renesas.com>
     [not found]   ` <cb608c5e763f47b597936724ec05b615@SINPR06MB105.apcprd06.prod.outlook.com>
     [not found]     ` <87pphxe2q0.wl%kuninori.morimoto.gx@renesas.com>
     [not found]       ` <53AD638C.5060907@renesas.com>
2014-07-22  5:30         ` [PATCH 0/10][RFC] mmc: tmio: fixup patches Kuninori Morimoto
2014-07-22  5:33           ` [PATCH 01/10] mmc: sh_mobile_sdhi: Add EXT_ACC register busy check Kuninori Morimoto
2014-07-22 12:39             ` Sergei Shtylyov
2014-07-22 23:51               ` Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 02/10] mmc: block: add block number limitation flag for multiple block read Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 03/10] mmc: tmio: care about DMA tx/rx addr offset Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 04/10] mmc: tmio: clear error IRQ status Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 05/10] mmc: tmio: control multiple block transfer mode Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 06/10] mmc: tmio: add TMIO_MMC_SDIO_STATUS_QUIRK Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 07/10] mmc: tmio: check ILL_FUNC instead of CBSY Kuninori Morimoto
2014-07-22  5:34           ` [PATCH 08/10] mmc: tmio: remove Renesas specific #ifdef Kuninori Morimoto
2014-07-22  5:35           ` [PATCH 09/10] mmc: tmio: remove SCLKEN bit setting from tmio_mmc_set_clock() Kuninori Morimoto
2014-07-22  5:35           ` [PATCH 10/10] mmc: tmio: add actual clock support as option Kuninori Morimoto
2014-07-29  8:42           ` [PATCH 0/10 v2] mmc: tmio: fixup patches Kuninori Morimoto
2014-07-29  8:44             ` [PATCH 01/10 v2] mmc: block: add block number limitation flag for multiple block read Kuninori Morimoto
2014-07-31  6:14               ` [Bug] mmc: MMC and SDHI has a kernel panic error when transfer data カオ ミン ヒェップ
2014-07-29  8:44             ` [PATCH 02/10 v2] mmc: tmio: care about DMA tx/rx addr offset Kuninori Morimoto
2014-07-29  8:44             ` [PATCH 03/10 v2] mmc: tmio: clear error IRQ status Kuninori Morimoto
2014-07-29  8:45             ` [PATCH 04/10 v2] mmc: tmio: control multiple block transfer mode Kuninori Morimoto
2014-07-29  8:45             ` [PATCH 05/10 v2] mmc: tmio: add TMIO_MMC_SDIO_STATUS_QUIRK Kuninori Morimoto
2014-07-29  8:46             ` [PATCH 06/10 v2] mmc: tmio: check ILL_FUNC instead of CBSY Kuninori Morimoto
2014-07-29  8:46             ` [PATCH 07/10 v2] mmc: tmio: remove Renesas specific #ifdef Kuninori Morimoto
2014-07-29  8:47             ` [PATCH 08/10 v2] mmc: tmio: remove SCLKEN bit setting from tmio_mmc_set_clock() Kuninori Morimoto
2014-07-29  8:47             ` [PATCH 09/10 v2] mmc: tmio: ensure that the clock has been stopped before set_clock Kuninori Morimoto
2014-07-29  8:47             ` [PATCH 10/10 v2] mmc: tmio: add actual clock support as option Kuninori Morimoto
2014-07-30  0:45             ` [PATCH 0/10 v2] mmc: tmio: fixup patches Simon Horman
2014-07-31  1:52             ` カオ ミン ヒェップ
2014-07-31  2:30               ` Simon Horman
2014-07-31  4:27                 ` カオ ミン ヒェップ
2014-07-31  4:30                   ` Simon Horman
2014-07-31  4:34                   ` Kuninori Morimoto
2014-07-31  5:05                     ` カオ ミン ヒェップ
2014-08-05  3:16             ` [PATCH 1/5] mmc: shmobile: add renesas,sdhi-rcar-gen1/gen2 in DT compatible Kuninori Morimoto
2014-08-05  6:59               ` Geert Uytterhoeven
2014-08-05 23:45                 ` Kuninori Morimoto
2014-08-05  3:17             ` [PATCH 2/5] ARM: shmobile: r8a7778: add generation level compatible for SDHI Kuninori Morimoto
2014-08-05  3:17             ` [PATCH 3/5] ARM: shmobile: r8a7779: " Kuninori Morimoto
2014-08-05  3:17             ` [PATCH 4/5] ARM: shmobile: r8a7790: " Kuninori Morimoto
2014-08-05  3:17             ` [PATCH 5/5] ARM: shmobile: r8a7791: " Kuninori Morimoto
2014-08-06  1:47             ` [PATCH 0/5 v2] mmc: shmobile: adds generatoin level DT compatible Kuninori Morimoto
2014-08-06  1:48               ` [PATCH 1/5 v2] mmc: shmobile: add renesas,sdhi-rcar-gen1/gen2 in " Kuninori Morimoto
2014-08-07  0:43                 ` Simon Horman
2014-08-06  1:49               ` [PATCH 2/5 v2] ARM: shmobile: r8a7778: add generation level compatible for SDHI Kuninori Morimoto
2014-08-06  1:49               ` [PATCH 3/5 v2] ARM: shmobile: r8a7779: " Kuninori Morimoto
2014-08-06  1:49               ` [PATCH 4/5 v2] ARM: shmobile: r8a7790: " Kuninori Morimoto
2014-08-06  1:50               ` [PATCH 5/5 v2] ARM: shmobile: r8a7791: " Kuninori Morimoto
2014-08-22  8:35           ` [PATCH 0/10 v2 resend] mmc: tmio: fixup patches Kuninori Morimoto
2014-08-22  8:36             ` [PATCH 01/10 v2 resend] mmc: block: add block number limitation flag for multiple block read Kuninori Morimoto
2014-08-22 10:31               ` Ulf Hansson
2014-08-25  0:53                 ` Kuninori Morimoto
2014-08-25  8:50                   ` Ulf Hansson
2014-08-25  9:59                     ` Kuninori Morimoto
2014-08-27  1:37                       ` Kuninori Morimoto
2014-08-22  8:37             ` [PATCH 02/10 v2 resend] mmc: tmio: care about DMA tx/rx addr offset Kuninori Morimoto
2014-08-22  8:38             ` [PATCH 03/10 v2 resend] mmc: tmio: clear error IRQ status Kuninori Morimoto
2014-08-22  8:39             ` [PATCH 04/10 v2 resend] mmc: tmio: control multiple block transfer mode Kuninori Morimoto
2014-08-22  8:40             ` [PATCH 05/10 v2 resend] mmc: tmio: add TMIO_MMC_SDIO_STATUS_QUIRK Kuninori Morimoto
2014-08-22  8:40             ` [PATCH 06/10 v2 resend] mmc: tmio: check ILL_FUNC instead of CBSY Kuninori Morimoto
2014-08-22  8:40             ` [PATCH 07/10 v2 resend] mmc: tmio: remove Renesas specific #ifdef Kuninori Morimoto
2014-08-22  8:40             ` [PATCH 08/10 v2 resend] mmc: tmio: remove SCLKEN bit setting from tmio_mmc_set_clock() Kuninori Morimoto
2014-08-22  8:41             ` [PATCH 09/10 v2 resend] mmc: tmio: ensure that the clock has been stopped before set_clock Kuninori Morimoto
2014-08-25  2:57           ` [PATCH 0/9 v3] mmc: tmio: fixup patches Kuninori Morimoto
2014-08-25  2:58             ` [PATCH 1/9 v3] mmc: tmio: care about DMA tx/rx addr offset Kuninori Morimoto
2014-08-25  2:59             ` [PATCH 2/9 v3] mmc: tmio: clear error IRQ status Kuninori Morimoto
2014-08-25  3:00             ` [PATCH 3/9 v3] mmc: tmio: control multiple block transfer mode Kuninori Morimoto
2014-08-25  3:00             ` Kuninori Morimoto [this message]
2014-08-25  3:01             ` [PATCH 5/9 v3] mmc: tmio: check ILL_FUNC instead of CBSY Kuninori Morimoto
2014-08-25  3:01             ` [PATCH 6/9 v3] mmc: tmio: remove Renesas specific #ifdef Kuninori Morimoto
2014-08-25  3:02             ` [PATCH 7/9 v3] mmc: tmio: remove SCLKEN bit setting from tmio_mmc_set_clock() Kuninori Morimoto
2014-08-25  3:02             ` [PATCH 8/9 v3] mmc: tmio: ensure that the clock has been stopped before set_clock Kuninori Morimoto
2014-08-25  3:03             ` [PATCH 9/9 v3] mmc: tmio: add actual clock support as option Kuninori Morimoto
2014-08-27 13:11             ` [PATCH 0/9 v3] mmc: tmio: fixup patches Ulf Hansson
2014-08-28  2:24               ` [PATCH v4] mmc: tmio: ensure that the clock has been stopped before set_clock Kuninori Morimoto
2014-08-28  7:11                 ` Ulf Hansson
2014-08-28  7:13                   ` Ulf Hansson
2014-08-28 10:36                     ` Kuninori Morimoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8761hhtgrh.wl%kuninori.morimoto.gx@gmail.com \
    --to=kuninori.morimoto.gx@gmail.com \
    --cc=cjb@laptop.org \
    --cc=horms@verge.net.au \
    --cc=ian@mnementh.co.uk \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).