[Armadillo:05878] Re: Armadillo-440で802.11 SDIO無線LANカードを使う
nakai
email@hidden
2010年 10月 1日 (金) 17:06:14 JST
nakaiです。
>> + if (chunk_remain)
>> + writel(htonl(data), host->ioaddr + SDHCI_BUFFER);
これだとちょっと不可解です。
シフトレジスタ(SDHCI_BUFFER)の構造とマッチしないように思います。
2, 3バイト転送の場合など、問題ないでしょうか?
(2010/10/01 15:35), Kazunao Yokoo wrote:
> 横尾です。
> お世話になっております。
>
> パッチですが、dataの中身がひっくり返っていたので、
>
>> + if (chunk_remain)
>> + writel(htonl(data), host->ioaddr + SDHCI_BUFFER);
>
> というように、dataをひっくり返してから
> bufferに書き込みました。
>
> 上記修正にて、ping疎通まで確認できました。
>
>
> ありがとうございました
> m(__)m
>
> 以上、よろしくお願いいたします。
>
>
> (2010/10/01 14:51), nakai wrote:
>> 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;
>> }
>>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内