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) {
                chip->quirks |= SDHCI_QUIRK_32BIT_DMA_ADDR |
                          SDHCI_QUIRK_32BIT_DMA_SIZE |
                          SDHCI_QUIRK_32BIT_ADMA_SIZE |
                          SDHCI_QUIRK_RESET_AFTER_REQUEST |
                          SDHCI_QUIRK_BROKEN_SMALL_PIO |
                          SDHCI_QUIRK_FORCE_HIGHSPEED;
        }

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.

-- 
SDHC Card reader I/O errors on Hardy
https://bugs.launchpad.net/bugs/247819
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to