Lines Matching defs:dma
55 struct fdtbus_dma_controller *dma;
57 dma = kmem_alloc(sizeof(*dma), KM_SLEEP);
58 dma->dma_dev = dev;
59 dma->dma_phandle = phandle;
60 dma->dma_funcs = funcs;
62 LIST_INSERT_HEAD(&fdtbus_dma_controllers, dma, dma_next);
70 struct fdtbus_dma_controller *dma;
72 LIST_FOREACH(dma, &fdtbus_dma_controllers, dma_next) {
73 if (dma->dma_phandle == phandle)
74 return dma;
84 struct fdtbus_dma *dma = NULL;
105 if (of_getprop_uint32(dc_phandle, "#dma-cells", &dma_cells))
115 dma = kmem_alloc(sizeof(*dma), KM_SLEEP);
116 dma->dma_dc = dc;
117 dma->dma_priv = dma_priv;
129 return dma;
138 err = fdtbus_get_index(phandle, "dma-names", name, &index);
146 fdtbus_dma_put(struct fdtbus_dma *dma)
148 struct fdtbus_dma_controller *dc = dma->dma_dc;
150 dc->dma_funcs->release(dc->dma_dev, dma->dma_priv);
151 kmem_free(dma, sizeof(*dma));
155 fdtbus_dma_transfer(struct fdtbus_dma *dma, struct fdtbus_dma_req *req)
157 struct fdtbus_dma_controller *dc = dma->dma_dc;
159 return dc->dma_funcs->transfer(dc->dma_dev, dma->dma_priv, req);
163 fdtbus_dma_halt(struct fdtbus_dma *dma)
165 struct fdtbus_dma_controller *dc = dma->dma_dc;
167 return dc->dma_funcs->halt(dc->dma_dev, dma->dma_priv);