Hi Olivier, On Thu, Dec 05, 2013 at 10:45:16AM +0100, Olivier Sobrie wrote: [...] > With this patch I'm able to use the wlan sdio module wl1271. > When you've time, it would be nice to validate or fix this > patch. I have tested it and it doesn't solve issue I have with Atheros module. > Thanks for your help, > > Olivier > > drivers/mmc/host/atmel-mci.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c > index b86b482..c599731 100644 > --- a/drivers/mmc/host/atmel-mci.c > +++ b/drivers/mmc/host/atmel-mci.c > @@ -45,6 +45,7 @@ > > #define ATMCI_DATA_ERROR_FLAGS (ATMCI_DCRCE | ATMCI_DTOE | ATMCI_OVRE | ATMCI_UNRE) > #define ATMCI_DMA_THRESHOLD 16 > +#define ATMCI_PDC_MIN_DATASIZE 16 > > enum { > EVENT_CMD_RDY = 0, > @@ -765,7 +766,10 @@ static void atmci_pdc_set_single_buf(struct atmel_mci *host, > } > > if (host->data_size <= buf_size) { > - if (host->data_size & 0x3) { > + if ((host->data_size < ATMCI_PDC_MIN_DATASIZE) && > + (dir == XFER_TRANSMIT)) { > + atmci_writel(host, counter_reg, 4); > + } else if (host->data_size & 0x3) { I have feedback from people who have issue with atmel-mci driver but not with at91-mci which has been removed unfortunately (it seems I had the only sdio wifi module working with atmel-mci driver in pdc mode...). So I think the 12 bytes value in the errata is correct. Moreover I am afraid that this patch could cause some other bugs. I mean the transfer size is 4 bytes, the sg length is 4 bytes too and we will ask PDC to perform a bigger transfer... With the previous driver it was not a problem because we didn't use sg directly, they were copied into another buffer. Regards Ludovic > /* If size is different from modulo 4, transfer bytes */ > atmci_writel(host, counter_reg, host->data_size); > atmci_writel(host, ATMCI_MR, host->mode_reg | ATMCI_MR_PDCFBYTE); > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html