diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/drivers/mmc/host/at91_mci.c linux-2.6.32.3/drivers/mmc/host/at91_mci.c --- linux-2.6.32.3-vanilla/drivers/mmc/host/at91_mci.c 2010-01-06 17:07:45.000000000 -0600 +++ linux-2.6.32.3/drivers/mmc/host/at91_mci.c 2010-10-11 10:16:06.000000000 -0500 @@ -201,7 +201,7 @@ static inline void at91_mci_sg_to_dma(st 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 @@ static void at91_mci_enable(struct at91m 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 @@ static void at91_mci_send_command(struct * 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 @@ static int __init at91_mci_probe(struct 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"