* (unknown),
@ 2011-10-31 8:49 merez
0 siblings, 0 replies; 42+ messages in thread
From: merez @ 2011-10-31 8:49 UTC (permalink / raw)
To: linux-mmc
subscribe linux-mmc
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2018-01-29 17:17 Jones
0 siblings, 0 replies; 42+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)
This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2017-07-09 23:19 Corporate Lenders
0 siblings, 0 replies; 42+ messages in thread
From: Corporate Lenders @ 2017-07-09 23:19 UTC (permalink / raw)
Schönen Tag,
Ich bin Thomas Walter, der Finanzagent dieser Firma, bekannt als Corporate Lenders. Wir leihen Geld für Einzelpersonen und Unternehmen, die finanzielle Hilfe benötigen. Hast du einen schlechten Kredit oder du brauchst Geld, um deine Rechnungen zu bezahlen? Wir verwenden dieses Medium, um Ihnen mitzuteilen, dass wir Ihnen bei jeder Form von Darlehen helfen können, wie Sie Refinanzierung, Schuldenkonsolidierung Darlehen, persönliche Darlehen, internationale Darlehen und Business-Darlehen. Wir freuen uns, Ihnen ein Darlehen so niedrig wie der Zinssatz von 3% anzubieten.
Unsere Mission ist es, unseren Kunden einen Service zu bieten, der schnell, freundlich und stressfrei ist. Normalerweise, wenn wir alle Ihre Informationen haben, dauert es nur eine Stunde, um die Genehmigung zu finanzieren.
Wenn Sie interessiert sind, füllen Sie bitte das Darlehensantragsformular aus.
Vollständiger Name:
Geschlecht:
Benötigte Menge:
Dauer:
Tel:
Sprich Englisch?
Wir warten auf Ihre Antwort.
Sie erreichen uns per E-Mail: info@corporatelendersonline.com
Mit freundlichen Grüßen,
Thomas Walter
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2017-04-17 0:43 John Ewalt
0 siblings, 0 replies; 42+ messages in thread
From: John Ewalt @ 2017-04-17 0:43 UTC (permalink / raw)
To: linux-mmc
Hi all,
I am not sure if this is the right way to ask a question about SD cards, so
please correct me as I am new to Linux kernel development.
I am currently working with a Intel Joule SOM and development board
(Broxton M core) and when I insert the SD card, it is recognized as a
SDR104 UHS-I card. Since this host has the MMC_CAP_AGGRESSIVE_PM bit set,
it is suspended. That all works as expected. When the card is resumed,
the OCR is read expecting bit 24 (switch to 1.8 V accepted (S18A)) to be
set, but it is clear as the card is still at 1.8v signaling since it was
never powered down during the suspend.
I see 3 ways to solve this problem:
First, power down the card during suspend. I think this is the intended
behavior but there is no power manager registered to this host (as
compiled) and I'm not sure how to add one, let alone the hardware changes
necessary to implement the powering down of the sd card.
Second, don't suspend (I have tested this and it works as the card is not
suspended)
Third, the host could remember that the card was at 1.8v signaling and if
it will not "switch" to 1.8v, assume it is at 1.8v and go through the
uhs_setup anyway. I have tried this too and it works for UHS cards, but I
doubt it would be the right change.
I would appreciate any help or direction anyone can provide as I would
really like to use my fast card at the full data rates. I am currently
setup to test any suggestions you have.
Thank you all,
-John
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown)
@ 2017-03-21 6:58 Piotr Sroka
0 siblings, 0 replies; 42+ messages in thread
From: Piotr Sroka @ 2017-03-21 6:58 UTC (permalink / raw)
To: Masahiro Yamada
Cc: linux-mmc, Adrian Hunter, Ulf Hansson, Linux Kernel Mailing List,
Piotr
Subject: RE: [v4 3/3] mmc: sdhci-cadence: Update PHY delay configuration
In-reply-to: <CAK7LNARTMF2F1_3QWqF87qV6FzeYHguWbRC5DEDnvYV1M-=9TQ@mail.gmail.com>
References: <1490008372-16372-1-git-send-email-piotrs@cadence.com> <1490008855-27135-1-git-send-email-piotrs@cadence.com> <CAK7LNARTMF2F1_3QWqF87qV6FzeYHguWbRC5DEDnvYV1M-=9TQ@mail.gmail.com>
Hi Masahiro
2017-03-21 02:46 AM Masahiro Yamada <yamada.masahiro@socionext.com>:
> Hi Piotr,
>
>
> 2017-03-20 20:20 GMT+09:00 Piotr Sroka <piotrs@cadence.com>:
> > DTS properties are used instead of fixed data
> > because PHY settings can be different for different chips/boards.
> >
> > Signed-off-by: Piotr Sroka <piotrs@cadence.com>
>
>
> I found this version is a problem for me.
>
>
> > +
> > +static const struct sdhci_cdns_phy_cfg sdhci_cdns_phy_cfgs[] = {
> > + { "cdns,phy-input-delay-sd-highspeed", SDHCI_CDNS_PHY_DLY_SD_HS, },
> > + { "cdns,phy-input-delay-sd-legacy", SDHCI_CDNS_PHY_DLY_SD_DEFAULT, },
> > + { "cdns,phy-input-delay-sd-uhs-sdr12", SDHCI_CDNS_PHY_DLY_UHS_SDR12, },
> > + { "cdns,phy-input-delay-sd-uhs-sdr25", SDHCI_CDNS_PHY_DLY_UHS_SDR25, },
> > + { "cdns,phy-input-delay-sd-uhs-sdr50", SDHCI_CDNS_PHY_DLY_UHS_SDR50, },
> > + { "cdns,phy-input-delay-sd-uhs-ddr50", SDHCI_CDNS_PHY_DLY_UHS_DDR50, },
> > + { "cdns,phy-input-delay-mmc-highspeed", SDHCI_CDNS_PHY_DLY_EMMC_SDR, },
> > + { "cdns,phy-input-delay-mmc-ddr", SDHCI_CDNS_PHY_DLY_EMMC_DDR, },
> > + { "cdns,phy-dll-delay-sdclk", SDHCI_CDNS_PHY_DLY_SDCLK, },
> > + { "cdns,phy-dll-delay-sdclk-hsmmc", SDHCI_CDNS_PHY_DLY_HSMMC, },
> > + { "cdns,phy-dll-delay-strobe", SDHCI_CDNS_PHY_DLY_STROBE, },
> > +};
> > +
>
>
> I see mmc-legacy property in v1,
> but it is missing now.
>
>
> > static int sdhci_cdns_write_phy_reg(struct sdhci_cdns_priv *priv,
> > u8 addr, u8 data)
> > {
> > @@ -90,13 +113,26 @@ static int sdhci_cdns_write_phy_reg(struct sdhci_cdns_priv *priv,
> > return 0;
> > }
> >
> > -static void sdhci_cdns_phy_init(struct sdhci_cdns_priv *priv)
> > +static int sdhci_cdns_phy_init(struct device_node *np,
> > + struct sdhci_cdns_priv *priv)
> > {
> > - sdhci_cdns_write_phy_reg(priv, SDHCI_CDNS_PHY_DLY_SD_HS, 4);
> > - sdhci_cdns_write_phy_reg(priv, SDHCI_CDNS_PHY_DLY_SD_DEFAULT, 4);
> > - sdhci_cdns_write_phy_reg(priv, SDHCI_CDNS_PHY_DLY_EMMC_LEGACY, 9);
> > - sdhci_cdns_write_phy_reg(priv, SDHCI_CDNS_PHY_DLY_EMMC_SDR, 2);
> > - sdhci_cdns_write_phy_reg(priv, SDHCI_CDNS_PHY_DLY_EMMC_DDR, 3);
>
>
> I need to set SDHCI_CDNS_PHY_DLY_EMMC_LEGACY to 9 for my SoC.
>
> Maybe, do we need a DT property for this, too?
>
I can add it but could you check if you realy need it? There is no selection MMC legacy mode
in this driver.
Best Regards
Piotr Sroka
^ permalink raw reply [flat|nested] 42+ messages in thread* (unknown),
@ 2017-01-21 17:47 amit mahadik
0 siblings, 0 replies; 42+ messages in thread
From: amit mahadik @ 2017-01-21 17:47 UTC (permalink / raw)
To: linux-mmc
[-- Attachment #1: Type: text/plain, Size: 719 bytes --]
Hello,
I am using ARM (CortexA9)development board which has SPI
controller running at 5MHz. I want to interface MMC card on SPI bus. I
have made changes to my board.c file to include the mmc_spi driver and
mentioned the Chip select, mode (MODE 0) and frequency of operation
(started with 40kHz tried with 25MHz as well). The initial card
detection goes well. However, there are CRC errors when the block
layer tries to read the partition table. This issue is reproducible.
I have attached log for reference. The card gets detected on
Linux/Windows PC. The card is formatted with DOS partition (vfat
single partition).
Linux kernel version Used : 4.4.16
Please help me regarding this issue.
Regards,
Amit.
[-- Attachment #2: log.txt --]
[-- Type: text/plain, Size: 58403 bytes --]
# modprobe mmc_core
# modprobe mmc_block
# modprobe mmc_spi
[ 1218.212971] mmc0: SPI card removed
[ 1218.255628] mmc0: clock 0Hz busmode 2 powermode 0 cs 1 Vdd 0 width 0 timing 0
[ 1218.255651] mmc_spi spi1.1: mmc_spi: power off (0)
[ 1250.267741] mmc0: clock 0Hz busmode 2 powermode 1 cs 1 Vdd 23 width 0 timing 0
[ 1250.267766] mmc_spi spi1.1: mmc_spi: power up (23)
[ 1250.267779] mmc_spi spi1.1: Initial signal voltage of 3.3v
[ 1250.285035] mmc0: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 23 width 0 timing 0
[ 1250.285058] mmc_spi spi1.1: mmc_spi: power on (23)
[ 1250.285306] mmc_spi spi1.1: setup: unsupported mode bits 4
[ 1250.290797] mmc_spi spi1.1: can't change chip-select polarity
[ 1250.296728] mmc_spi spi1.1: mmc_spi: clock to 400000 Hz, 0
[ 1250.315041] mmc_spi spi1.1: SD/MMC host mmc0, no DMA, no WP, no poweroff
[ 1250.315078] mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
[ 1250.315091] mmc0: starting CMD52 arg 00000c00 flags 00000195
[ 1250.315109] mmc_spi spi1.1: mmc_spi: CMD52, resp R2/R5
[ 1250.315779] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 1250.315795] mmc0: starting CMD52 arg 80000c08 flags 00000195
[ 1250.315809] mmc_spi spi1.1: mmc_spi: CMD52, resp R2/R5
[ 1250.316443] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 1250.316457] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 1250.316471] mmc_spi spi1.1: mmc_spi: CMD0, resp R1
[ 1250.316586] mmc0: req done (CMD0): 0: 00000001 00000000 00000000 00000000
[ 1250.317597] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 1250.317611] mmc_spi spi1.1: mmc_spi: CMD8, resp R3/R4/R7
[ 1250.317740] mmc0: req done (CMD8): 0: 00000001 000001aa 00000000 00000000
[ 1250.317754] mmc0: starting CMD5 arg 00000000 flags 000002e1
[ 1250.317767] mmc_spi spi1.1: mmc_spi: CMD5, resp R3/R4/R7
[ 1250.317890] mmc_spi spi1.1: ... CMD5 response SPI_R3/R4/R: resp 0005 ffffffff
[ 1250.317906] mmc0: req done (CMD5): -38: 00000005 ffffffff 00000000 00000000
[ 1250.317921] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 1250.317934] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.318048] mmc0: req done (CMD55): 0: 00000001 00000000 00000000 00000000
[ 1250.318062] mmc0: starting CMD41 arg 00000000 flags 000000e1
[ 1250.318075] mmc_spi spi1.1: mmc_spi: CMD41, resp R1
[ 1250.318189] mmc0: req done (CMD41): 0: 00000001 00000000 00000000 00000000
[ 1250.318205] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 1250.318218] mmc_spi spi1.1: mmc_spi: CMD0, resp R1
[ 1250.318329] mmc0: req done (CMD0): 0: 00000001 00000000 00000000 00000000
[ 1250.319340] mmc0: starting CMD58 arg 00000000 flags 00000280
[ 1250.319353] mmc_spi spi1.1: mmc_spi: CMD58, resp R3/R4/R7
[ 1250.319482] mmc0: req done (CMD58): 0: 00000001 00ff8000 00000000 00000000
[ 1250.319496] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 1250.319509] mmc_spi spi1.1: mmc_spi: CMD0, resp R1
[ 1250.319622] mmc0: req done (CMD0): 0: 00000001 00000000 00000000 00000000
[ 1250.320633] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 1250.320646] mmc_spi spi1.1: mmc_spi: CMD8, resp R3/R4/R7
[ 1250.320774] mmc0: req done (CMD8): 0: 00000001 000001aa 00000000 00000000
[ 1250.320788] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 1250.320801] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.320914] mmc0: req done (CMD55): 0: 00000001 00000000 00000000 00000000
[ 1250.320928] mmc0: starting CMD41 arg 40000000 flags 000000e1
[ 1250.320940] mmc_spi spi1.1: mmc_spi: CMD41, resp R1
[ 1250.321052] mmc0: req done (CMD41): 0: 00000001 00000000 00000000 00000000
[ 1250.335043] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 1250.335080] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.336624] mmc0: req done (CMD55): 0: 00000001 00000000 00000000 00000000
[ 1250.336650] mmc0: starting CMD41 arg 40000000 flags 000000e1
[ 1250.336672] mmc_spi spi1.1: mmc_spi: CMD41, resp R1
[ 1250.336799] mmc0: req done (CMD41): 0: 00000001 00000000 00000000 00000000
[ 1250.355025] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 1250.355049] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.355175] mmc0: req done (CMD55): 0: 00000001 00000000 00000000 00000000
[ 1250.355195] mmc0: starting CMD41 arg 40000000 flags 000000e1
[ 1250.355212] mmc_spi spi1.1: mmc_spi: CMD41, resp R1
[ 1250.355330] mmc0: req done (CMD41): 0: 00000000 00000000 00000000 00000000
[ 1250.355352] mmc0: starting CMD10 arg 00000000 flags 000000b5
[ 1250.355367] mmc0: blksz 16 blocks 1 flags 00000200 tsac 0 ms nsac 64
[ 1250.355384] mmc_spi spi1.1: mmc_spi: CMD10, resp R1
[ 1250.355469] mmc_spi spi1.1: mmc_spi: read block, 16 bytes
[ 1250.355672] mmc0: req done (CMD10): 0: 00000000 00000000 00000000 00000000
[ 1250.355686] mmc0: 16 bytes transferred: 0
[ 1250.355715] mmc0: starting CMD9 arg 00000000 flags 000000b5
[ 1250.355729] mmc0: blksz 16 blocks 1 flags 00000200 tsac 0 ms nsac 64
[ 1250.355746] mmc_spi spi1.1: mmc_spi: CMD9, resp R1
[ 1250.355830] mmc_spi spi1.1: mmc_spi: read block, 16 bytes
[ 1250.356029] mmc0: req done (CMD9): 0: 00000000 00000000 00000000 00000000
[ 1250.356042] mmc0: 16 bytes transferred: 0
[ 1250.356063] mmc0: starting CMD55 arg 00000000 flags 00000095
[ 1250.356081] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.356198] mmc0: req done (CMD55): 0: 00000000 00000000 00000000 00000000
[ 1250.356219] mmc0: starting CMD51 arg 00000000 flags 000000b5
[ 1250.356233] mmc0: blksz 8 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.356251] mmc_spi spi1.1: mmc_spi: CMD51, resp R1
[ 1250.356333] mmc_spi spi1.1: mmc_spi: read block, 8 bytes
[ 1250.356685] mmc0: req done (CMD51): 0: 00000000 00000000 00000000 00000000
[ 1250.356698] mmc0: 8 bytes transferred: 0
[ 1250.356720] mmc0: starting CMD55 arg 00000000 flags 00000095
[ 1250.356737] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.356854] mmc0: req done (CMD55): 0: 00000000 00000000 00000000 00000000
[ 1250.356873] mmc0: starting CMD13 arg 00000000 flags 000001b5
[ 1250.356887] mmc0: blksz 64 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.356904] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.357024] mmc_spi spi1.1: mmc_spi: read block, 64 bytes
[ 1250.357571] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.357585] mmc0: 64 bytes transferred: 0
[ 1250.357607] mmc0: starting CMD6 arg 00fffff0 flags 000000b5
[ 1250.357622] mmc0: blksz 64 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.357639] mmc_spi spi1.1: mmc_spi: CMD6, resp R1
[ 1250.357721] mmc_spi spi1.1: mmc_spi: read block, 64 bytes
[ 1250.358341] mmc0: req done (CMD6): 0: 00000000 00000000 00000000 00000000
[ 1250.358355] mmc0: 64 bytes transferred: 0
[ 1250.358374] mmc0: starting CMD59 arg 00000001 flags 00000080
[ 1250.358392] mmc_spi spi1.1: mmc_spi: CMD59, resp R1
[ 1250.358509] mmc0: req done (CMD59): 0: 00000000 00000000 00000000 00000000
[ 1250.358525] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1250.366575] mmc0: clock 5000000Hz busmode 2 powermode 2 cs 1 Vdd 23 width 0 timing 0
[ 1250.366597] mmc_spi spi1.1: mmc_spi: clock to 5000000 Hz, 0
[ 1250.366627] mmc0: new SDHC card on SPI
[ 1250.371271] INDUS mmcblk0: mmc0:0000 SD 14.9 GiB
[ 1250.476901] mmc0: starting CMD18 arg 00000000 flags 000000b5
[ 1250.476923] mmc0: blksz 512 blocks 8 flags 00000200 tsac 100 ms nsac 0
[ 1250.476937] mmc0: CMD12 arg 00000000 flags 00000095
[ 1250.476962] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.477060] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.482948] mmc_spi spi1.1: read - crc error: crc_val=0x2893, computed=0x6855 len=512
[ 1250.482964] mmc_spi spi1.1: read status -84
[ 1250.482978] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.483136] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.483220] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.488641] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.488659] mmc_spi spi1.1: read status -84
[ 1250.488674] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.488832] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.488917] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.494298] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.494312] mmc_spi spi1.1: read status -84
[ 1250.494326] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.494482] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.494567] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.499936] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.499953] mmc_spi spi1.1: read status -84
[ 1250.499968] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.500126] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.500211] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.505637] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.505654] mmc_spi spi1.1: read status -84
[ 1250.505668] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.505829] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.505914] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.511284] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.511299] mmc_spi spi1.1: read status -84
[ 1250.511313] mmc_spi spi1.1: mmc_spi: CMD12, resp R1
[ 1250.511435] mmc0: req done (CMD18): 0: 00000000 00000000 00000000 00000000
[ 1250.511449] mmc0: 0 bytes transferred: -84
[ 1250.511464] mmc0: (CMD12): 0: 00000000 00000000 00000000 00000000
[ 1250.511492] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.511509] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.511632] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.511652] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 1250.520748] mmc0: clock 0Hz busmode 2 powermode 0 cs 1 Vdd 0 width 0 timing 0
[ 1250.520767] mmc_spi spi1.1: mmc_spi: power off (0)
[ 1250.522782] mmc0: clock 0Hz busmode 2 powermode 1 cs 1 Vdd 23 width 0 timing 0
[ 1250.522798] mmc_spi spi1.1: mmc_spi: power up (23)
[ 1250.522811] mmc_spi spi1.1: Initial signal voltage of 3.3v
[ 1250.535027] mmc0: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 23 width 0 timing 0
[ 1250.535049] mmc_spi spi1.1: mmc_spi: power on (23)
[ 1250.535283] mmc_spi spi1.1: setup: unsupported mode bits 4
[ 1250.540771] mmc_spi spi1.1: can't change chip-select polarity
[ 1250.546560] mmc_spi spi1.1: mmc_spi: clock to 400000 Hz, 0
[ 1250.565024] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 1250.565047] mmc_spi spi1.1: mmc_spi: CMD0, resp R1
[ 1250.565172] mmc0: req done (CMD0): 0: 00000001 00000000 00000000 00000000
[ 1250.566189] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 1250.566207] mmc_spi spi1.1: mmc_spi: CMD8, resp R3/R4/R7
[ 1250.566340] mmc0: req done (CMD8): 0: 00000001 000001aa 00000000 00000000
[ 1250.566360] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 1250.566377] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.566495] mmc0: req done (CMD55): 0: 00000001 00000000 00000000 00000000
[ 1250.566514] mmc0: starting CMD41 arg 40000000 flags 000000e1
[ 1250.566530] mmc_spi spi1.1: mmc_spi: CMD41, resp R1
[ 1250.566647] mmc0: req done (CMD41): 0: 00000001 00000000 00000000 00000000
[ 1250.585029] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 1250.585054] mmc_spi spi1.1: mmc_spi: CMD55, resp R1
[ 1250.585179] mmc0: req done (CMD55): 0: 00000001 00000000 00000000 00000000
[ 1250.585198] mmc0: starting CMD41 arg 40000000 flags 000000e1
[ 1250.585216] mmc_spi spi1.1: mmc_spi: CMD41, resp R1
[ 1250.585336] mmc0: req done (CMD41): 0: 00000000 00000000 00000000 00000000
[ 1250.585358] mmc0: starting CMD10 arg 00000000 flags 000000b5
[ 1250.585373] mmc0: blksz 16 blocks 1 flags 00000200 tsac 0 ms nsac 64
[ 1250.585390] mmc_spi spi1.1: mmc_spi: CMD10, resp R1
[ 1250.585475] mmc_spi spi1.1: mmc_spi: read block, 16 bytes
[ 1250.585691] mmc0: req done (CMD10): 0: 00000000 00000000 00000000 00000000
[ 1250.585705] mmc0: 16 bytes transferred: 0
[ 1250.585727] mmc0: starting CMD59 arg 00000001 flags 00000080
[ 1250.585745] mmc_spi spi1.1: mmc_spi: CMD59, resp R1
[ 1250.585864] mmc0: req done (CMD59): 0: 00000000 00000000 00000000 00000000
[ 1250.585885] mmc0: clock 5000000Hz busmode 2 powermode 2 cs 1 Vdd 23 width 0 timing 0
[ 1250.585902] mmc_spi spi1.1: mmc_spi: clock to 5000000 Hz, 0
[ 1250.585916] mmc0: tried to reset card
[ 1250.589585] mmc0: starting CMD18 arg 00000000 flags 000000b5
[ 1250.589600] mmc0: blksz 512 blocks 8 flags 00000200 tsac 100 ms nsac 0
[ 1250.589614] mmc0: CMD12 arg 00000000 flags 00000095
[ 1250.589631] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.589717] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.595141] mmc_spi spi1.1: read - crc error: crc_val=0x2817, computed=0x6855 len=512
[ 1250.595156] mmc_spi spi1.1: read status -84
[ 1250.595170] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.595328] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.595406] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.600786] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.600803] mmc_spi spi1.1: read status -84
[ 1250.600818] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.600977] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.601061] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.606475] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.606491] mmc_spi spi1.1: read status -84
[ 1250.606506] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.606668] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.606754] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.612077] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.612092] mmc_spi spi1.1: read status -84
[ 1250.612105] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.612262] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.612346] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.617699] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.617715] mmc_spi spi1.1: read status -84
[ 1250.617729] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.617887] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1250.617970] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.623330] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1250.623345] mmc_spi spi1.1: read status -84
[ 1250.623359] mmc_spi spi1.1: mmc_spi: CMD12, resp R1
[ 1250.623478] mmc0: req done (CMD18): 0: 00000000 00000000 00000000 00000000
[ 1250.623492] mmc0: 0 bytes transferred: -84
[ 1250.623507] mmc0: (CMD12): 0: 00000000 00000000 00000000 00000000
[ 1250.623527] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.623545] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.623666] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.623686] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 1250.632773] mmcblk0: retrying using single block read
[ 1250.637863] mmc0: starting CMD17 arg 00000000 flags 000000b5
[ 1250.637880] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.637899] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.637988] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.643351] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1250.643366] mmc_spi spi1.1: read status -84
[ 1250.643380] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.643536] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.643619] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.648944] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1250.648962] mmc_spi spi1.1: read status -84
[ 1250.648976] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.649134] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.649218] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.654576] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1250.654591] mmc_spi spi1.1: read status -84
[ 1250.654604] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.654761] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.654844] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.660221] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1250.660237] mmc_spi spi1.1: read status -84
[ 1250.660252] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.660410] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.660494] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.665901] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1250.665919] mmc_spi spi1.1: read status -84
[ 1250.665933] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.666094] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.666178] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.671502] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1250.671517] mmc_spi spi1.1: read status -84
[ 1250.671538] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.671552] mmc0: 0 bytes transferred: -84
[ 1250.671573] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.671592] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.671715] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.671735] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 1250.680820] blk_update_request: 6 callbacks suppressed
[ 1250.685993] blk_update_request: I/O error, dev mmcblk0, sector 0
[ 1250.692014] mmc0: starting CMD17 arg 00000001 flags 000000b5
[ 1250.692029] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.692050] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.692138] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.697495] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1250.697512] mmc_spi spi1.1: read status -84
[ 1250.697526] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.697684] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.697768] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.703148] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1250.703162] mmc_spi spi1.1: read status -84
[ 1250.703175] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.703332] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.703415] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.708733] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1250.708750] mmc_spi spi1.1: read status -84
[ 1250.708764] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.708921] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.709004] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.714382] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1250.714396] mmc_spi spi1.1: read status -84
[ 1250.714410] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.714566] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.714649] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.719996] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1250.720012] mmc_spi spi1.1: read status -84
[ 1250.720026] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.720183] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.720268] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.725642] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1250.725658] mmc_spi spi1.1: read status -84
[ 1250.725680] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.725693] mmc0: 0 bytes transferred: -84
[ 1250.725714] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.725732] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.725856] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.725875] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x0, card status 0x0
[ 1250.734927] blk_update_request: I/O error, dev mmcblk0, sector 1
[ 1250.740975] mmc0: starting CMD17 arg 00000002 flags 000000b5
[ 1250.740994] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.741017] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.741107] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.746491] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1250.746507] mmc_spi spi1.1: read status -84
[ 1250.746521] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.746678] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.746761] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.752110] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1250.752124] mmc_spi spi1.1: read status -84
[ 1250.752138] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.752294] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.752377] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.757742] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1250.757758] mmc_spi spi1.1: read status -84
[ 1250.757772] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.757930] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.758015] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.763360] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1250.763374] mmc_spi spi1.1: read status -84
[ 1250.763388] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.763545] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.763628] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.768985] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1250.769002] mmc_spi spi1.1: read status -84
[ 1250.769017] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.769174] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.769256] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.774618] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1250.774632] mmc_spi spi1.1: read status -84
[ 1250.774654] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.774667] mmc0: 0 bytes transferred: -84
[ 1250.774687] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.774704] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.774826] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.774847] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x0, card status 0x0
[ 1250.783936] blk_update_request: I/O error, dev mmcblk0, sector 2
[ 1250.789976] mmc0: starting CMD17 arg 00000003 flags 000000b5
[ 1250.789992] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.790011] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.790101] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.795474] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1250.795491] mmc_spi spi1.1: read status -84
[ 1250.795505] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.795665] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.795748] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.801072] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1250.801086] mmc_spi spi1.1: read status -84
[ 1250.801100] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.801256] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.801339] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.806717] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1250.806734] mmc_spi spi1.1: read status -84
[ 1250.806748] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.806908] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.806991] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.812349] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1250.812363] mmc_spi spi1.1: read status -84
[ 1250.812376] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.812532] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.812613] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.817974] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1250.817991] mmc_spi spi1.1: read status -84
[ 1250.818005] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.818163] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.818246] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.823586] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1250.823600] mmc_spi spi1.1: read status -84
[ 1250.823622] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.823635] mmc0: 0 bytes transferred: -84
[ 1250.823655] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.823673] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.823795] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.823816] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x0, card status 0x0
[ 1250.832905] blk_update_request: I/O error, dev mmcblk0, sector 3
[ 1250.838945] mmc0: starting CMD17 arg 00000004 flags 000000b5
[ 1250.838962] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.838982] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.839071] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.844408] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1250.844423] mmc_spi spi1.1: read status -84
[ 1250.844437] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.844595] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.844678] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.850063] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1250.850080] mmc_spi spi1.1: read status -84
[ 1250.850094] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.850251] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.850334] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.855731] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1250.855747] mmc_spi spi1.1: read status -84
[ 1250.855761] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.855917] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.855999] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.861366] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1250.861380] mmc_spi spi1.1: read status -84
[ 1250.861394] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.861550] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.861631] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.866990] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1250.867005] mmc_spi spi1.1: read status -84
[ 1250.867019] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.867175] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.867258] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.872554] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1250.872568] mmc_spi spi1.1: read status -84
[ 1250.872589] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.872602] mmc0: 0 bytes transferred: -84
[ 1250.872623] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.872640] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.872760] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.872779] mmcblk0: error -84 transferring data, sector 4, nr 4, cmd response 0x0, card status 0x0
[ 1250.881859] blk_update_request: I/O error, dev mmcblk0, sector 4
[ 1250.887900] mmc0: starting CMD17 arg 00000005 flags 000000b5
[ 1250.887917] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.887936] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.888026] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.893388] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1250.893403] mmc_spi spi1.1: read status -84
[ 1250.893417] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.893572] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.893655] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.899039] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1250.899055] mmc_spi spi1.1: read status -84
[ 1250.899070] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.899226] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.899310] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.904649] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1250.904664] mmc_spi spi1.1: read status -84
[ 1250.904678] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.904834] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.904915] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.910262] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1250.910279] mmc_spi spi1.1: read status -84
[ 1250.910293] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.910449] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.910532] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.915913] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1250.915930] mmc_spi spi1.1: read status -84
[ 1250.915945] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.916104] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.916189] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.921519] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1250.921534] mmc_spi spi1.1: read status -84
[ 1250.921556] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.921569] mmc0: 0 bytes transferred: -84
[ 1250.921591] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.921608] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.921729] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.921749] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x0, card status 0x0
[ 1250.930837] blk_update_request: I/O error, dev mmcblk0, sector 5
[ 1250.936874] mmc0: starting CMD17 arg 00000006 flags 000000b5
[ 1250.936890] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.936910] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.937000] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.942366] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1250.942381] mmc_spi spi1.1: read status -84
[ 1250.942395] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.942551] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.942634] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.947989] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1250.948005] mmc_spi spi1.1: read status -84
[ 1250.948019] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.948177] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.948260] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.953618] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1250.953633] mmc_spi spi1.1: read status -84
[ 1250.953646] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.953801] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.953883] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.959224] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1250.959241] mmc_spi spi1.1: read status -84
[ 1250.959255] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.959413] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.959496] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.964853] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1250.964867] mmc_spi spi1.1: read status -84
[ 1250.964880] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.965074] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.965163] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.970510] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1250.970526] mmc_spi spi1.1: read status -84
[ 1250.970548] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1250.970561] mmc0: 0 bytes transferred: -84
[ 1250.970582] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1250.970600] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1250.970720] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1250.970740] mmcblk0: error -84 transferring data, sector 6, nr 2, cmd response 0x0, card status 0x0
[ 1250.979825] blk_update_request: I/O error, dev mmcblk0, sector 6
[ 1250.985862] mmc0: starting CMD17 arg 00000007 flags 000000b5
[ 1250.985877] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1250.985897] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.985986] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.991321] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1250.991335] mmc_spi spi1.1: read status -84
[ 1250.991349] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.991506] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.991588] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1250.997001] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1250.997018] mmc_spi spi1.1: read status -84
[ 1250.997033] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1250.997192] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1250.997276] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.002625] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.002641] mmc_spi spi1.1: read status -84
[ 1251.002654] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.002812] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.002896] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.008222] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.008240] mmc_spi spi1.1: read status -84
[ 1251.008254] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.008411] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.008496] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.013848] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.013862] mmc_spi spi1.1: read status -84
[ 1251.013875] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.014029] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.014111] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.019464] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.019480] mmc_spi spi1.1: read status -84
[ 1251.019503] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.019517] mmc0: 0 bytes transferred: -84
[ 1251.019538] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.019557] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.019679] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.019700] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x0, card status 0x0
[ 1251.028785] blk_update_request: I/O error, dev mmcblk0, sector 7
[ 1251.034804] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[ 1251.042099] mmc0: starting CMD18 arg 00000000 flags 000000b5
[ 1251.042118] mmc0: blksz 512 blocks 8 flags 00000200 tsac 100 ms nsac 0
[ 1251.042132] mmc0: CMD12 arg 00000000 flags 00000095
[ 1251.042153] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1251.042245] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.047570] mmc_spi spi1.1: read - crc error: crc_val=0x2800, computed=0x6855 len=512
[ 1251.047588] mmc_spi spi1.1: read status -84
[ 1251.047602] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.047759] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1251.047843] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.053180] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1251.053194] mmc_spi spi1.1: read status -84
[ 1251.053208] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.053363] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1251.053447] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.058822] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1251.058839] mmc_spi spi1.1: read status -84
[ 1251.058853] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.059012] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1251.059095] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.064441] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1251.064455] mmc_spi spi1.1: read status -84
[ 1251.064469] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.064626] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1251.064709] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.070119] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1251.070136] mmc_spi spi1.1: read status -84
[ 1251.070150] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.070308] mmc_spi spi1.1: mmc_spi: CMD18, resp R1
[ 1251.070393] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.075752] mmc_spi spi1.1: read - crc error: crc_val=0x2828, computed=0x6855 len=512
[ 1251.075768] mmc_spi spi1.1: read status -84
[ 1251.075783] mmc_spi spi1.1: mmc_spi: CMD12, resp R1
[ 1251.075907] mmc0: req done (CMD18): 0: 00000000 00000000 00000000 00000000
[ 1251.075922] mmc0: 0 bytes transferred: -84
[ 1251.075936] mmc0: (CMD12): 0: 00000000 00000000 00000000 00000000
[ 1251.075964] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.075982] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.076105] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.076126] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 1251.085211] mmcblk0: retrying using single block read
[ 1251.090271] mmc0: starting CMD17 arg 00000000 flags 000000b5
[ 1251.090287] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.090308] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.090399] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.095841] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1251.095858] mmc_spi spi1.1: read status -84
[ 1251.095873] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.096030] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.096114] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.101464] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1251.101478] mmc_spi spi1.1: read status -84
[ 1251.101492] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.101650] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.101733] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.107047] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1251.107063] mmc_spi spi1.1: read status -84
[ 1251.107077] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.107236] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.107320] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.112707] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1251.112721] mmc_spi spi1.1: read status -84
[ 1251.112734] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.112889] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.112972] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.118357] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1251.118373] mmc_spi spi1.1: read status -84
[ 1251.118387] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.118543] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.118626] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.123979] mmc_spi spi1.1: read - crc error: crc_val=0x2870, computed=0x6855 len=512
[ 1251.123994] mmc_spi spi1.1: read status -84
[ 1251.124015] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.124028] mmc0: 0 bytes transferred: -84
[ 1251.124049] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.124067] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.124188] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.124208] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 1251.133295] blk_update_request: I/O error, dev mmcblk0, sector 0
[ 1251.139333] mmc0: starting CMD17 arg 00000001 flags 000000b5
[ 1251.139349] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.139369] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.139460] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.144758] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1251.144773] mmc_spi spi1.1: read status -84
[ 1251.144787] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.144944] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.145060] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.150387] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1251.150403] mmc_spi spi1.1: read status -84
[ 1251.150418] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.150575] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.150658] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.156034] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1251.156050] mmc_spi spi1.1: read status -84
[ 1251.156064] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.156222] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.156305] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.161692] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1251.161706] mmc_spi spi1.1: read status -84
[ 1251.161720] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.161876] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.161959] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.167304] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1251.167321] mmc_spi spi1.1: read status -84
[ 1251.167335] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.167493] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.167576] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.172912] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xc18c len=512
[ 1251.172927] mmc_spi spi1.1: read status -84
[ 1251.172949] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.172963] mmc0: 0 bytes transferred: -84
[ 1251.172983] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.173001] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.173122] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.173143] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x0, card status 0x0
[ 1251.182231] blk_update_request: I/O error, dev mmcblk0, sector 1
[ 1251.188280] mmc0: starting CMD17 arg 00000002 flags 000000b5
[ 1251.188297] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.188318] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.188406] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.193777] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1251.193791] mmc_spi spi1.1: read status -84
[ 1251.193805] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.193960] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.194043] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.199377] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1251.199394] mmc_spi spi1.1: read status -84
[ 1251.199409] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.199567] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.199649] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.205033] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1251.205050] mmc_spi spi1.1: read status -84
[ 1251.205064] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.205226] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.205311] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.210702] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1251.210718] mmc_spi spi1.1: read status -84
[ 1251.210731] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.210886] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.210968] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.216367] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1251.216383] mmc_spi spi1.1: read status -84
[ 1251.216397] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.216554] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.216637] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.221959] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xf9af len=512
[ 1251.221974] mmc_spi spi1.1: read status -84
[ 1251.221996] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.222009] mmc0: 0 bytes transferred: -84
[ 1251.222029] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.222047] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.222168] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.222188] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x0, card status 0x0
[ 1251.231278] mmc0: starting CMD17 arg 00000003 flags 000000b5
[ 1251.231296] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.231318] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.231410] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.236819] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1251.236836] mmc_spi spi1.1: read status -84
[ 1251.236850] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.237006] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.237089] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.242455] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1251.242470] mmc_spi spi1.1: read status -84
[ 1251.242483] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.242638] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.242720] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.248074] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1251.248091] mmc_spi spi1.1: read status -84
[ 1251.248105] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.248262] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.248344] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.253704] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1251.253718] mmc_spi spi1.1: read status -84
[ 1251.253732] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.253887] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.253970] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.259321] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1251.259337] mmc_spi spi1.1: read status -84
[ 1251.259351] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.259507] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.259590] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.264944] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x8589 len=512
[ 1251.264958] mmc_spi spi1.1: read status -84
[ 1251.265016] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.265034] mmc0: 0 bytes transferred: -84
[ 1251.265059] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.265078] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.265202] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.265223] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x0, card status 0x0
[ 1251.274281] mmc0: starting CMD17 arg 00000004 flags 000000b5
[ 1251.274297] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.274316] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.274402] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.279721] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1251.279738] mmc_spi spi1.1: read status -84
[ 1251.279752] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.279910] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.279993] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.285401] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1251.285417] mmc_spi spi1.1: read status -84
[ 1251.285431] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.285589] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.285672] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.291022] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1251.291036] mmc_spi spi1.1: read status -84
[ 1251.291050] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.291205] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.291286] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.296641] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1251.296657] mmc_spi spi1.1: read status -84
[ 1251.296670] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.296827] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.296911] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.302271] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1251.302286] mmc_spi spi1.1: read status -84
[ 1251.302300] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.302455] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.302537] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.307891] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x64e6 len=512
[ 1251.307907] mmc_spi spi1.1: read status -84
[ 1251.307929] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.307942] mmc0: 0 bytes transferred: -84
[ 1251.307963] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.307981] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.308104] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.308123] mmcblk0: error -84 transferring data, sector 4, nr 4, cmd response 0x0, card status 0x0
[ 1251.317214] mmc0: starting CMD17 arg 00000005 flags 000000b5
[ 1251.317233] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.317255] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.317346] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.322669] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1251.322685] mmc_spi spi1.1: read status -84
[ 1251.322699] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.322855] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.322937] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.328315] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1251.328331] mmc_spi spi1.1: read status -84
[ 1251.328344] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.328502] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.328585] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.333920] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1251.333934] mmc_spi spi1.1: read status -84
[ 1251.333948] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.334105] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.334187] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.339555] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1251.339572] mmc_spi spi1.1: read status -84
[ 1251.339586] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.339743] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.339827] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.345179] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1251.345194] mmc_spi spi1.1: read status -84
[ 1251.345212] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.345366] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.345452] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.350829] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0xb54b len=512
[ 1251.350844] mmc_spi spi1.1: read status -84
[ 1251.350866] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.350879] mmc0: 0 bytes transferred: -84
[ 1251.350899] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.350917] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.351039] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.351059] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x0, card status 0x0
[ 1251.360157] mmc0: starting CMD17 arg 00000006 flags 000000b5
[ 1251.360175] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.360197] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.360286] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.365666] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1251.365682] mmc_spi spi1.1: read status -84
[ 1251.365696] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.365856] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.365940] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.371243] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1251.371258] mmc_spi spi1.1: read status -84
[ 1251.371273] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.371430] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.371512] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.376893] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1251.376910] mmc_spi spi1.1: read status -84
[ 1251.376924] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.377081] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.377165] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.382510] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1251.382525] mmc_spi spi1.1: read status -84
[ 1251.382539] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.382697] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.382780] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.388130] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1251.388146] mmc_spi spi1.1: read status -84
[ 1251.388160] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.388317] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.388401] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.393751] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x1ce0 len=512
[ 1251.393766] mmc_spi spi1.1: read status -84
[ 1251.393787] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.393800] mmc0: 0 bytes transferred: -84
[ 1251.393820] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.393837] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.393959] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.393980] mmcblk0: error -84 transferring data, sector 6, nr 2, cmd response 0x0, card status 0x0
[ 1251.403073] mmc0: starting CMD17 arg 00000007 flags 000000b5
[ 1251.403091] mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
[ 1251.403113] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.403206] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.408549] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.408565] mmc_spi spi1.1: read status -84
[ 1251.408580] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.408737] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.408820] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.414155] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.414170] mmc_spi spi1.1: read status -84
[ 1251.414183] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.414338] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.414421] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.419751] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.419769] mmc_spi spi1.1: read status -84
[ 1251.419783] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.419940] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.420023] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.425394] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.425410] mmc_spi spi1.1: read status -84
[ 1251.425424] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.425583] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.425667] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.430989] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.431003] mmc_spi spi1.1: read status -84
[ 1251.431017] mmc_spi spi1.1: mmc_spi: CMD12, resp R1B
[ 1251.431174] mmc_spi spi1.1: mmc_spi: CMD17, resp R1
[ 1251.431257] mmc_spi spi1.1: mmc_spi: read block, 512 bytes
[ 1251.436628] mmc_spi spi1.1: read - crc error: crc_val=0x0000, computed=0x4ce4 len=512
[ 1251.436644] mmc_spi spi1.1: read status -84
[ 1251.436667] mmc0: req done (CMD17): 0: 00000000 00000000 00000000 00000000
[ 1251.436680] mmc0: 0 bytes transferred: -84
[ 1251.436701] mmc0: starting CMD13 arg 00000000 flags 00000195
[ 1251.436719] mmc_spi spi1.1: mmc_spi: CMD13, resp R2/R5
[ 1251.436844] mmc0: req done (CMD13): 0: 00000000 00000000 00000000 00000000
[ 1251.436864] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x0, card status 0x0
[ 1251.445962] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[ 1251.453134] mmcblk0: unable to read partition table
#
^ permalink raw reply [flat|nested] 42+ messages in thread* Re: [PATCH v2 0/7] uapi: export all headers under uapi directories
@ 2017-01-09 11:33 Arnd Bergmann
2017-01-13 10:46 ` [PATCH v3 0/8] " Nicolas Dichtel
0 siblings, 1 reply; 42+ messages in thread
From: Arnd Bergmann @ 2017-01-09 11:33 UTC (permalink / raw)
To: linuxppc-dev, linux-kbuild
Cc: linux-mips, alsa-devel, linux-ia64, linux-doc, airlied,
linux-fbdev, dri-devel, linux-mtd, sparclinux, linux-arch,
linux-s390, linux-am33-list, linux-c6x-dev, linux-rdma,
linux-hexagon, linux-sh, coreteam, fcoe-devel, xen-devel,
linux-snps-arc, linux-media, uclinux-h8-devel,
adi-buildroot-devel, linux-raid, linux-m68k, openrisc,
Nicolas Dichtel, linux-metag, linux-arm-kernel
On Friday, January 6, 2017 10:43:52 AM CET Nicolas Dichtel wrote:
> Here is the v2 of this series. The first 5 patches are just cleanup: some
> exported headers were still under a non-uapi directory.
Since this is meant as a cleanup, I commented on this to point out a cleaner
way to do the same.
> The patch 6 was spotted by code review: there is no in-tree user of this
> functionality.
> The last patch remove the use of header-y. Now all files under an uapi
> directory are exported.
Very nice!
> asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm
> only, but there is two exceptions:
> - cris which exports arch/cris/include/uapi/arch-v[10|32];
This is interesting, though not your problem. Maybe someone who understands
cris better can comment on this: How is the decision made about which of
the arch/user.h headers gets used? I couldn't find that in the sources,
but it appears to be based on kernel compile-time settings, which is
wrong for user space header files that should be independent of the kernel
config.
> - tile which exports arch/tile/include/uapi/arch.
> Because I don't know if the output of 'make headers_install_all' can be changed,
> I introduce subdir-y in Kbuild file. The headers_install_all target copies all
> asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but
> arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not
> prefixed (they are put asis in usr/include/). If it's acceptable to modify the
> output of 'make headers_install_all' to export asm headers in
> usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports
> everything under arch/<arch>/include/uapi/.
I don't know if anyone still uses "make headers_install_all", I suspect
distros these days all use "make headers_install", so it probably
doesn't matter much.
In case of cris, it should be easy enough to move all the contents of the
uapi/arch-*/*.h headers into the respective uapi/asm/*.h headers, they
only seem to be referenced from there.
For tile, I suspect that would not work as the arch/*.h headers are
apparently defined as interfaces for both user space and kernel.
> Note also that exported files for asm are a mix of files listed by:
> - include/uapi/asm-generic/Kbuild.asm;
> - arch/x86/include/uapi/asm/Kbuild;
> - arch/x86/include/asm/Kbuild.
> This complicates a lot the processing (arch/x86/include/asm/Kbuild is also
> used by scripts/Makefile.asm-generic).
>
> This series has been tested with a 'make headers_install' on x86 and a
> 'make headers_install_all'. I've checked the result of both commands.
>
> This patch is built against linus tree. I don't know if it should be
> made against antoher tree.
The series should probably get merged through the kbuild tree, but testing
it on mainline is fine here.
Arnd
^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v3 0/8] uapi: export all headers under uapi directories
2017-01-09 11:33 [PATCH v2 0/7] uapi: export all headers under uapi directories Arnd Bergmann
@ 2017-01-13 10:46 ` Nicolas Dichtel
2017-01-13 10:46 ` [PATCH v3 1/8] arm: put types.h in uapi Nicolas Dichtel
0 siblings, 1 reply; 42+ messages in thread
From: Nicolas Dichtel @ 2017-01-13 10:46 UTC (permalink / raw)
To: arnd
Cc: linux-mips, alsa-devel, linux-ia64, linux-doc, airlied,
daniel.vetter, linux-fbdev, dri-devel, linux-mtd, sparclinux,
linux-arch, linux-s390, linux-am33-list, linux-c6x-dev,
linux-rdma, linux-hexagon, linux-sh, linux, hch, coreteam,
msalter, fcoe-devel, xen-devel, linux-snps-arc, linux-media,
uclinux-h8-devel, linux-xtensa, linux-kbuild, adi-buildroot-devel,
linux-raid, linux-m68k
Here is the v3 of this series. The first 5 patches are just cleanup: some
exported headers were still under a non-uapi directory or (x86 case) were
wrongly exported.
The patch 6 was spotted by code review: there is no in-tree user of this
functionality.
Patches 7 and 8 remove the need to list explicitly headers. Now all files
under an uapi directory are exported.
This series has been tested with a 'make headers_install' on x86 and a
'make headers_install_all'. I've checked the result of both commands.
This patch is built against linus tree. If I must rebase it against the kbuild
tree, just tell me ;-)
v2 -> v3:
- patch #1: remove arch/arm/include/asm/types.h
- patch #2: remove arch/h8300/include/asm/bitsperlong.h
- patch #3: remove arch/nios2/include/uapi/asm/setup.h
- patch #4: don't export msr-index.h
- patch #5: fix a typo: s/unput-files3-name/input-files3-name
- patch #6: no change
- patch #7: fix include/uapi/asm-generic/Kbuild.asm by introducing mandatory-y
- add patch #8
v1 -> v2:
- add patch #1 to #6
- patch #7: remove use of header-y
Comments are welcomed,
Nicolas
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v3 1/8] arm: put types.h in uapi
2017-01-13 10:46 ` [PATCH v3 0/8] " Nicolas Dichtel
@ 2017-01-13 10:46 ` Nicolas Dichtel
2017-01-13 15:36 ` (unknown) David Howells
0 siblings, 1 reply; 42+ messages in thread
From: Nicolas Dichtel @ 2017-01-13 10:46 UTC (permalink / raw)
To: arnd
Cc: mmarek, linux-kbuild, linux-doc, linux-kernel, linux-alpha,
linux-snps-arc, linux-arm-kernel, adi-buildroot-devel,
linux-c6x-dev, linux-cris-kernel, uclinux-h8-devel, linux-hexagon,
linux-ia64, linux-m68k, linux-metag, linux-mips, linux-am33-list,
nios2-dev, openrisc, linux-parisc, linuxppc-dev, linux-s390,
linux-sh, sparclinux, linux-xtensa, linux-arch
This header file is exported, thus move it to uapi.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
arch/arm/include/asm/types.h | 40 ---------------------------------------
arch/arm/include/uapi/asm/types.h | 40 +++++++++++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+), 40 deletions(-)
delete mode 100644 arch/arm/include/asm/types.h
create mode 100644 arch/arm/include/uapi/asm/types.h
diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h
deleted file mode 100644
index a53cdb8f068c..000000000000
--- a/arch/arm/include/asm/types.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _ASM_TYPES_H
-#define _ASM_TYPES_H
-
-#include <asm-generic/int-ll64.h>
-
-/*
- * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as
- * unambiguous on ARM as you would expect. For the types below, there is a
- * difference on ARM between GCC built for bare metal ARM, GCC built for glibc
- * and the kernel itself, which results in build errors if you try to build with
- * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h'
- * in order to use NEON intrinsics)
- *
- * As the typedefs for these types in 'stdint.h' are based on builtin defines
- * supplied by GCC, we can tweak these to align with the kernel's idea of those
- * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same
- * source file (provided that -ffreestanding is used).
- *
- * int32_t uint32_t uintptr_t
- * bare metal GCC long unsigned long unsigned int
- * glibc GCC int unsigned int unsigned int
- * kernel int unsigned int unsigned long
- */
-
-#ifdef __INT32_TYPE__
-#undef __INT32_TYPE__
-#define __INT32_TYPE__ int
-#endif
-
-#ifdef __UINT32_TYPE__
-#undef __UINT32_TYPE__
-#define __UINT32_TYPE__ unsigned int
-#endif
-
-#ifdef __UINTPTR_TYPE__
-#undef __UINTPTR_TYPE__
-#define __UINTPTR_TYPE__ unsigned long
-#endif
-
-#endif /* _ASM_TYPES_H */
diff --git a/arch/arm/include/uapi/asm/types.h b/arch/arm/include/uapi/asm/types.h
new file mode 100644
index 000000000000..9435a42f575e
--- /dev/null
+++ b/arch/arm/include/uapi/asm/types.h
@@ -0,0 +1,40 @@
+#ifndef _UAPI_ASM_TYPES_H
+#define _UAPI_ASM_TYPES_H
+
+#include <asm-generic/int-ll64.h>
+
+/*
+ * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as
+ * unambiguous on ARM as you would expect. For the types below, there is a
+ * difference on ARM between GCC built for bare metal ARM, GCC built for glibc
+ * and the kernel itself, which results in build errors if you try to build with
+ * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h'
+ * in order to use NEON intrinsics)
+ *
+ * As the typedefs for these types in 'stdint.h' are based on builtin defines
+ * supplied by GCC, we can tweak these to align with the kernel's idea of those
+ * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same
+ * source file (provided that -ffreestanding is used).
+ *
+ * int32_t uint32_t uintptr_t
+ * bare metal GCC long unsigned long unsigned int
+ * glibc GCC int unsigned int unsigned int
+ * kernel int unsigned int unsigned long
+ */
+
+#ifdef __INT32_TYPE__
+#undef __INT32_TYPE__
+#define __INT32_TYPE__ int
+#endif
+
+#ifdef __UINT32_TYPE__
+#undef __UINT32_TYPE__
+#define __UINT32_TYPE__ unsigned int
+#endif
+
+#ifdef __UINTPTR_TYPE__
+#undef __UINTPTR_TYPE__
+#define __UINTPTR_TYPE__ unsigned long
+#endif
+
+#endif /* _UAPI_ASM_TYPES_H */
--
2.8.1
^ permalink raw reply related [flat|nested] 42+ messages in thread
* (unknown)
2017-01-13 10:46 ` [PATCH v3 1/8] arm: put types.h in uapi Nicolas Dichtel
@ 2017-01-13 15:36 ` David Howells
0 siblings, 0 replies; 42+ messages in thread
From: David Howells @ 2017-01-13 15:36 UTC (permalink / raw)
To: Nicolas Dichtel
Cc: dhowells, arnd, linux-mips, linux-m68k, linux-ia64, linux-doc,
alsa-devel, dri-devel, linux-mtd, sparclinux, linux-arch,
linux-s390, linux-am33-list, linux-c6x-dev, linux-rdma,
linux-hexagon, linux-sh, linux, coreteam, fcoe-devel, xen-devel,
linux-snps-arc, linux-media, uclinux-h8-devel, linux-xtensa,
linux-kbuild, adi-buildroot-devel
Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote:
> This header file is exported, thus move it to uapi.
Exported how?
> +#ifdef __INT32_TYPE__
> +#undef __INT32_TYPE__
> +#define __INT32_TYPE__ int
> +#endif
> +
> +#ifdef __UINT32_TYPE__
> +#undef __UINT32_TYPE__
> +#define __UINT32_TYPE__ unsigned int
> +#endif
> +
> +#ifdef __UINTPTR_TYPE__
> +#undef __UINTPTR_TYPE__
> +#define __UINTPTR_TYPE__ unsigned long
> +#endif
These weren't defined by the kernel before, so why do we need to define them
now?
Will defining __UINTPTR_TYPE__ cause problems in compiling libboost by
changing the signature on C++ functions that use uintptr_t?
David
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown)
@ 2015-04-29 20:47 Angelo Dureghello
0 siblings, 0 replies; 42+ messages in thread
From: Angelo Dureghello @ 2015-04-29 20:47 UTC (permalink / raw)
To: linux-mmc
unsubscribe linux-mmc angelo@sysam.it
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2014-05-23 2:50 Wang, Yalin
0 siblings, 0 replies; 42+ messages in thread
From: Wang, Yalin @ 2014-05-23 2:50 UTC (permalink / raw)
To: 'linux-mmc@vger.kernel.org',
'linux-arch-owner@vger.kernel.org', 'Will Deacon'
Hi
I have a problems that I want create a watchpoint to monitor a data for
Debug in kernel , but I don't know how to do it ,
I try the kprobes , but seems it only support create .text section probe ,
Can't monitor data access , then I try perf_event_create to create a hardware
Data watchpoint , it can work , but has a problem:
When the data access hit , I don't know how to bypass this time's watchpoint ,
This need simulate the data access or step the break instructions in data abort
Exception handler , seems kernel don't provide these for perf_event ..
I test this on ARM arch ,
My question is that how to create data watchpoint in kernel ?
It there some modules have implemented this ?
Thanks
Sony Mobile Communications
Tel: My Number +18610323092
yalin.wang@sonymobile.com (shall be a link, optional part)
sonymobile.com
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2013-10-17 2:48 remittance2013@hotmail.comContact
0 siblings, 0 replies; 42+ messages in thread
From: remittance2013@hotmail.comContact @ 2013-10-17 2:48 UTC (permalink / raw)
--
Dear beneficiary,This is to re-notify you of the $300,000.00 USD that was depositedhere in the western union office in your name is available for pickup.Contact us via email for your M.T.C.N Numbers.Contact Person:Mr. ben c johnEmail: remittance2013@hotmail.comContact Phone : +44 7024043572
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2013-09-19 1:04 Loan Offer
0 siblings, 0 replies; 42+ messages in thread
From: Loan Offer @ 2013-09-19 1:04 UTC (permalink / raw)
--
Are You In Need Of money to pay your bills or to start any kind of
Business? If Yes; Contact us via: richard.fast.loancompany1@gmail.com
Full Name:
Amount Needed:
Duration:
Country:
Cell No:
Sex:
Age:
Noted that all email should been send to Mr Richard Fast on this
email: richard.fast.loancompany1@gmail.com
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2012-09-28 10:28 yongd
0 siblings, 0 replies; 42+ messages in thread
From: yongd @ 2012-09-28 10:28 UTC (permalink / raw)
To: Chris Ball, Anton Vorontsov, Marek Szyprowski, Shawn Guo,
Wolfram Sang, Daniel Drake, Sascha Hauer, Wilson Callan,
Ben Dooks
Cc: zhangfei.gao, kevin.liu, jlfu, linux-mmc, linux-kernel
ngd@marvell.com> # This line is ignored.
From: yongd <yongd@marvell.com>
Subject:[PATCH 0/3] mmc: enable card-detection polling in host driver rather than in sdhci_add_host
In-Reply-To:
Hi all,
As checked, SDHCI_QUICK_BROKEN_CARD_DETECTION was previously introduced by Anton Vorontsov in commit
68d1fb7e229c6f95be4fbbe3eb46b24e41184924. For a removable card (MMC_CAP_NONREMOVABLE is not set),
if this QUICK is set, sdhci_add_host will set MMC_CAP_NEEDS_POLL to enable card-detection polling method,
and sdhci_set_card_detection will not enable host controller card insert/remove interrupts (the host
internal card detection method).
However, we can have some other card detection methods besides host internal card detection and polling
methods. For example, we might use an external GPIO pin for detection. In such case, we will not set
MMC_CAP_NONREMOVABLE since removable, and set SDHCI_QUICK_BROKEN_CARD_DETECTION since we don't use controller
card insert/remove interrupts. But unexpectedly, sdhci_add_host will still enable polling for us. This
is redundant.
So, here comes the following solution.
1st, enable card-detection polling in vendor host driver itself so that it will not rely on sdhci_add_host.
[PATCH 1/3]: for sdhci-esdhc-imx.c
[PATCH 2/3]: for sdhci-s3c.c
And for other vendor host drivers(sdhci-pxav2/3.c, sdhci-pci.c, sdhci-of-esdhc.c), as checked, those who
set SDHCI_QUICK_BROKEN_CARD_DETECTION actually do not set this for enabling polling. So no similar change is
needed.
2nd, remove MMC_CAP_NEEDS_POLL setting in sdhci_add_host, as in [PATCH 3/3].
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Actually I have had some discussion with Anton, and now added more reviewers here since my proposal influences
others. I will appreciate your review and comments. Thanks a lot:-)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2012-09-18 4:52 Mr. Beuker Hendrik
0 siblings, 0 replies; 42+ messages in thread
From: Mr. Beuker Hendrik @ 2012-09-18 4:52 UTC (permalink / raw)
UBS International Holdings BV
Herengracht 600
NL-1017 CJ Amsterdam, Netherlands.
www.ubs.com/investmentbank
I have a business proposal of ($8.5 million) Eight million, five Hundred
thousand
Dollars only to transfer with you, if interested to get back to me.
At this moment I will not be able to issue more details about this
business, until your response is received.
Email:hendrik_mr.beuker@yahoo.com.hk
Warmest Regards,
Mr. Beuker Hendrik
Investment Consultant.
UBS.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2012-09-07 0:12 Allen and Violet Large
0 siblings, 0 replies; 42+ messages in thread
From: Allen and Violet Large @ 2012-09-07 0:12 UTC (permalink / raw)
Dear Sir/Madam,
This is my fifth times of writting you this email since last year till
date but no response from you.Hope you get this one, as this is a personal
email directed to you. My wife and I won a Jackpot Lottery of $11.3 million
in July and have voluntarily decided to donate the sum of $500,000.00 USD
to you as part of our own charity project to improve the lot of 10 lucky
individuals all over the world. If you have received this email then you
are one of the lucky recipients and all you have to do is get back with us
so that we can send your details to the payout bank.Please note that you
have to contact my private email for more
informations(allen.andvioletlarge@yahoo.ie)
You can verify this by visiting the web pages below.
http://www.dailymail.co.uk/news/article-1326473/Canadian-couple-Allen-Violet-Large-away-entire-11-2m-lottery-win.html
Goodluck,
Allen and Violet Large
Email:allen.andvioletlarge@yahoo.ie
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2012-09-06 12:23 MR.TAN WONG
0 siblings, 0 replies; 42+ messages in thread
From: MR.TAN WONG @ 2012-09-06 12:23 UTC (permalink / raw)
To: info.rowanc
FROM:MR.TAN WONG
(tan.wong222@yahoo.com.hk)Let me start by introducing myself. I am Mr. Tan Wong director of operations of the Hang Seng Bank Ltd. I have an obscured business suggestion for you. That will be a great benefit for you and me. It involve the transfer of Twenty Four millions Five Hundred Thousand United State Dollar($24,500,000,00) deposit in my bank So, Twenty Four millions Five Hundred Thousand United State Dollar($24,500,000,00) is still lying in my bank and no one will ever come forward to claim it. What bothers me most is that according to the laws of my country at the expiration 8years the funds will revert to the ownership of the Hong Kong Government if nobody applies to claim the funds. Against this backdrop, my suggestion to you is that I will like you as a foreigner to stand as the next of kin to Major Fadi Basem so that you will be able to receive his funds.Transfer. Should you be interested please send me your full names and current residential address and I will prefer you to reach me on this email address (tan.wong222@yahoo.com.hk) which is my private email address and finally after that I shall provide you with more details of this operation.Your earliest response to this letter will be appreciated. Kind Regards, Mr.Tan Wong.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2012-08-09 6:55 Lee Susman
0 siblings, 0 replies; 42+ messages in thread
From: Lee Susman @ 2012-08-09 6:55 UTC (permalink / raw)
To: axboe, linux-mmc; +Cc: tlinder
Hello all,
I ran into some difficulty with Btreplay, maybe you could help me:
I am trying to emulate async write requests using Btreplay, but it seems
that Btreplay submits only sync writes.
I could not find any reference in the code as to manipulating this option.
I would appreciate your help.
Thanks,
--
Lee Susman,
Consultant for Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2012-03-31 14:44 jin mong
0 siblings, 0 replies; 42+ messages in thread
From: jin mong @ 2012-03-31 14:44 UTC (permalink / raw)
Greetings Partner,
This is my second time of sending you this notice. I have finally found
you as an approved heir to the inheritance of the deposited funds with
same surname of the deceased depositor.
Jin Mong
Email: jinmong22@yahoo.co.jp
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2011-12-05 9:14 r66093
0 siblings, 0 replies; 42+ messages in thread
From: r66093 @ 2011-12-05 9:14 UTC (permalink / raw)
To: linux-mmc
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2011-10-31 14:47 ygardi
0 siblings, 0 replies; 42+ messages in thread
From: ygardi @ 2011-10-31 14:47 UTC (permalink / raw)
To: to; +Cc: a_ygardi
subscribe linux-mmc
thanks,
Yaniv
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown)
@ 2011-10-31 7:43 Bar Yasser
0 siblings, 0 replies; 42+ messages in thread
From: Bar Yasser @ 2011-10-31 7:43 UTC (permalink / raw)
I am Bar Yasser, I have a very important Business matters i will like to
discuss with you.If this your Email is valid Contact me through my personal
email:rawashdeh.asseral11@w.cn Thank you Mr. Yasser Al
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2011-09-22 11:10 Girish K S
2011-09-22 11:10 ` (unknown), Girish K S
0 siblings, 1 reply; 42+ messages in thread
From: Girish K S @ 2011-09-22 11:10 UTC (permalink / raw)
To: linux-mmc; +Cc: cjb, kgene.kim, patches, linux-samsung-soc, Girish K S
This patch adds the support for power off notify feature
available in eMMC 4.5 devices.
If the the host has support for this feature, then the
mmc core will notify it to the device by setting the
POWER_OFF_NOTIFICATION byte in the extended csd register
with a value 1(POWER_ON).
This patch should be applied after Seungwon Jeon's
patch for cmd6 timeout.
Signed-off-by: Girish K S <girish.shivananjappa@linaro.org>
---
v2:
adds poweroff notification handling in suspend/normal
v4:
updated with review comments of Jeon
v5:
This patch version fixes the problem with power off
notify function, when called for the first time and
card is not yet initialised.
v6:
fixes checkpatch errors. The patches are generated after
rebasing to chris's mmc-next branch.
drivers/mmc/core/mmc.c | 17 +++++++++++++++++
include/linux/mmc/card.h | 1 +
include/linux/mmc/host.h | 1 +
include/linux/mmc/mmc.h | 6 ++++++
4 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 7adc30d..a547f49 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -412,6 +412,10 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd)
else
card->erased_byte = 0x0;
+ if (card->ext_csd.rev >= 6) {
+ card->ext_csd.power_off_longtime = 10 *
+ ext_csd[EXT_CSD_POWER_OFF_LONG_TIME];
+ }
out:
return err;
}
@@ -713,6 +717,19 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
}
/*
+ * If the host supports the power_off_notify capability then
+ * set the notification byte in the ext_csd register of device
+ */
+ if (host->caps & MMC_CAP_POWER_OFF_NOTIFY) {
+ err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
+ EXT_CSD_POWER_OFF_NOTIFICATION,
+ EXT_CSD_POWER_ON,
+ card->ext_csd.generic_cmd6_time);
+ if (err && err != -EBADMSG)
+ goto free_card;
+ }
+
+ /*
* Activate high speed (if supported)
*/
if ((card->ext_csd.hs_max_dtr != 0) &&
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 5294ddf..0f9dbd6 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -53,6 +53,7 @@ struct mmc_ext_csd {
u8 rst_n_function;
unsigned int part_time; /* Units: ms */
unsigned int sa_timeout; /* Units: 100ns */
+ unsigned int power_off_longtime; /* Units: ms */
unsigned int hs_max_dtr;
unsigned int sectors;
unsigned int card_type;
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index b2aefea..ed49e88 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -235,6 +235,7 @@ struct mmc_host {
#define MMC_CAP_MAX_CURRENT_800 (1 << 29) /* Host max current limit is 800mA */
#define MMC_CAP_CMD23 (1 << 30) /* CMD23 supported. */
#define MMC_CAP_HW_RESET (1 << 31) /* Hardware reset */
+#define MMC_CAP_POWER_OFF_NOTIFY (1 << 31)/*Notify poweroff supported */
mmc_pm_flag_t pm_caps; /* supported pm features */
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
index ed8fca8..95912da 100644
--- a/include/linux/mmc/mmc.h
+++ b/include/linux/mmc/mmc.h
@@ -270,6 +270,7 @@ struct _mmc_csd {
* EXT_CSD fields
*/
+#define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */
#define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */
#define EXT_CSD_PARTITION_SUPPORT 160 /* RO */
#define EXT_CSD_RST_N_FUNCTION 162 /* R/W */
@@ -294,6 +295,7 @@ struct _mmc_csd {
#define EXT_CSD_SEC_ERASE_MULT 230 /* RO */
#define EXT_CSD_SEC_FEATURE_SUPPORT 231 /* RO */
#define EXT_CSD_TRIM_MULT 232 /* RO */
+#define EXT_CSD_POWER_OFF_LONG_TIME 247 /*RO*/
/*
* EXT_CSD field definitions
@@ -331,6 +333,10 @@ struct _mmc_csd {
#define EXT_CSD_RST_N_EN_MASK 0x3
#define EXT_CSD_RST_N_ENABLED 1 /* RST_n is enabled on card */
+#define EXT_CSD_NO_POWER_NOTIFICATION 0
+#define EXT_CSD_POWER_ON 1
+#define EXT_CSD_POWER_OFF_SHORT 2
+#define EXT_CSD_POWER_OFF_LONG 3
/*
* MMC_SWITCH access modes
--
1.7.1
^ permalink raw reply related [flat|nested] 42+ messages in thread* (unknown),
2011-09-22 11:10 (unknown), Girish K S
@ 2011-09-22 11:10 ` Girish K S
0 siblings, 0 replies; 42+ messages in thread
From: Girish K S @ 2011-09-22 11:10 UTC (permalink / raw)
To: linux-mmc; +Cc: cjb, kgene.kim, patches, linux-samsung-soc, Girish K S
This patch adds the power off notification handling
during suspend and system poweroff.
For suspend mode short timeout is used, whereas for the
normal poweroff long timeout is used.
Signed-off-by: Girish K S <girish.shivananjappa@linaro.org>
---
v2:
adds poweroff notification handling in suspend/normal
v4:
updated with review comments of Jeon
v5:
This patch version fixes the problem with power off
notify function, when called for the first time and
card is not yet initialised.
v6:
fixes checkpatch errors. The patches are generated after
rebasing to chris's mmc-next branch.
drivers/mmc/core/core.c | 35 ++++++++++++++++++++++++++++++++++-
drivers/mmc/core/mmc.c | 5 ++++-
drivers/mmc/host/sdhci.c | 10 ++++++++++
include/linux/mmc/card.h | 19 +++++++++++++++++++
include/linux/mmc/host.h | 4 ++++
5 files changed, 71 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index f22b774..17841a8 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1198,11 +1198,42 @@ static void mmc_power_up(struct mmc_host *host)
void mmc_power_off(struct mmc_host *host)
{
- mmc_host_clk_hold(host);
+ struct mmc_card *card = host->card;
+ unsigned int notify_type;
+ unsigned int timeout;
+ int err;
+ mmc_host_clk_hold(host);
host->ios.clock = 0;
host->ios.vdd = 0;
+ if (card != NULL && mmc_card_mmc(card) &&
+ (mmc_card_powernotify_on(card))) {
+
+ if (host->power_notify_type == MMC_HOST_PW_NOTIFY_SHORT) {
+ notify_type = EXT_CSD_POWER_OFF_SHORT;
+ timeout = card->ext_csd.generic_cmd6_time;
+ mmc_card_set_powernotify_short(card);
+ } else {
+ notify_type = EXT_CSD_POWER_OFF_LONG;
+ timeout = card->ext_csd.power_off_longtime;
+ mmc_card_set_powernotify_long(card);
+ }
+
+ err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
+ EXT_CSD_POWER_OFF_NOTIFICATION,
+ notify_type, timeout);
+
+ if (err && err != -EBADMSG)
+ printk(KERN_ERR "Device failed to respond "
+ "within %d poweroff time."
+ "forcefully powering down"
+ "the device\n", timeout);
+
+ /*Set the card state to no notification after the poweroff*/
+ mmc_card_set_powernotify_off(card);
+ }
+
/*
* Reset ocr mask to be the highest possible voltage supported for
* this mmc host. This value will be used at next power up.
@@ -2195,6 +2226,7 @@ int mmc_pm_notify(struct notifier_block *notify_block,
spin_lock_irqsave(&host->lock, flags);
host->rescan_disable = 1;
+ host->power_notify_type = MMC_HOST_PW_NOTIFY_SHORT;
spin_unlock_irqrestore(&host->lock, flags);
cancel_delayed_work_sync(&host->detect);
@@ -2218,6 +2250,7 @@ int mmc_pm_notify(struct notifier_block *notify_block,
spin_lock_irqsave(&host->lock, flags);
host->rescan_disable = 0;
+ host->power_notify_type = MMC_HOST_PW_NOTIFY_LONG;
spin_unlock_irqrestore(&host->lock, flags);
mmc_detect_change(host, 0);
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index a547f49..e3695a0 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -720,7 +720,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
* If the host supports the power_off_notify capability then
* set the notification byte in the ext_csd register of device
*/
- if (host->caps & MMC_CAP_POWER_OFF_NOTIFY) {
+ if ((host->caps & MMC_CAP_POWER_OFF_NOTIFY) &&
+ (mmc_card_powernotify_off(card))) {
err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
EXT_CSD_POWER_OFF_NOTIFICATION,
EXT_CSD_POWER_ON,
@@ -729,6 +730,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
goto free_card;
}
+ if (!err)
+ mmc_card_set_powernotify_on(card);
/*
* Activate high speed (if supported)
*/
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index d66a7a1..04abd45 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2575,6 +2575,16 @@ int sdhci_add_host(struct sdhci_host *host)
if (caps[1] & SDHCI_DRIVER_TYPE_D)
mmc->caps |= MMC_CAP_DRIVER_TYPE_D;
+ /*
+ * If Notify capability is enabled and
+ * notify type is not initialised by host, set default to
+ * long power off notify timeout value
+ */
+ if (mmc->caps & MMC_CAP_POWER_OFF_NOTIFY)
+ mmc->power_notify_type = MMC_HOST_PW_NOTIFY_SHORT;
+ else
+ mmc->power_notify_type = MMC_HOST_PW_NOTIFY_NONE;
+
/* Initial value for re-tuning timer count */
host->tuning_count = (caps[1] & SDHCI_RETUNING_TIMER_COUNT_MASK) >>
SDHCI_RETUNING_TIMER_COUNT_SHIFT;
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 0f9dbd6..3bc1995 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -192,6 +192,11 @@ struct mmc_card {
#define MMC_QUIRK_BLK_NO_CMD23 (1<<7) /* Avoid CMD23 for regular multiblock */
#define MMC_QUIRK_BROKEN_BYTE_MODE_512 (1<<8) /* Avoid sending 512 bytes in */
/* byte mode */
+ unsigned int poweroff_notify_state;/*eMMC4.5 notify feature */
+#define MMC_NO_POWER_NOTIFICATION 0
+#define MMC_POWERED_ON 1
+#define MMC_POWEROFF_SHORT 2
+#define MMC_POWEROFF_LONG 3
unsigned int erase_size; /* erase size in sectors */
unsigned int erase_shift; /* if erase unit is power 2 */
@@ -327,6 +332,20 @@ static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data)
#define mmc_sd_card_set_uhs(c) ((c)->state |= MMC_STATE_ULTRAHIGHSPEED)
#define mmc_card_set_ext_capacity(c) ((c)->state |= MMC_CARD_SDXC)
+#define mmc_card_powernotify_on(c) \
+ ((c)->poweroff_notify_state == MMC_POWERED_ON)
+#define mmc_card_powernotify_off(c) \
+ ((c)->poweroff_notify_state == MMC_NO_POWER_NOTIFICATION)
+
+#define mmc_card_set_powernotify_off(c) \
+ ((c)->poweroff_notify_state = MMC_NO_POWER_NOTIFICATION)
+#define mmc_card_set_powernotify_on(c) \
+ ((c)->poweroff_notify_state = MMC_POWERED_ON)
+#define mmc_card_set_powernotify_short(c) \
+ ((c)->poweroff_notify_state = MMC_POWEROFF_SHORT)
+#define mmc_card_set_powernotify_long(c) \
+ ((c)->poweroff_notify_state = MMC_POWEROFF_LONG)
+
/*
* Quirk add/remove for MMC products.
*/
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index ed49e88..d8a3a72 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -238,6 +238,10 @@ struct mmc_host {
#define MMC_CAP_POWER_OFF_NOTIFY (1 << 31)/*Notify poweroff supported */
mmc_pm_flag_t pm_caps; /* supported pm features */
+ unsigned int power_notify_type;
+#define MMC_HOST_PW_NOTIFY_NONE 0
+#define MMC_HOST_PW_NOTIFY_SHORT 1
+#define MMC_HOST_PW_NOTIFY_LONG 2
#ifdef CONFIG_MMC_CLKGATE
int clk_requests; /* internal reference counter */
--
1.7.1
^ permalink raw reply related [flat|nested] 42+ messages in thread
* (unknown),
@ 2011-06-17 3:35 Mr. Vincent Cheng
0 siblings, 0 replies; 42+ messages in thread
From: Mr. Vincent Cheng @ 2011-06-17 3:35 UTC (permalink / raw)
Good Day,
I am Mr. Vincent Cheng Hoi Chuen, GBS, JP Chairman of the Hong Kong and
Shanghai Banking Corporation Limited.i have a business proposal of Twenty
Two million Five Hundred Thousand United State Dollars only for you to
transact with me from my bank to your country.
All confirmable documents to back up the claims will be made available to
you prior to your acceptance and as soon as I receive your return mail and
I will let you know what is required of you.
Your earliest response to this letter will be appreciated.
Best Regards,
Mr. Vincent Cheng
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2011-06-15 4:27 Microsoft Promotion Award Team
0 siblings, 0 replies; 42+ messages in thread
From: Microsoft Promotion Award Team @ 2011-06-15 4:27 UTC (permalink / raw)
Your Email Id has won 500,000GBP in the Microsoft Promotion Award 2011.
send us the following informations
Full Names:
Residential Address:
Occupation:
Age:
Phone:
to our claims department:email: Mr.Rynold Mohd, microaward@blumail.org
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2011-05-16 23:30 Greg Moore
0 siblings, 0 replies; 42+ messages in thread
From: Greg Moore @ 2011-05-16 23:30 UTC (permalink / raw)
I Am Greg Moore. A legitimate & accredited Loan lender. We give out loan of all kinds in a very fast and easy way, Personal Loan, Car Loan, Home Loan, Student Loan, Business Loan, Inventor loan, Debt Consolidation. get back to us if interested
I Am Greg Moore. A legitimate & accredited Loan lender. We give out loan of all kinds in a very fast and easy way, Personal Loan, Car Loan, Home Loan, Student Loan, Business Loan, Inventor loan, Debt Consolidation. get back to us if interested
I Am Greg Moore. A legitimate & accredited Loan lender. We give out loan of all kinds in a very fast and easy way, Personal Loan, Car Loan, Home Loan, Student Loan, Business Loan, Inventor loan, Debt Consolidation. get back to us if interested
I Am Greg Moore. A legitimate & accredited Loan lender. We give out loan of all kinds in a very fast and easy way, Personal Loan, Car Loan, Home Loan, Student Loan, Business Loan, Inventor loan, Debt Consolidation. get back to us if interested
I Am Greg Moore. A legitimate & accredited Loan lender. We give out loan of all kinds in a very fast and easy way, Personal Loan, Car Loan, Home Loan, Student Loan, Business Loan, Inventor loan, Debt Consolidation. get back to us if interested
I Am Greg Moore. A legitimate & accredited Loan lender. We give out loan of all kinds in a very fast and easy way, Personal Loan, Car Loan, Home Loan, Student Loan, Business Loan, Inventor loan, Debt Consolidation. get back to us if interested
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown), ,
@ 2010-11-16 13:59 Ming-Yang Lee
0 siblings, 0 replies; 42+ messages in thread
From: Ming-Yang Lee @ 2010-11-16 13:59 UTC (permalink / raw)
Do you need a loan to pay your bills or to start up a business or for Xmas?.
Kindly apply now for a low rate loan of 3%. for more information contact:
ming.yangfundsservice@qatar.io
We Await Your Response.
Mr Ming-Yang Lee
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown)
@ 2010-08-21 16:19 Award Promo
0 siblings, 0 replies; 42+ messages in thread
From: Award Promo @ 2010-08-21 16:19 UTC (permalink / raw)
Your email id has won £1,000,000.00. in the Uk award promo,send your
Names...
Address...
Tel...
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-07-28 6:02 Roy Zang
0 siblings, 0 replies; 42+ messages in thread
From: Roy Zang @ 2010-07-28 6:02 UTC (permalink / raw)
To: linux-mmc
This serial patch adds some workarounds to enable mmc card
support for P4080 chip.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-07-17 8:06 Grant Mayor
0 siblings, 0 replies; 42+ messages in thread
From: Grant Mayor @ 2010-07-17 8:06 UTC (permalink / raw)
FUNDING NOTIFICATION.............I am Mr Grant Mayor. i am a loan lender
as well as an angel investor, I offer funds based on demands and i use the
best possible interest rate so that it can make both paties smile. I allow
my clients to decide the loan repayment duration. So i have my door for
funding opened to all that is in need, If you have been turned down be
many financial institutions, this is a great time for you to make things
up. If you need a stress free funing, kindly get back to me with a mail of
application for funding and you will get funded within 3 working days.
Send all mails of application to: to.grantfinancing@gmail.com.
I await your response.
Grant Mayor.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown)
@ 2010-06-05 17:29 Michał Mirosław
2010-06-05 17:29 ` (unknown) Michał Mirosław
2010-06-05 17:29 ` (unknown) Michał Mirosław
0 siblings, 2 replies; 42+ messages in thread
From: Michał Mirosław @ 2010-06-05 17:29 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-mmc, linux-kernel, Adrian Hunter, Chris Ball
From 46eda5101dd303feac7f8353023f78bf4f7fd2fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= <mirq-linux@rere.qmqm.pl>
Date: Sat, 5 Jun 2010 19:04:01 +0200
Subject: [PATCH 0/2] mmc: Add support for SD combo cards
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This adds support for SD combo cards to MMC/SD driver stack.
SD combo consists of SD memory and SDIO parts in one package. Since
the parts have a separate SD command sets, after initialization, they
can be treated as independent cards on one bus.
Changes are divided into two patches. First is just moving initialization
code around so that SD memory part init can be called from SDIO init.
Second patch is a proper change enabling SD memory along SDIO.
I tried to move as much no-op changes to the first patch so that it's
easier to follow the required changes to initialization flow for SDIO cards.
This is based on Simplified SDIO spec v.2.00. The init sequence is slightly
modified to follow current SD memory init implementation. Command sequences,
assuming SD memory and SDIO indeed ignore unknown commands, are the same as
before for both parts.
Changes from v1:
- more no-op changes moved to first patch
- eliminated internal abuse of EOPNOTSUPP
- fixed a bug in resume path (not tested)
- eliminated unnecessary CID memcpy in SD combo init
Best Regards,
MichaÅ MirosÅaw
MichaÅ MirosÅaw (2):
mmc: split mmc_sd_init_card()
mmc: implement SD-combo (IO+mem) support
drivers/mmc/core/bus.c | 9 ++
drivers/mmc/core/core.c | 12 ++-
drivers/mmc/core/sd.c | 249 +++++++++++++++++++++++++++-------------------
drivers/mmc/core/sd.h | 17 +++
drivers/mmc/core/sdio.c | 174 +++++++++++++++++++++++++-------
include/linux/mmc/card.h | 1 +
6 files changed, 320 insertions(+), 142 deletions(-)
create mode 100644 drivers/mmc/core/sd.h
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown)
2010-06-05 17:29 (unknown) Michał Mirosław
@ 2010-06-05 17:29 ` Michał Mirosław
2010-06-05 17:29 ` (unknown) Michał Mirosław
1 sibling, 0 replies; 42+ messages in thread
From: Michał Mirosław @ 2010-06-05 17:29 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-mmc, linux-kernel, Adrian Hunter, Chris Ball
From 46eda5101dd303feac7f8353023f78bf4f7fd2fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= <mirq-linux@rere.qmqm.pl>
Date: Sat, 5 Jun 2010 19:03:40 +0200
Subject: [PATCH 2/2] mmc: implement SD-combo (IO+mem) support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: MichaÅ MirosÅaw <mirq-linux@rere.qmqm.pl>
---
drivers/mmc/core/bus.c | 9 +++
drivers/mmc/core/core.c | 12 ++++-
drivers/mmc/core/sdio.c | 135 ++++++++++++++++++++++++++++++++++++++-------
include/linux/mmc/card.h | 1 +
4 files changed, 134 insertions(+), 23 deletions(-)
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index 49d9dca..7cd9749 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -37,6 +37,8 @@ static ssize_t mmc_type_show(struct device *dev,
return sprintf(buf, "SD\n");
case MMC_TYPE_SDIO:
return sprintf(buf, "SDIO\n");
+ case MMC_TYPE_SD_COMBO:
+ return sprintf(buf, "SDcombo\n");
default:
return -EFAULT;
}
@@ -74,6 +76,9 @@ mmc_bus_uevent(struct device *dev, struct kobj_uevent_env *env)
case MMC_TYPE_SDIO:
type = "SDIO";
break;
+ case MMC_TYPE_SD_COMBO:
+ type = "SDcombo";
+ break;
default:
type = NULL;
}
@@ -239,6 +244,10 @@ int mmc_add_card(struct mmc_card *card)
case MMC_TYPE_SDIO:
type = "SDIO";
break;
+ case MMC_TYPE_SD_COMBO:
+ type = "SD-combo";
+ if (mmc_card_blockaddr(card))
+ type = "SDHC-combo";
default:
type = "?";
break;
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 3168ebd..87cf0de 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1099,8 +1099,15 @@ void mmc_rescan(struct work_struct *work)
*/
err = mmc_send_io_op_cond(host, 0, &ocr);
if (!err) {
- if (mmc_attach_sdio(host, ocr))
- mmc_power_off(host);
+ if (mmc_attach_sdio(host, ocr)) {
+ mmc_claim_host(host);
+ /* try SDMEM (but not MMC) even if SDIO is broken */
+ if (mmc_send_app_op_cond(host, 0, &ocr))
+ goto out_fail;
+
+ if (mmc_attach_sd(host, ocr))
+ mmc_power_off(host);
+ }
goto out;
}
@@ -1124,6 +1131,7 @@ void mmc_rescan(struct work_struct *work)
goto out;
}
+out_fail:
mmc_release_host(host);
mmc_power_off(host);
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 8a97e99..dc23427 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -160,9 +160,7 @@ static int sdio_enable_wide(struct mmc_card *card)
if (ret)
return ret;
- mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4);
-
- return 0;
+ return 1;
}
/*
@@ -222,10 +220,34 @@ static int sdio_disable_wide(struct mmc_card *card)
return 0;
}
+
+static int sdio_enable_4bit_bus(struct mmc_card *card)
+{
+ int err;
+
+ if (card->type == MMC_TYPE_SDIO)
+ return sdio_enable_wide(card);
+
+ if ((card->host->caps & MMC_CAP_4_BIT_DATA) &&
+ (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4)) {
+ err = mmc_app_set_bus_width(card, MMC_BUS_WIDTH_4);
+ if (err)
+ return err;
+ } else
+ return 0;
+
+ err = sdio_enable_wide(card);
+ if (err <= 0)
+ mmc_app_set_bus_width(card, MMC_BUS_WIDTH_1);
+
+ return err;
+}
+
+
/*
* Test if the card supports high-speed mode and, if so, switch to it.
*/
-static int sdio_enable_hs(struct mmc_card *card)
+static int mmc_sdio_switch_hs(struct mmc_card *card, int enable)
{
int ret;
u8 speed;
@@ -240,7 +262,10 @@ static int sdio_enable_hs(struct mmc_card *card)
if (ret)
return ret;
- speed |= SDIO_SPEED_EHS;
+ if (enable)
+ speed |= SDIO_SPEED_EHS;
+ else
+ speed &= ~SDIO_SPEED_EHS;
ret = mmc_io_rw_direct(card, 1, 0, SDIO_CCCR_SPEED, speed, NULL);
if (ret)
@@ -249,6 +274,24 @@ static int sdio_enable_hs(struct mmc_card *card)
return 1;
}
+/*
+ * Enable SDIO/combo card's high-speed mode. Return 0/1 if [not]supported.
+ */
+static int sdio_enable_hs(struct mmc_card *card)
+{
+ int ret;
+
+ ret = mmc_sdio_switch_hs(card, true);
+ if (ret <= 0 || card->type == MMC_TYPE_SDIO)
+ return ret;
+
+ ret = mmc_sd_switch_hs(card);
+ if (ret <= 0)
+ mmc_sdio_switch_hs(card, false);
+
+ return ret;
+}
+
static unsigned mmc_sdio_get_max_clock(struct mmc_card *card)
{
unsigned max_dtr;
@@ -265,6 +308,9 @@ static unsigned mmc_sdio_get_max_clock(struct mmc_card *card)
max_dtr = card->cis.max_dtr;
}
+ if (card->type == MMC_TYPE_SD_COMBO)
+ max_dtr = min(max_dtr, mmc_sd_get_max_clock(card));
+
return max_dtr;
}
@@ -310,7 +356,24 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
goto err;
}
- card->type = MMC_TYPE_SDIO;
+ err = mmc_sd_get_cid(host, host->ocr & ocr, card->raw_cid);
+
+ if (!err) {
+ card->type = MMC_TYPE_SD_COMBO;
+
+ if (oldcard && (oldcard->type != MMC_TYPE_SD_COMBO ||
+ memcmp(card->raw_cid, oldcard->raw_cid, sizeof(card->raw_cid)) != 0)) {
+ mmc_remove_card(card);
+ return -ENOENT;
+ }
+ } else {
+ card->type = MMC_TYPE_SDIO;
+
+ if (oldcard && oldcard->type != MMC_TYPE_SDIO) {
+ mmc_remove_card(card);
+ return -ENOENT;
+ }
+ }
/*
* For native busses: set card RCA and quit open drain mode.
@@ -324,6 +387,17 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
}
/*
+ * Read CSD, before selecting the card
+ */
+ if (!oldcard && card->type == MMC_TYPE_SD_COMBO) {
+ err = mmc_sd_get_csd(host, card);
+ if (err)
+ return err;
+
+ mmc_decode_cid(card);
+ }
+
+ /*
* Select card, as all following commands rely on that.
*/
if (!powered_resume && !mmc_host_is_spi(host)) {
@@ -350,14 +424,33 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
int same = (card->cis.vendor == oldcard->cis.vendor &&
card->cis.device == oldcard->cis.device);
mmc_remove_card(card);
- if (!same) {
- err = -ENOENT;
- goto err;
- }
+ if (!same)
+ return -ENOENT;
+
card = oldcard;
return 0;
}
+ if (card->type == MMC_TYPE_SD_COMBO) {
+ err = mmc_sd_setup_card(host, card, oldcard != NULL);
+ /* handle as SDIO-only card if memory init failed */
+ if (err) {
+ mmc_go_idle(host);
+ if (mmc_host_is_spi(host))
+ /* should not fail, as it worked previously */
+ mmc_spi_set_crc(host, use_spi_crc);
+ card->type = MMC_TYPE_SDIO;
+ } else
+ card->dev.type = &sd_type;
+ }
+
+ /*
+ * If needed, disconnect card detection pull-up resistor.
+ */
+ err = sdio_disable_cd(card);
+ if (err)
+ goto remove;
+
/*
* Switch to high-speed (if supported).
*/
@@ -375,8 +468,10 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
/*
* Switch to wider bus (if supported).
*/
- err = sdio_enable_wide(card);
- if (err)
+ err = sdio_enable_4bit_bus(card);
+ if (err > 0)
+ mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4);
+ else if (err)
goto remove;
if (!oldcard)
@@ -490,9 +585,14 @@ static int mmc_sdio_resume(struct mmc_host *host)
mmc_claim_host(host);
err = mmc_sdio_init_card(host, host->ocr, host->card,
(host->pm_flags & MMC_PM_KEEP_POWER));
- if (!err)
+ if (!err) {
/* We may have switched to 1-bit mode during suspend. */
- err = sdio_enable_wide(host->card);
+ err = sdio_enable_4bit_bus(host->card);
+ if (err > 0) {
+ mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
+ err = 0;
+ }
+ }
if (!err && host->sdio_irqs)
mmc_signal_sdio_irq(host);
mmc_release_host(host);
@@ -577,13 +677,6 @@ int mmc_attach_sdio(struct mmc_host *host, u32 ocr)
card->sdio_funcs = 0;
/*
- * If needed, disconnect card detection pull-up resistor.
- */
- err = sdio_disable_cd(card);
- if (err)
- goto remove;
-
- /*
* Initialize (but don't add) all present functions.
*/
for (i = 0; i < funcs; i++, card->sdio_funcs++) {
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index d02d2c6..dc570f5 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -92,6 +92,7 @@ struct mmc_card {
#define MMC_TYPE_MMC 0 /* MMC card */
#define MMC_TYPE_SD 1 /* SD card */
#define MMC_TYPE_SDIO 2 /* SDIO card */
+#define MMC_TYPE_SD_COMBO 3 /* SD combo (IO+mem) card */
unsigned int state; /* (our) card state */
#define MMC_STATE_PRESENT (1<<0) /* present in sysfs */
#define MMC_STATE_READONLY (1<<1) /* card is read-only */
--
1.6.4.4
^ permalink raw reply related [flat|nested] 42+ messages in thread* (unknown)
2010-06-05 17:29 (unknown) Michał Mirosław
2010-06-05 17:29 ` (unknown) Michał Mirosław
@ 2010-06-05 17:29 ` Michał Mirosław
1 sibling, 0 replies; 42+ messages in thread
From: Michał Mirosław @ 2010-06-05 17:29 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-mmc, linux-kernel, Adrian Hunter, Chris Ball
From 4b79c6ed22da18382748f578f9b4beb2d51afef3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= <mirq-linux@rere.qmqm.pl>
Date: Fri, 4 Jun 2010 21:37:00 +0200
Subject: [PATCH 1/2] mmc: split mmc_sd_init_card()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Prepare for SD-combo (IO+mem) support by splitting SD memory
card init and related functions.
Signed-off-by: MichaÅ MirosÅaw <mirq-linux@rere.qmqm.pl>
---
drivers/mmc/core/sd.c | 249 +++++++++++++++++++++++++++--------------------
drivers/mmc/core/sd.h | 17 +++
drivers/mmc/core/sdio.c | 39 +++++---
3 files changed, 186 insertions(+), 119 deletions(-)
create mode 100644 drivers/mmc/core/sd.h
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index 5eac21d..840be1b 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -59,7 +59,7 @@ static const unsigned int tacc_mant[] = {
/*
* Given the decoded CSD structure, decode the raw CID to our CID structure.
*/
-static void mmc_decode_cid(struct mmc_card *card)
+void mmc_decode_cid(struct mmc_card *card)
{
u32 *resp = card->raw_cid;
@@ -238,7 +238,7 @@ out:
/*
* Test if the card supports high-speed mode and, if so, switch to it.
*/
-static int mmc_switch_hs(struct mmc_card *card)
+int mmc_sd_switch_hs(struct mmc_card *card)
{
int err;
u8 *status;
@@ -272,9 +272,9 @@ static int mmc_switch_hs(struct mmc_card *card)
printk(KERN_WARNING "%s: Problem switching card "
"into high-speed mode!\n",
mmc_hostname(card->host));
+ err = 0;
} else {
- mmc_card_set_highspeed(card);
- mmc_set_timing(card->host, MMC_TIMING_SD_HS);
+ err = 1;
}
out:
@@ -320,26 +320,16 @@ static const struct attribute_group *sd_attr_groups[] = {
NULL,
};
-static struct device_type sd_type = {
+struct device_type sd_type = {
.groups = sd_attr_groups,
};
/*
- * Handle the detection and initialisation of a card.
- *
- * In the case of a resume, "oldcard" will contain the card
- * we're trying to reinitialise.
+ * Fetch CID from card.
*/
-static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
- struct mmc_card *oldcard)
+int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid)
{
- struct mmc_card *card;
int err;
- u32 cid[4];
- unsigned int max_dtr;
-
- BUG_ON(!host);
- WARN_ON(!host->claimed);
/*
* Since we're changing the OCR value, we seem to
@@ -361,23 +351,136 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
err = mmc_send_app_op_cond(host, ocr, NULL);
if (err)
- goto err;
+ return err;
- /*
- * Fetch CID from card.
- */
if (mmc_host_is_spi(host))
err = mmc_send_cid(host, cid);
else
err = mmc_all_send_cid(host, cid);
+
+ return err;
+}
+
+int mmc_sd_get_csd(struct mmc_host *host, struct mmc_card *card)
+{
+ int err;
+
+ /*
+ * Fetch CSD from card.
+ */
+ err = mmc_send_csd(card, card->raw_csd);
if (err)
- goto err;
+ return err;
- if (oldcard) {
- if (memcmp(cid, oldcard->raw_cid, sizeof(cid)) != 0) {
- err = -ENOENT;
- goto err;
+ err = mmc_decode_csd(card);
+ if (err)
+ return err;
+
+ return 0;
+}
+
+int mmc_sd_setup_card(struct mmc_host *host, struct mmc_card *card,
+ bool reinit)
+{
+ int err;
+
+ if (!reinit) {
+ /*
+ * Fetch SCR from card.
+ */
+ err = mmc_app_send_scr(card, card->raw_scr);
+ if (err)
+ return err;
+
+ err = mmc_decode_scr(card);
+ if (err)
+ return err;
+
+ /*
+ * Fetch switch information from card.
+ */
+ err = mmc_read_switch(card);
+ if (err)
+ return err;
+ }
+
+ /*
+ * For SPI, enable CRC as appropriate.
+ * This CRC enable is located AFTER the reading of the
+ * card registers because some SDHC cards are not able
+ * to provide valid CRCs for non-512-byte blocks.
+ */
+ if (mmc_host_is_spi(host)) {
+ err = mmc_spi_set_crc(host, use_spi_crc);
+ if (err)
+ return err;
+ }
+
+ /*
+ * Check if read-only switch is active.
+ */
+ if (!reinit) {
+ int ro = -1;
+
+ if (host->ops->get_ro)
+ ro = host->ops->get_ro(host);
+
+ if (ro < 0) {
+ printk(KERN_WARNING "%s: host does not "
+ "support reading read-only "
+ "switch. assuming write-enable.\n",
+ mmc_hostname(host));
+ } else if (ro > 0) {
+ mmc_card_set_readonly(card);
}
+ }
+
+ return 0;
+}
+
+unsigned mmc_sd_get_max_clock(struct mmc_card *card)
+{
+ unsigned max_dtr = (unsigned int)-1;
+
+ if (mmc_card_highspeed(card)) {
+ if (max_dtr > card->sw_caps.hs_max_dtr)
+ max_dtr = card->sw_caps.hs_max_dtr;
+ } else if (max_dtr > card->csd.max_dtr) {
+ max_dtr = card->csd.max_dtr;
+ }
+
+ return max_dtr;
+}
+
+void mmc_sd_go_highspeed(struct mmc_card *card)
+{
+ mmc_card_set_highspeed(card);
+ mmc_set_timing(card->host, MMC_TIMING_SD_HS);
+}
+
+/*
+ * Handle the detection and initialisation of a card.
+ *
+ * In the case of a resume, "oldcard" will contain the card
+ * we're trying to reinitialise.
+ */
+static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
+ struct mmc_card *oldcard)
+{
+ struct mmc_card *card;
+ int err;
+ u32 cid[4];
+
+ BUG_ON(!host);
+ WARN_ON(!host->claimed);
+
+ err = mmc_sd_get_cid(host, ocr, cid);
+ if (err)
+ return err;
+
+ if (oldcard) {
+ if (memcmp(cid, oldcard->raw_cid, sizeof(cid)) != 0)
+ return -ENOENT;
card = oldcard;
} else {
@@ -385,10 +488,8 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
* Allocate card structure.
*/
card = mmc_alloc_card(host, &sd_type);
- if (IS_ERR(card)) {
- err = PTR_ERR(card);
- goto err;
- }
+ if (IS_ERR(card))
+ return PTR_ERR(card);
card->type = MMC_TYPE_SD;
memcpy(card->raw_cid, cid, sizeof(card->raw_cid));
@@ -400,22 +501,15 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
if (!mmc_host_is_spi(host)) {
err = mmc_send_relative_addr(host, &card->rca);
if (err)
- goto free_card;
+ return err;
mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL);
}
if (!oldcard) {
- /*
- * Fetch CSD from card.
- */
- err = mmc_send_csd(card, card->raw_csd);
+ err = mmc_sd_get_csd(host, card);
if (err)
- goto free_card;
-
- err = mmc_decode_csd(card);
- if (err)
- goto free_card;
+ return err;
mmc_decode_cid(card);
}
@@ -426,61 +520,26 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
if (!mmc_host_is_spi(host)) {
err = mmc_select_card(card);
if (err)
- goto free_card;
- }
-
- if (!oldcard) {
- /*
- * Fetch SCR from card.
- */
- err = mmc_app_send_scr(card, card->raw_scr);
- if (err)
- goto free_card;
-
- err = mmc_decode_scr(card);
- if (err < 0)
- goto free_card;
-
- /*
- * Fetch switch information from card.
- */
- err = mmc_read_switch(card);
- if (err)
- goto free_card;
+ return err;
}
- /*
- * For SPI, enable CRC as appropriate.
- * This CRC enable is located AFTER the reading of the
- * card registers because some SDHC cards are not able
- * to provide valid CRCs for non-512-byte blocks.
- */
- if (mmc_host_is_spi(host)) {
- err = mmc_spi_set_crc(host, use_spi_crc);
- if (err)
- goto free_card;
- }
+ err = mmc_sd_setup_card(host, card, oldcard != NULL);
+ if (err)
+ goto free_card;
/*
* Attempt to change to high-speed (if supported)
*/
- err = mmc_switch_hs(card);
- if (err)
+ err = mmc_sd_switch_hs(card);
+ if (err > 0)
+ mmc_sd_go_highspeed(card);
+ else if (err)
goto free_card;
/*
- * Compute bus speed.
+ * Set bus speed.
*/
- max_dtr = (unsigned int)-1;
-
- if (mmc_card_highspeed(card)) {
- if (max_dtr > card->sw_caps.hs_max_dtr)
- max_dtr = card->sw_caps.hs_max_dtr;
- } else if (max_dtr > card->csd.max_dtr) {
- max_dtr = card->csd.max_dtr;
- }
-
- mmc_set_clock(host, max_dtr);
+ mmc_set_clock(host, mmc_sd_get_max_clock(card));
/*
* Switch to wider bus (if supported).
@@ -494,30 +553,12 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
}
- /*
- * Check if read-only switch is active.
- */
- if (!oldcard) {
- if (!host->ops->get_ro || host->ops->get_ro(host) < 0) {
- printk(KERN_WARNING "%s: host does not "
- "support reading read-only "
- "switch. assuming write-enable.\n",
- mmc_hostname(host));
- } else {
- if (host->ops->get_ro(host) > 0)
- mmc_card_set_readonly(card);
- }
- }
-
- if (!oldcard)
- host->card = card;
-
+ host->card = card;
return 0;
free_card:
if (!oldcard)
mmc_remove_card(card);
-err:
return err;
}
diff --git a/drivers/mmc/core/sd.h b/drivers/mmc/core/sd.h
new file mode 100644
index 0000000..3d8800f
--- /dev/null
+++ b/drivers/mmc/core/sd.h
@@ -0,0 +1,17 @@
+#ifndef _MMC_CORE_SD_H
+#define _MMC_CORE_SD_H
+
+#include <linux/mmc/card.h>
+
+extern struct device_type sd_type;
+
+int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid);
+int mmc_sd_get_csd(struct mmc_host *host, struct mmc_card *card);
+void mmc_decode_cid(struct mmc_card *card);
+int mmc_sd_setup_card(struct mmc_host *host, struct mmc_card *card,
+ bool reinit);
+unsigned mmc_sd_get_max_clock(struct mmc_card *card);
+int mmc_sd_switch_hs(struct mmc_card *card);
+void mmc_sd_go_highspeed(struct mmc_card *card);
+
+#endif
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 2dd4cfe..8a97e99 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -18,6 +18,7 @@
#include "core.h"
#include "bus.h"
+#include "sd.h"
#include "sdio_bus.h"
#include "mmc_ops.h"
#include "sd_ops.h"
@@ -245,10 +246,26 @@ static int sdio_enable_hs(struct mmc_card *card)
if (ret)
return ret;
- mmc_card_set_highspeed(card);
- mmc_set_timing(card->host, MMC_TIMING_SD_HS);
+ return 1;
+}
- return 0;
+static unsigned mmc_sdio_get_max_clock(struct mmc_card *card)
+{
+ unsigned max_dtr;
+
+ if (mmc_card_highspeed(card)) {
+ /*
+ * The SDIO specification doesn't mention how
+ * the CIS transfer speed register relates to
+ * high-speed, but it seems that 50 MHz is
+ * mandatory.
+ */
+ max_dtr = 50000000;
+ } else {
+ max_dtr = card->cis.max_dtr;
+ }
+
+ return max_dtr;
}
/*
@@ -345,23 +362,15 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
* Switch to high-speed (if supported).
*/
err = sdio_enable_hs(card);
- if (err)
+ if (err > 0)
+ mmc_sd_go_highspeed(card);
+ else if (err)
goto remove;
/*
* Change to the card's maximum speed.
*/
- if (mmc_card_highspeed(card)) {
- /*
- * The SDIO specification doesn't mention how
- * the CIS transfer speed register relates to
- * high-speed, but it seems that 50 MHz is
- * mandatory.
- */
- mmc_set_clock(host, 50000000);
- } else {
- mmc_set_clock(host, card->cis.max_dtr);
- }
+ mmc_set_clock(host, mmc_sdio_get_max_clock(card));
/*
* Switch to wider bus (if supported).
--
1.6.4.4
^ permalink raw reply related [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-06-03 0:36 Mr. zong lee
0 siblings, 0 replies; 42+ messages in thread
From: Mr. zong lee @ 2010-06-03 0:36 UTC (permalink / raw)
I am a branch manager in Bank of China Ltd, Hong Kong. I have a
business transaction with a value of US$25,000,000.00 only, is 60/40 ratio,
if you are interested send me Your Name, location, phone and occupation to
mrzonglee00@gmail.com and I will send you full details of this.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-06-03 0:25 Mr. zong lee
0 siblings, 0 replies; 42+ messages in thread
From: Mr. zong lee @ 2010-06-03 0:25 UTC (permalink / raw)
I am a branch manager in Bank of China Ltd, Hong Kong. I have a
business transaction with a value of US$25,000,000.00 only, is 60/40 ratio,
if you are interested send me Your Name, location, phone and occupation to
mrzonglee00@gmail.com and I will send you full details of this.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-06-03 0:17 Mr. zong lee
0 siblings, 0 replies; 42+ messages in thread
From: Mr. zong lee @ 2010-06-03 0:17 UTC (permalink / raw)
I am a branch manager in Bank of China Ltd, Hong Kong. I have a
business transaction with a value of US$25,000,000.00 only, is 60/40 ratio,
if you are interested send me Your Name, location, phone and occupation to
mrzonglee00@gmail.com and I will send you full details of this.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-04-16 14:19 Ups Courier
0 siblings, 0 replies; 42+ messages in thread
From: Ups Courier @ 2010-04-16 14:19 UTC (permalink / raw)
You have a bank draft of $580,000.00 USD , which await the outstanding
payment of $200.00 Contact our dispatch unit
for dispatch immediately. Contact person: Mr. Celin Smith, Email:
upscourier022@w.cn Tell: +234 7026760896
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-03-27 13:31 EuroMIllions
0 siblings, 0 replies; 42+ messages in thread
From: EuroMIllions @ 2010-03-27 13:31 UTC (permalink / raw)
Your email ID has won £2,500,000.00 GBP.
Fullname:
Address:
Age:
Tel:
Email: alexanderdarlin@gmail.com
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-03-25 0:01 UBS International Holdings BV
0 siblings, 0 replies; 42+ messages in thread
From: UBS International Holdings BV @ 2010-03-25 0:01 UTC (permalink / raw)
UBS International Holdings BV
Herengracht 600
NL-1017 CJ Amsterdam, Netherlands.
www.ubs.com/investmentbank
Greetings,
I am an investment consultant working with UBS International Holdings BV
in the Netherlands. I will be happy to work a transaction of $8.5million
out with you if you have a corporate or personal bank Account. If you are
interested, get back to me via my private email for further informations;
hhbeuker@live.nl
I look forward to hearing from you as soon as possible and thank you for
your time and attention.
Warmest Regards,
Mr. Beuker Hendrik
Investment Consultant.
UBS.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-03-22 23:33 UBS International Holdings BV
0 siblings, 0 replies; 42+ messages in thread
From: UBS International Holdings BV @ 2010-03-22 23:33 UTC (permalink / raw)
UBS International Holdings BV
Herengracht 600
NL-1017 CJ Amsterdam, Netherlands.
www.ubs.com/investmentbank
Greetings,
I am an investment consultant working with UBS International Holdings BV
in the Netherlands. I will be happy to work a transaction of $8.5million
out with you if you have a corporate or personal bank Account. I look
forward to hearing from you as soon as possible via my email;
hhbeuker@live.nl
Thank you for your time and attention.
Warmest Regards,
Mr. Beuker Hendrik
Investment Consultant.
UBS.
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2010-02-13 23:16 PATRICK CHAN
0 siblings, 0 replies; 42+ messages in thread
From: PATRICK CHAN @ 2010-02-13 23:16 UTC (permalink / raw)
Good Day,
I am Mr. Patrick Chan; I work with Hang Seng Bank Ltd. I have a
Private Business proposal of $24.5million USD. Kindly correspond to
this email for more details of this proposal.
Regards,
Patrick Chan
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2009-08-22 2:37 Kyungmin Park
0 siblings, 0 replies; 42+ messages in thread
From: Kyungmin Park @ 2009-08-22 2:37 UTC (permalink / raw)
To: linux-mmc
subscribe
^ permalink raw reply [flat|nested] 42+ messages in thread
* (unknown),
@ 2009-08-21 14:56 Normann Cunz
0 siblings, 0 replies; 42+ messages in thread
From: Normann Cunz @ 2009-08-21 14:56 UTC (permalink / raw)
To: Linux-Mailing-List (mmc)
Hello,
after having a first glance on the MMC/SD driver source, I'm unsure how to
handle the following requirement (System: Kernel 2.6.30 on i386).
I'm trying to integrate a SD card with a 'command system expansion' via
switch-command (see 'sd card association', 'physical layer simplified spec
2.00', chapter 4.3.12). The additional commands are used to communicate with
a specialized controller within the SD card (1), as well as access hidden
memory in a secure way (2). Because of the multi functionality (ordinary SD
+ 2 additional features) and not SDIO, I'd like to get a clue where to
start?
The first extension might be handled via ioctrl(), so that a user space
applications could use it.
The second one should be accessible as a device, which can be mounted to
apply a file system.
So there are some questions:
- Do I have to write a complete new driver?
- Can I rely on the existing driver?
- Is there already something implemented?
- Where to place it?
- Do I need a new major device id (in case of a new driver) or just a minor
one for mounting?
Another problem might be, that a flash access (read/write) could intercept
the extended communication and vice versa?
In the hope to get a little bit of light in the dark,
TIA
Norman
^ permalink raw reply [flat|nested] 42+ messages in thread
end of thread, other threads:[~2018-02-04 7:29 UTC | newest]
Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-31 8:49 (unknown), merez
-- strict thread matches above, loose matches on Subject: below --
2018-01-29 17:17 (unknown), Jones
2017-07-09 23:19 (unknown), Corporate Lenders
2017-04-17 0:43 (unknown), John Ewalt
2017-03-21 6:58 (unknown) Piotr Sroka
2017-01-21 17:47 (unknown), amit mahadik
2017-01-09 11:33 [PATCH v2 0/7] uapi: export all headers under uapi directories Arnd Bergmann
2017-01-13 10:46 ` [PATCH v3 0/8] " Nicolas Dichtel
2017-01-13 10:46 ` [PATCH v3 1/8] arm: put types.h in uapi Nicolas Dichtel
2017-01-13 15:36 ` (unknown) David Howells
2015-04-29 20:47 (unknown) Angelo Dureghello
2014-05-23 2:50 (unknown), Wang, Yalin
2013-10-17 2:48 (unknown), remittance2013@hotmail.comContact
2013-09-19 1:04 (unknown), Loan Offer
2012-09-28 10:28 (unknown), yongd
2012-09-18 4:52 (unknown), Mr. Beuker Hendrik
2012-09-07 0:12 (unknown), Allen and Violet Large
2012-09-06 12:23 (unknown), MR.TAN WONG
2012-08-09 6:55 (unknown), Lee Susman
2012-03-31 14:44 (unknown), jin mong
2011-12-05 9:14 (unknown), r66093
2011-10-31 14:47 (unknown), ygardi
2011-10-31 7:43 (unknown) Bar Yasser
2011-09-22 11:10 (unknown), Girish K S
2011-09-22 11:10 ` (unknown), Girish K S
2011-06-17 3:35 (unknown), Mr. Vincent Cheng
2011-06-15 4:27 (unknown), Microsoft Promotion Award Team
2011-05-16 23:30 (unknown), Greg Moore
2010-11-16 13:59 (unknown), , Ming-Yang Lee
2010-08-21 16:19 (unknown) Award Promo
2010-07-28 6:02 (unknown), Roy Zang
2010-07-17 8:06 (unknown), Grant Mayor
2010-06-05 17:29 (unknown) Michał Mirosław
2010-06-05 17:29 ` (unknown) Michał Mirosław
2010-06-05 17:29 ` (unknown) Michał Mirosław
2010-06-03 0:36 (unknown), Mr. zong lee
2010-06-03 0:25 (unknown), Mr. zong lee
2010-06-03 0:17 (unknown), Mr. zong lee
2010-04-16 14:19 (unknown), Ups Courier
2010-03-27 13:31 (unknown), EuroMIllions
2010-03-25 0:01 (unknown), UBS International Holdings BV
2010-03-22 23:33 (unknown), UBS International Holdings BV
2010-02-13 23:16 (unknown), PATRICK CHAN
2009-08-22 2:37 (unknown), Kyungmin Park
2009-08-21 14:56 (unknown), Normann Cunz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox