diff -urN -x CVS linux-2.6.32/drivers/mmc/host/at91_mci.c linux-2.6/drivers/mmc/host/at91_mci.c --- linux-2.6.32/drivers/mmc/host/at91_mci.c 2010-01-28 20:30:25.000000000 +0200 +++ linux-2.6/drivers/mmc/host/at91_mci.c 2009-12-14 21:55:58.000000000 +0200 @@ -201,7 +201,7 @@ len = data->sg_len; /* AT91SAM926[0/3] Data Write Operation and number of bytes erratum */ - if (cpu_is_at91sam9260() || cpu_is_at91sam9263()) + if (cpu_is_at91sam9260() || cpu_is_at91sam9263() || cpu_is_at91sam9g20()) if (host->total_length == 12) memset(dmabuf, 0, 12); @@ -461,7 +461,7 @@ at91_mci_write(host, AT91_MCI_DTOR, AT91_MCI_DTOMUL_1M | AT91_MCI_DTOCYC); mr = AT91_MCI_PDCMODE | 0x34a; - if (cpu_is_at91sam9260() || cpu_is_at91sam9263()) + if (cpu_is_at91sam9260() || cpu_is_at91sam9263() || cpu_is_at91sam9g20()) mr |= AT91_MCI_RDPROOF | AT91_MCI_WRPROOF; at91_mci_write(host, AT91_MCI_MR, mr); @@ -617,7 +617,7 @@ * AT91SAM926[0/3] Data Write Operation and * number of bytes erratum */ - if (cpu_is_at91sam9260 () || cpu_is_at91sam9263()) + if (cpu_is_at91sam9260 () || cpu_is_at91sam9263() || cpu_is_at91sam9g20()) if (host->total_length < 12) host->total_length = 12; @@ -1017,7 +1017,7 @@ host->bus_mode = 0; host->board = pdev->dev.platform_data; if (host->board->wire4) { - if (cpu_is_at91sam9260() || cpu_is_at91sam9263()) + if (cpu_is_at91sam9260() || cpu_is_at91sam9263() || cpu_is_at91sam9g20()) mmc->caps |= MMC_CAP_4_BIT_DATA; else dev_warn(&pdev->dev, "4 wire bus mode not supported"