[Bug 1223] SD card no longer operational with 2.6.24 (the never-ending saga)
mwester at dls.net
Tue Feb 19 05:10:15 CET 2008
Mike (mwester) wrote:
> Mike (mwester) wrote:
>> Tested. The write fix is *definitely* needed as well; revision 4080
>> fixes both read and write. Thanks all - we're pretty close to being
>> able to call the .24 kernel "stable" for the gta01, I think.
> No we're not. I spoke too soon, that'll teach me to always test
> thoroughly. Reads work fine with this change, but writes fail in
> strange ways. My apologies to anyone inconvenienced by my erroneous
> declaration of success :(
> We need to decrement fifo as we write the unaligned data out in the
> first loop (s3cmci.c):
Still not there (yikes!). The commit for svn4082 committed the change
from this last email, but it got applied to a different area of the
source file. So that commit didn't fix the problem. (That's the bad news).
Now the good news: that commit exposed a similar problem in a different
area of the code -- same loop structure, needs the same fixes. This
time around I spent a little extra time doing a review of the two
functions, and ended up changing the structure of the loops slightly:
"while ((condition1) && fifo--)" is a bad idea if you need to ensure
that fifo doesn't go below zero when the loop exits (follow the code
with the case where we have an unaligned buffer, and need to read or
write 1 byte).
Anyway, this time, to avoid ambiguity, here's a URL  to the patch
that should be applied to the svn4082 s3cmci.c source file. The entire
source file is also available .
With this, I sure hope this undead dragon will finally stay dead.
More information about the openmoko-kernel