[PATCH 3/8] dmaengine: ste_dma40: Actually write the runtime configuration to registers

Rabin Vincent rabin at rab.in
Fri Apr 12 09:49:31 EDT 2013


2013/4/9 Lee Jones <lee.jones at linaro.org>:
> Someone has spent a fair amount of effort writing a runtime configuration
> changing algorithm for DMA clients. However, the config appears to never
> actually make it to hardware. In order for the configuration to take hold
> we need to issue a d40_config_write(), as this is the routine which writes
> it into the hardware's registers.

No, it's not.  This function is only for initial configuration which
should only be written when the channel is allocated.  In fact, by
calling it here in runtime_config, you are introducing a serious bug:
other logical channels on the same physical channel will stop because of
the SSLNK/SDLNK of the physical channel being zeroed.

The runtime config already makes it the hardware in the existing code,
via d40_*_cfg().



More information about the linux-arm-kernel mailing list