[Armadillo:05876] Re: Armadillo-440で802.11 SDIO無線LANカードを使う

nakai email@hidden
2010年 10月 1日 (金) 14:51:37 JST


nakaiです。

> Complete sending cmd, transfer mode would be 0x353a0002.
> *** mmc1 got interrupt: 0x00000011
> PIO writing
> PIO transfer complete.
> *** mmc1 got interrupt: 0x00000010  <---[★2]
> *** mmc1 got interrupt: 0x00000010

成功時と失敗時の違いは、"transfer complete"が発生するかですね。
ソースコードをみると、「blklen:1, blkcnt:1」の場合は、
データ書き込みをしていないように見えます。
以下のパッチをあててみてもらえますか?

diff --git a/drivers/mmc/host/mx_sdhci.c b/drivers/mmc/host/mx_sdhci.c
index a803426..f16eb1a 100644
--- a/drivers/mmc/host/mx_sdhci.c
+++ b/drivers/mmc/host/mx_sdhci.c
@@ -382,6 +382,8 @@ static void sdhci_write_block_pio(struct sdhci_host *host)

                if (host->remain == 0) {
                        if (sdhci_next_sg(host) == 0) {
+                               if (chunk_remain)
+                                       writel(data, host->ioaddr + SDHCI_BUFFER);
                                BUG_ON(blksize != 0);
                                return;
                        }

(2010/10/01 13:15), Kazunao Yokoo wrote:
> 横尾です。
> お世話になっております。
> 
> # アドバイスありがとうございました。
> 
>> デバッグを無効にすると挙動が変わったりしませんか?
>> ログを吐くため、タイミングが若干変わったりします。
> 挙動は変わりませんでした。
> 
>> カード割り込みが入っているだけですよね?
>> athrosドライバが、割り込み要因のクリアをしていないのでは?
> 
> 現在調査中です。
> atheros側でカード割込みをenable/disable部分にログを入れて
> 再度ログをとりました。(メール最後に抜粋して貼り付け)
> 
> 
> 症状は昨日と同様で、[★2]以降、割込みがあがりつづけます。
> 割込み要因は0x00000010(BWR)です。
> ただ、[★1]で同じBWRが上がったときにはクリアされています。
> 
> 両者は共にCMD53(W)ですが、ARG値やblklenは異なります。
> 
> 私の勉強不足、かつこの程度の情報で恐縮なのですが、
> 割込みがあがりつづける原因について、何かお気づきの点あれば、
> ご指摘いただけたらと思います。
> 
> 以上、よろしくお願いいたします。
> 
> 
> ----- ログ抜粋 -----
> sdhci_send_command 0x34 is starting...
> Complete sending cmd, transfer mode would be 0x341a0000.
> *** mmc1 got interrupt: 0x00000001
> athsdio_configure:519 SDIO-IRQ enable
> [ARG:0x94083004  blklen:4  blkcnt:1]
> sdhci_send_command 0x35 is starting...
> mmc1: Too large timeout requested!
> Reverting to PIO in small data transfer.
> Complete sending cmd, transfer mode would be 0x353a0002.
> *** mmc1 got interrupt: 0x00000011<---[★1]
> PIO writing
> PIO transfer complete.
> *** mmc1 got interrupt: 0x00000002
> *** mmc1 got interrupt: 0x00000100
> athsdio_enable_irq:710 SDIO-IRQ disable
> sdhci_send_command 0x34 is starting...
> Complete sending cmd, transfer mode would be 0x341a0000.
> *** mmc1 got interrupt: 0x00000001
> [ARG:0x1408001c  blklen:28  blkcnt:1]
> sdhci_send_command 0x35 is starting...
> mmc1: Too large timeout requested!
> Complete sending cmd, transfer mode would be 0x353a0012.
> *** mmc1 got interrupt: 0x00000021
> PIO reading
> PIO transfer complete.
> *** mmc1 got interrupt: 0x00000002
> [ARG:0x90083601  blklen:1  blkcnt:1]
> sdhci_send_command 0x35 is starting...
> mmc1: Too large timeout requested!
> Reverting to PIO in small data transfer.
> Complete sending cmd, transfer mode would be 0x353a0002.
> *** mmc1 got interrupt: 0x00000011
> PIO writing
> PIO transfer complete.
> *** mmc1 got interrupt: 0x00000010  <---[★2]
> *** mmc1 got interrupt: 0x00000010
> *** mmc1 got interrupt: 0x00000010
> *** mmc1 got interrupt: 0x00000010
> *** mmc1 got interrupt: 0x00000010
> *** mmc1 got interrupt: 0x00000010
> *** mmc1 got interrupt: 0x00000010
> *** mmc1 got interrupt: 0x00000010
>    :
>    :
>    :
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 




armadillo メーリングリストの案内