[i2c-mxs] Broken DMA operations from within a module

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Feb 13 07:14:50 EST 2013


On Wed, Feb 13, 2013 at 01:00:50PM +0100, Enrico Scholz wrote:
> E.g. when doing something like
> 
> 	struct i2c_msg xfer = {
>                .buf = "something",
>                ...
>         };
> 
>         ret = i2c_transfer(client->adapter, &xfer, 1);
> 
> random data will be sent because buf is not DMA mapable ("something" is
> located in the .strtab section within module memory). MXS has a memory
> layout like

DMA buffers must be located in lowmem *always*.  This means placing them
in the .data segment does not work.  USB has been through this already
and it's well known there...



More information about the linux-arm-kernel mailing list