linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: linux-mmc@vger.kernel.org,
	Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: Simon Horman <simon.horman@netronome.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
	linux-renesas-soc@vger.kernel.org,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	linux-kernel@vger.kernel.org,
	Ulf Hansson <ulf.hansson@linaro.org>
Subject: [PATCH v2 10/22] mmc: tmio: support IP-builtin card detection logic
Date: Sat, 25 Nov 2017 01:24:45 +0900	[thread overview]
Message-ID: <1511540697-27387-11-git-send-email-yamada.masahiro@socionext.com> (raw)
In-Reply-To: <1511540697-27387-1-git-send-email-yamada.masahiro@socionext.com>

A card detect GPIO is set up only for platforms with "cd-gpios"
DT property or TMIO_MMC_USE_GPIO_CD flag.  However, the driver
core always uses mmc_gpio_get_cd, which just fails with -ENOSYS
if ctx->cd_gpio is unset.

The bit 5 of the status register provides the current signal level
of the CD line.  Allow to use it if the GPIO is unused.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2: None

 drivers/mmc/host/tmio_mmc_core.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index 610f26f..b51bb06 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -1087,6 +1087,19 @@ static int tmio_mmc_get_ro(struct mmc_host *mmc)
 	return ret;
 }
 
+static int tmio_mmc_get_cd(struct mmc_host *mmc)
+{
+	struct tmio_mmc_host *host = mmc_priv(mmc);
+	int ret;
+
+	ret = mmc_gpio_get_cd(mmc);
+	if (ret >= 0)
+		return ret;
+
+	return !!(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) &
+							TMIO_STAT_SIGSTATE);
+}
+
 static int tmio_multi_io_quirk(struct mmc_card *card,
 			       unsigned int direction, int blk_size)
 {
@@ -1102,7 +1115,7 @@ static const struct mmc_host_ops tmio_mmc_ops = {
 	.request	= tmio_mmc_request,
 	.set_ios	= tmio_mmc_set_ios,
 	.get_ro         = tmio_mmc_get_ro,
-	.get_cd		= mmc_gpio_get_cd,
+	.get_cd		= tmio_mmc_get_cd,
 	.enable_sdio_irq = tmio_mmc_enable_sdio_irq,
 	.multi_io_quirk	= tmio_multi_io_quirk,
 	.hw_reset	= tmio_mmc_hw_reset,
-- 
2.7.4

  parent reply	other threads:[~2017-11-24 16:26 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-24 16:24 [PATCH v2 00/22] mmc: tmio: various fixes and cleanups Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 01/22] mmc: renesas_sdhi: consolidate DMAC CONFIG options Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 02/22] mmc: renesas_sdhi: remove wrong depends on to enable compile test Masahiro Yamada
2017-11-26  9:02   ` Geert Uytterhoeven
2017-12-04 15:25   ` Wolfram Sang
2017-12-05  4:16     ` Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 03/22] mmc: renesas_sdhi: remove eprobe jump label Masahiro Yamada
2017-12-04 15:02   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 04/22] mmc: tmio: set tmio_mmc_host to driver data Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 05/22] mmc: tmio: use devm_ioremap_resource() instead of devm_ioremap() Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 06/22] mmc: tmio: move mmc_host_ops to struct tmio_mmc_host from static data Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 07/22] mmc: tmio, renesas_sdhi: set mmc_host_ops hooks directly Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 08/22] mmc: tmio: move mmc_gpio_request_cd() before mmc_add_host() Masahiro Yamada
2017-12-04 15:14   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 09/22] mmc: tmio: use mmc_can_gpio_cd() instead of checking TMIO_MMC_USE_GPIO_CD Masahiro Yamada
2017-12-04 22:22   ` Wolfram Sang
2018-01-02 12:56   ` Wolfram Sang
2018-01-12  4:06     ` Masahiro Yamada
2018-01-12 14:29   ` Ulf Hansson
2017-11-24 16:24 ` Masahiro Yamada [this message]
2017-12-04 15:13   ` [PATCH v2 10/22] mmc: tmio: support IP-builtin card detection logic Wolfram Sang
2017-12-05 15:03     ` Masahiro Yamada
2017-12-05 15:28       ` Wolfram Sang
2018-01-02 12:58   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 11/22] mmc: renesas_sdhi: remove always false condition Masahiro Yamada
2017-12-04 15:04   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 12/22] mmc: tmio,renesas_sdhi: move struct tmio_mmc_dma to renesas_sdhi.h Masahiro Yamada
2017-12-04 15:05   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 13/22] mmc: tmio,renesas_sdhi: move Renesas-specific DMA data " Masahiro Yamada
2017-12-04 15:05   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 14/22] mmc: tmio,renesas_sdhi: move ssc_tappos " Masahiro Yamada
2017-12-04 15:05   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 15/22] mmc: tmio: change bus_shift to unsigned int Masahiro Yamada
2017-12-04 15:05   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 16/22] mmc: tmio: fix never-detected card insertion bug Masahiro Yamada
2018-01-02 13:15   ` Wolfram Sang
2018-01-02 17:13     ` Wolfram Sang
2018-01-05 15:58       ` Masahiro Yamada
2018-01-13 20:59         ` Wolfram Sang
2018-01-17 16:32           ` Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 17/22] mmc: tmio: move TMIO_MASK_{READOP,WRITEOP} handling to correct place Masahiro Yamada
2018-01-16  8:01   ` Wolfram Sang
2018-01-17 16:45     ` Masahiro Yamada
2017-11-24 16:24 ` [PATCH v2 18/22] mmc: tmio: remove useless TMIO_MASK_CMD handling in tmio_mmc_host_probe() Masahiro Yamada
2018-01-16  9:44   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 19/22] mmc: tmio: ioremap memory resource in tmio_mmc_host_alloc() Masahiro Yamada
2018-01-16  9:44   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 20/22] mmc: tmio: move clk_enable/disable out of tmio_mmc_host_probe() Masahiro Yamada
2018-01-16 22:42   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 21/22] mmc: tmio: move {tmio_}mmc_of_parse() to tmio_mmc_host_alloc() Masahiro Yamada
2018-01-16 22:42   ` Wolfram Sang
2017-11-24 16:24 ` [PATCH v2 22/22] mmc: tmio: remove dma_ops from tmio_mmc_host_probe() argument Masahiro Yamada
2018-01-16 22:43   ` Wolfram Sang
2017-11-27 17:13 ` [PATCH v2 00/22] mmc: tmio: various fixes and cleanups Wolfram Sang
2017-11-28  2:18   ` Masahiro Yamada
2017-12-15  9:18 ` Ulf Hansson
2017-12-15 10:08   ` Masahiro Yamada
2017-12-15 11:12     ` Wolfram Sang
2017-12-15 13:34       ` Ulf Hansson
2017-12-15 16:30         ` Wolfram Sang
2017-12-15 16:34           ` Ulf Hansson
2017-12-15 19:08             ` Wolfram Sang
2017-12-19  3:56   ` Masahiro Yamada
2017-12-19  7:54     ` Ulf Hansson

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=1511540697-27387-11-git-send-email-yamada.masahiro@socionext.com \
    --to=yamada.masahiro@socionext.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=simon.horman@netronome.com \
    --cc=ulf.hansson@linaro.org \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /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).