[PATCH v2] mmc: meson-gx: work around broken SDIO with certain WiFi chips

Ulf Hansson ulf.hansson at linaro.org
Mon Jun 12 00:58:33 PDT 2017


On 10 June 2017 at 13:36, Heiner Kallweit <hkallweit1 at gmail.com> wrote:
> There have been reports about SDIO failing with certain WiFi chips in
> descriptor chain mode. SD / eMMC are working fine.
>
> So let's fall back to bounce buffer mode for command SD_IO_RW_EXTENDED.
> This was reported to fix the error.
>
> Fixes: 79ed05e329c3 "mmc: meson-gx: add support for descriptor chain mode"
> Cc: <stable at vger.kernel.org> # 4.12.x
> Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
> Tested-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>

Thanks, applied for fixes!

Kind regards
Uffe

> ---
> v2:
> - fixed affected WiFi chip: actually it is AP6255
> - added tested-by
> ---
>  drivers/mmc/host/meson-gx-mmc.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
> index 1842ed34..4cdbe3c0 100644
> --- a/drivers/mmc/host/meson-gx-mmc.c
> +++ b/drivers/mmc/host/meson-gx-mmc.c
> @@ -210,6 +210,15 @@ static void meson_mmc_get_transfer_mode(struct mmc_host *mmc,
>         int i;
>         bool use_desc_chain_mode = true;
>
> +       /*
> +        * Broken SDIO with AP6255-based WiFi on Khadas VIM Pro has been
> +        * reported. For some strange reason this occurs in descriptor
> +        * chain mode only. So let's fall back to bounce buffer mode
> +        * for command SD_IO_RW_EXTENDED.
> +        */
> +       if (mrq->cmd->opcode == SD_IO_RW_EXTENDED)
> +               return;
> +
>         for_each_sg(data->sg, sg, data->sg_len, i)
>                 /* check for 8 byte alignment */
>                 if (sg->offset & 7) {
> --
> 2.13.0
>



More information about the linux-amlogic mailing list