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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to