I use the SD card with the ethernet shield and the wifi shield. Both work without that "fix".
Why hasn't this problem been resolved in the IDE SD library?
This problem impacts few devices since few send data to the master on the first byte of a transaction.
This problem impacts few devices since few send data to the master on the first byte of a transaction. The SD MISO goes high-Z after the first transfer.
I checked the level of the SD slave select (D4) after every call to myFile.read(), and it was always HIGH. That means if the MISO line is malfunctioning, it would be a hardware problem with the SD card itself, not the SD library.
You must send clocks to an SD with chips select high to cause the SD card to release MISO.
Is that one particular card, or all cards? Do you have a link to a reference covering that?
What do you mean "without the ethernet present"? I tested the SD cards by disabling the ethernet or wifi SPI and they worked ok. I don't have a SD module or shield without any other function.
edit: If the MISO line was going to be a problem, it would be when working with another SPI device like the w5100 or HDG104.
I imagine they found and patched the problem in the ethernet library when writing the code to control the W5100 chip.