[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 メーリングリストの案内