title: Linux Platform Drivers: How to pass DMA Ops to cells?
body: <p>I am writing a multi function driver (mfd) for a PCIe device with DMA capabilities. Several cells are added through <code>mfd_add_devices</code>.</p>
  
  <p>I found that the <code>struct device*</code> of the top level mfd driver has the correct <code>struct dma_ops</code> set to allocate buffers, manage DMA transfers etc. Howewer, the child platform drivers get another <code>struct dma_ops</code> filled with dummy implementations.</p>
  
  <p>How can arrange for the child platform drivers to get/inherit the correct set of DMA operations from their parent?</p>