I think it is more of a timing issue than mechanical per se - I'm running an own-build kernel (2.6.28-rc4) on top of intrepid on an acer aspire one, and was experiencing 'mmcblk0: error -110 transferring data' errors on a 16Gb SDHC card in the left hand slot.
The card was enabled for UDMA66 and hdparm -t /dev/mmcblk0 was reporting transfer rates in excess of 20Mb/sec, but it was unreliable.
I had a look at the kernel source, specifically file drivers/mmc/host/sdhci-pci.c, within function jmicron_probe: First thing it does is set up the quirks mode:
I've commented out the SDHCI_QUIRK_FORCE_HIGHSPEED and rebuild the kernel ... no more errors at all, but of course throughput is now only about 11Mb/sec. Much better to be stable than fast, IMHO.
Obviously this will only work for jmicron controllers ... I think that the bug is elsewhere, and all this does is mask the root cause of the problem (IIRC someone on the acer aspire one forum thought it was a timing / buffering / interrupt issue, but can't quote exactly).
I think it is more of a timing issue than mechanical per se - I'm running an own-build kernel (2.6.28-rc4) on top of intrepid on an acer aspire one, and was experiencing 'mmcblk0: error -110 transferring data' errors on a 16Gb SDHC card in the left hand slot.
The card was enabled for UDMA66 and hdparm -t /dev/mmcblk0 was reporting transfer rates in excess of 20Mb/sec, but it was unreliable.
I had a look at the kernel source, specifically file drivers/ mmc/host/ sdhci-pci. c, within function jmicron_probe: First thing it does is set up the quirks mode:
if (chip-> pdev->revision == 0) { 32BIT_DMA_ ADDR | QUIRK_32BIT_ DMA_SIZE | QUIRK_32BIT_ ADMA_SIZE | QUIRK_RESET_ AFTER_REQUEST | QUIRK_BROKEN_ SMALL_PIO | QUIRK_FORCE_ HIGHSPEED;
chip->quirks |= SDHCI_QUIRK_
SDHCI_
SDHCI_
SDHCI_
SDHCI_
SDHCI_
}
I've commented out the SDHCI_QUIRK_ FORCE_HIGHSPEED and rebuild the kernel ... no more errors at all, but of course throughput is now only about 11Mb/sec. Much better to be stable than fast, IMHO.
Obviously this will only work for jmicron controllers ... I think that the bug is elsewhere, and all this does is mask the root cause of the problem (IIRC someone on the acer aspire one forum thought it was a timing / buffering / interrupt issue, but can't quote exactly).
R.