kernel: use DMA engine instead of custum implementation
This patch port the FMC ADC driver to use DMA engines to handle
DMA data transfers in order to move out any custum dependency with
the carrier.
The dedicated code for `svec` and `spec` are not anymore useful, so
I removed those files. Anyway, it is not completely true that we can
get rid off the knowledge about the carrier; for instance the `svec`
needs a special configuration because of the VME bus.
The Linux kernel API does not offer a way to set the DMA context
(usefull for VME transfers) to a transfer. So, I have to call the
operation directly.
In order to find the correct dmaengine channel suitable for the
FMC-ADC instance, the dmaengine filter function compares the device
instances.
If we are on a SPEC, then the dmaengine is on the SPEC itself (in the
gateware we have the gennum dma). So, the dmaengine and the FMC-ADC
must have the same FMC carrier
If we are on a SVEC, then the dmaengine is on the VME bridge. So,
the dmaengine and FMC carrier share the same VME bridge.
Signed-off-by: Federico Vaga <federico.vaga@cern.ch>
Showing
This diff is collapsed.
kernel/fa-spec-dma.c
deleted
100644 → 0
kernel/fa-svec-dma.c
deleted
100644 → 0
Please
register
or
sign in
to comment