public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* mmc: tmio: why enable/disable SDIO irq on every transaction with IOMOD?
@ 2016-11-29  6:23 Yasushi SHOJI
  2016-11-29  8:52 ` Ulf Hansson
  0 siblings, 1 reply; 5+ messages in thread
From: Yasushi SHOJI @ 2016-11-29  6:23 UTC (permalink / raw)
  To: linux-mmc

Hello,

We've been using tmio_mmc_pio.c and seeing the following message:

	"sh_mobile_sdhi sh_mobile_sdhi.1: timeout waiting for SD bus idle"

While searching for a fix, we found some code we don't understand.
I'm sending this question with a hope that someone would enlighten us a
bit.  So, here goes.

The SDIO spec. seems to allow sending SDIO IRQ between the blocks of
multi-block transfer.  The hardware, SCLKDIVEN bit of SD_INFO02, is
set to zero (0) and prohibits to access IOMOD bit of SDIO_MODE
register while multi-block transfer is going.

The current code, however, tries to disable SDIO IRQ by setting IOMOD
to zero in tmio_mmc_enable_sdio_irq() all the time, even during
multi-block transfer.  This prints the above waring.  What we don't
understand is that the code does both masking and disabling the IRQ.

So my question is that "What is the reason behind to disable IRQ with
SDIO_MODE?  Is there any situation which masking with SDIO_INFO1_MASK
is not enough?

Thanks you,
-- 
           yashi

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-12-01 14:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-29  6:23 mmc: tmio: why enable/disable SDIO irq on every transaction with IOMOD? Yasushi SHOJI
2016-11-29  8:52 ` Ulf Hansson
2016-12-01 10:46   ` Wolfram Sang
2016-12-01 12:46     ` Yasushi SHOJI
2016-12-01 14:49       ` Wolfram Sang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox