All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaehoon Chung <jh80.chung@samsung.com>
To: Jean-Michel Hautbois <jean-michel.hautbois@vodalys.com>,
	Hsin-Hsiang Tseng <hsinhsiangtseng@gmail.com>
Cc: Fabio Estevam <festevam@gmail.com>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>
Subject: Re: Sandisk MMC I/O errors
Date: Fri, 08 Aug 2014 12:12:28 +0900	[thread overview]
Message-ID: <53E4401C.2040708@samsung.com> (raw)
In-Reply-To: <CAL8zT=hcJOzGbDTgbp3Z7Yc5HhtGoALQ+w1Mhb9KBYSoN7dbAQ@mail.gmail.com>

On 08/08/2014 12:44 AM, Jean-Michel Hautbois wrote:
> 2014-08-07 17:02 GMT+02:00 Hsin-Hsiang Tseng <hsinhsiangtseng@gmail.com>:
>>> [    1.366291] mmcblk1: error -84 transferring data, sector 0, nr 8,
>>> cmd response 0x900, card status 0xb00
>>> [    1.374409] mmcblk1: retrying using single block read
>>> [    1.378810] mmcblk1: error -84 transferring data, sector 0, nr 8,
>>> cmd response 0x900, card status 0x0
>> At first, the kernel driver uses multiple read(cmd 18) to read data
>> from sector 0 to sector 8, but fail.
>> And then, retry by single read(cmd 17), but still fail...
>>
>>> [    2.050460]  mmcblk1boot0: unable to read partition table
>> You are trying to read boot partition data, as I remember when we
>> access boot partition, we need to sync the bus width, frequency and
>> timing(SDR, DDR).

If you don't access at boot partition, use the MMC_CAP2_BOOTPART_NOACC.
>>
>> Maybe you can turn on the MMC debug config. As a result, you can check
>> what kind of commands the kernel driver send.
>>
> 
> I don't have a big enough log buffer, but here is what I get after booting :
> [  258.901572] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  258.901632] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  259.893768] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  259.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  259.894909] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  259.894938] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  259.901578] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  259.901637] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  260.893767] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  260.893865] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  260.894906] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  260.894937] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  260.901582] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  260.901641] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  261.893765] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  261.893864] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  261.894905] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  261.894935] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  261.901576] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  261.901636] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  262.893769] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  262.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  262.894908] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  262.894938] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  262.901583] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  262.901642] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  263.893763] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  263.893861] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  263.894903] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  263.894932] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  263.901576] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  263.901637] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  264.893758] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  264.893856] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  264.894898] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  264.894928] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  264.901574] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  264.901634] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  265.893769] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  265.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  265.894908] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  265.894939] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  265.901585] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  265.901646] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  266.893766] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  266.893864] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  266.894905] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  266.894935] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  266.901612] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  266.901672] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  267.893768] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  267.893865] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  267.894907] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  267.894937] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  267.901580] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  267.901640] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  268.893769] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  268.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  268.894909] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  268.894938] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  268.901579] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
> [  268.901638] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
> [  269.893765] mmc0: starting CMD13 arg 00020000 flags 00000195
> [  269.893864] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> [  269.894905] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2
> [  269.894935] sdhci-esdhc-imx 2198000.usdhc: desired SD clock:
> 50000000, actual: 49500000
> 
> Is this normal to get an interrupt every second, and change pinctrl
> state each time ?

It seems that your system is working the polling detect scheme.
To detect the card, it's polling the card status at every time.

Best Regards,
Jaehoon Chung

> JM
> 


  reply	other threads:[~2014-08-08  3:12 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05 14:26 Sandisk MMC I/O errors Jean-Michel Hautbois
2014-08-05 15:13 ` Fabio Estevam
2014-08-05 15:20   ` Jean-Michel Hautbois
2014-08-05 15:35     ` Fabio Estevam
2014-08-05 15:44       ` Jean-Michel Hautbois
2014-08-05 15:54         ` Jean-Michel Hautbois
2014-08-05 15:59           ` Fabio Estevam
2014-08-05 16:01             ` Jean-Michel Hautbois
2014-08-06  1:15               ` Hsin-Hsiang Tseng
2014-08-06  6:54                 ` Jean-Michel Hautbois
2014-08-06 11:44                   ` Jaehoon Chung
2014-08-06 13:27                     ` Jean-Michel Hautbois
2014-08-06 13:37                       ` Fabio Estevam
2014-08-06 14:21                         ` Jean-Michel Hautbois
2014-08-07  6:59                           ` Jean-Michel Hautbois
2014-08-07  7:18                             ` Jean-Michel Hautbois
2014-08-07  7:51                               ` Jaehoon Chung
2014-08-07  7:54                                 ` Jean-Michel Hautbois
2014-08-07  8:54                                   ` Jean-Michel Hautbois
2014-08-07 15:02                                     ` Hsin-Hsiang Tseng
2014-08-07 15:44                                       ` Jean-Michel Hautbois
2014-08-08  3:12                                         ` Jaehoon Chung [this message]
2014-08-08  7:06                                           ` Jean-Michel Hautbois
2014-08-08  7:54                                             ` Jean-Michel Hautbois
2014-08-09  9:05                                               ` Hsin-Hsiang Tseng
2014-08-28  7:28                                                 ` Jean-Michel Hautbois
2014-08-28 14:20                                                   ` Hsin-Hsiang Tseng
2014-08-28 14:31                                                     ` Jean-Michel Hautbois

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=53E4401C.2040708@samsung.com \
    --to=jh80.chung@samsung.com \
    --cc=festevam@gmail.com \
    --cc=hsinhsiangtseng@gmail.com \
    --cc=jean-michel.hautbois@vodalys.com \
    --cc=linux-mmc@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.