the at91 mci controller does not recognized my libertas 8686 sdio wifi chip after a reset

Manuel Stahl manuel.stahl at iis.fraunhofer.de
Wed Mar 31 09:11:58 EDT 2010


Hi David,

seems that it only works when you hard reset the wifi chip.

Am 21.03.2010 11:27, schrieb David MOUSSAUD:
> Hello,
>
> I'm writting to the both mmc&  libertas mailing list  because i might
> think the problem is related.
>
> I'm using a prototype board running a  AT91sam9g20 processor. I have a
> libertas sdio wifi chip connected to my MCI controller.
> I've applied the 2.6.32 bsp patch.
>
> When I power up the board (power on reset), the sdio chip is well
> probed by the mci controller.
> But when i reset the board, the mmc_rescan function failed because the call to
>
> /*
> * First we search for SDIO...
> */
> err = mmc_send_io_op_cond(host, 0,&ocr);
>
> return 110;
>
> so my sdio chip is not recognized by my kernel.
>
> I've tried to apply that patch "sdio : recognize io card without
> powercycle" ( 516a82422209e078345d0ca54b16793d7bfd4782 ) without success.
>
> Here is a dump of the mmc dialogue when the board is only reseted :
> [    1.160000] mmc0: starting CMD52 arg 00000c00 flags 00000195
>     [    1.160000] Sending command 52 as 00001874, arg = 00000C00,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.160000] MCI irq: status = 0000C0E5, C07F0001, 00000001
>     [    1.160000] Command ready
>     [    1.160000] Completed command
>     [    1.160000] Status = 00000001/0000c0e5 [00001000 00000000
> 00000000 00000000]
>     [    1.160000] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 00000000
>     [    1.160000] mmc0: starting CMD52 arg 80000c08 flags 00000195
>     [    1.160000] Sending command 52 as 00001874, arg = 80000C08,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.160000] MCI irq: status = 0000C0E5, C07F0001, 00000001
>     [    1.160000] Command ready
>     [    1.160000] Completed command
>     [    1.160000] Status = 00000001/0000c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.160000] mmc0: req done (CMD52): 0: 00001008 00000000 00000000 00000000
>     [    1.160000] mmc0: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd
> 21 width 0 timing 0
>     [    1.160000] clkdiv = 124. mcck = 397312
>     [    1.160000] MMC: Setting controller bus width to 1
>     [    1.160000] mmc0: starting CMD0 arg 00000000 flags 000000c0
>     [    1.160000] Sending command 0 as 00000800, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.160000] MCI irq: status = 0000C0E5, C07F0001, 00000001
>     [    1.160000] Command ready
>     [    1.160000] Completed command
>     [    1.160000] Status = 00000001/0000c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.160000] mmc0: req done (CMD0): 0: 00001008 00000000 00000000 00000000
>     [    1.160000] mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd
> 21 width 0 timing 0
>     [    1.160000] clkdiv = 124. mcck = 397312
>     [    1.160000] MMC: Setting controller bus width to 1
>     [    1.160000] mmc0: starting CMD8 arg 000001aa flags 000002f5
>     [    1.160000] Sending command 8 as 00001848, arg = 000001AA,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.160000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.160000] MMC: Response timeout
>     [    1.160000] Completed command
>     [    1.160000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.160000] Error detected and set to -110/0 (cmd = 8, retries = 0)
>     [    1.160000] mmc0: req done (CMD8): -110: 00001008 00000000
> 00000000 00000000
>     [    1.160000] mmc0: starting CMD5 arg 00000000 flags 000002e1
>     [    1.160000] Sending command 5 as 00001845, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.160000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.160000] MMC: Response timeout
>     [    1.160000] Completed command
>     [    1.160000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.160000] Error detected and set to -110/0 (cmd = 5, retries = 3)
>     [    1.160000] mmc0: req failed (CMD5): -110, retrying...
>     [    1.160000] Sending command 5 as 00001845, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.170000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.170000] MMC: Response timeout
>     [    1.170000] Completed command
>     [    1.170000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.170000] Error detected and set to -110/0 (cmd = 5, retries = 2)
>     [    1.170000] mmc0: req failed (CMD5): -110, retrying...
>     [    1.170000] Sending command 5 as 00001845, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.170000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.170000] MMC: Response timeout
>     [    1.170000] Completed command
>     [    1.170000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.170000] Error detected and set to -110/0 (cmd = 5, retries = 1)
>     [    1.170000] mmc0: req failed (CMD5): -110, retrying...
>     [    1.170000] Sending command 5 as 00001845, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.170000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.170000] MMC: Response timeout
>     [    1.170000] Completed command
>     [    1.170000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.170000] Error detected and set to -110/0 (cmd = 5, retries = 0)
>     [    1.170000] mmc0: req done (CMD5): -110: 00001008 00000000
> 00000000 00000000
>     [    1.170000] mmc0: starting CMD55 arg 00000000 flags 000000f5
>     [    1.170000] Sending command 55 as 00001877, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.180000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.180000] MMC: Response timeout
>     [    1.180000] Completed command
>     [    1.180000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.180000] Error detected and set to -110/0 (cmd = 55, retries = 0)
>     [    1.180000] mmc0: req done (CMD55): -110: 00001008 00000000
> 00000000 00000000
>     [    1.180000] mmc0: starting CMD55 arg 00000000 flags 000000f5
>     [    1.180000] Sending command 55 as 00001877, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.180000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.180000] MMC: Response timeout
>     [    1.180000] Completed command
>     [    1.180000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.180000] Error detected and set to -110/0 (cmd = 55, retries = 0)
>     [    1.180000] mmc0: req done (CMD55): -110: 00001008 00000000
> 00000000 00000000
>     [    1.180000] mmc0: starting CMD55 arg 00000000 flags 000000f5
>     [    1.180000] Sending command 55 as 00001877, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.180000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.180000] MMC: Response timeout
>     [    1.180000] Completed command
>     [    1.180000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.180000] Error detected and set to -110/0 (cmd = 55, retries = 0)
>     [    1.180000] mmc0: req done (CMD55): -110: 00001008 00000000
> 00000000 00000000
>     [    1.180000] mmc0: starting CMD55 arg 00000000 flags 000000f5
>     [    1.180000] Sending command 55 as 00001877, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.180000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.180000] MMC: Response timeout
>     [    1.180000] Completed command
>     [    1.180000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.180000] Error detected and set to -110/0 (cmd = 55, retries = 0)
>     [    1.180000] mmc0: req done (CMD55): -110: 00001008 00000000
> 00000000 00000000
>     [    1.180000] mmc0: starting CMD1 arg 00000000 flags 000000e1
>     [    1.180000] Clearing timeout
>     [    1.180000] Clearing: SR = 0000C0E4
>     [    1.180000] Clearing: SR = 0000C0E4
>     [    1.180000] Clearing: SR = 0000C0E4
>     [    1.180000] Clearing: SR = 0000C0E4
>     [    1.180000] Sending command 1 as 00001841, arg = 00000000,
> blocks = 0, length = 0 (MR = 00009B7C)
>     [    1.180000] MCI irq: status = 0010C0E4, C07F0001, 00100000
>     [    1.180000] MMC: Response timeout
>     [    1.180000] Completed command
>     [    1.180000] Status = 00100000/0010c0e5 [00001008 00000000
> 00000000 00000000]
>     [    1.180000] Error detected and set to -110/0 (cmd = 1, retries = 0)
>     [    1.180000] mmc0: req done (CMD1): -110: 00001008 00000000
> 00000000 00000000
>     [    1.180000] mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0
> width 0 timing 0
>     [    1.180000] MMC: Setting controller bus width to 1
>
> Thanks in advance for any tips,
> Regards,
>
> D.MOUSSAUD.
>
> _______________________________________________
> libertas-dev mailing list
> libertas-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/libertas-dev


-- 
Dipl.-Inf. Manuel Stahl
Fraunhofer-Institut für Integrierte Schaltungen IIS
- Leistungsoptimierte Systeme -
Nordostpark 93                Telefon  +49 (0)911/58061-6419
90411 Nürnberg                Fax      +49 (0)911/58061-6398
http://www.iis.fraunhofer.de  manuel.stahl at iis.fraunhofer.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: manuel_stahl.vcf
Type: text/x-vcard
Size: 161 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/libertas-dev/attachments/20100331/9c352c50/attachment.vcf>


More information about the libertas-dev mailing list