Am 29.03.2017 um 22:56 schrieb Heiner Kallweit: > Certain 64-bit systems (e.g. Amlogic Meson GX) require buffers to be > used for DMA to be 8-byte-aligned. struct sdio_func has an embedded > small DMA buffer not meeting this requirement. > Testing an extension to meson-gx driver for switching to descriptor > chain mode broke SDIO therefore. Aligning tmpbuf to a 8-byte > boundary fixed the driver behavior. > > Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> > Tested-by: Helmut Klein <hgkr.klein@xxxxxxxxx> > --- > v2: > - switch to much simpler version as suggested by Kevin Hilman <khilman@xxxxxxxxxxxx> > - adjust commit message > --- > include/linux/mmc/sdio_func.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/linux/mmc/sdio_func.h b/include/linux/mmc/sdio_func.h > index aab032a6..65d90f76 100644 > --- a/include/linux/mmc/sdio_func.h > +++ b/include/linux/mmc/sdio_func.h > @@ -53,7 +53,8 @@ struct sdio_func { > unsigned int state; /* function state */ > #define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ > > - u8 tmpbuf[4]; /* DMA:able scratch buffer */ > + /* take care of proper alignment for DMA on certain 64-bit systems */ > + u8 __aligned(8) tmpbuf[4]; /* DMA:able scratch buffer */ > > unsigned num_info; /* number of info strings */ > const char **info; /* info strings */ > Ulf, do you have an opinion on this one? A related patch was just applied to the brcmfmac WiFi driver -> https://patchwork.kernel.org/patch/9665425/ In sum WiFi over SDIO would be ok an systems requiring 8 byte aligned DMA buffers (at least systems using the brcmfmac driver). OK here means that no fallback to bounce buffer mode is necessary. Rgds, Heiner -- 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