diff options
| author | Ruslan Bukin <br@FreeBSD.org> | 2020-02-07 14:36:28 +0000 |
|---|---|---|
| committer | Ruslan Bukin <br@FreeBSD.org> | 2020-02-07 14:36:28 +0000 |
| commit | a8692c16c962027f141facc357ee28578ccf04b7 (patch) | |
| tree | 0457fa9ab94616ffc04853c23607e71de3f8b455 /sys/dev/xdma | |
| parent | 79208b1025f3a99aea828109b5423a62be3f87b0 (diff) | |
Notes
Diffstat (limited to 'sys/dev/xdma')
| -rw-r--r-- | sys/dev/xdma/xdma.c | 18 | ||||
| -rw-r--r-- | sys/dev/xdma/xdma.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/xdma/xdma.c b/sys/dev/xdma/xdma.c index d88cb1306536..aa6e6497a34c 100644 --- a/sys/dev/xdma/xdma.c +++ b/sys/dev/xdma/xdma.c @@ -511,6 +511,24 @@ xdma_ofw_get(device_t dev, const char *prop) #endif /* + * Allocate xdma controller. + */ +xdma_controller_t * +xdma_get(device_t dev, device_t dma_dev) +{ + xdma_controller_t *xdma; + + xdma = malloc(sizeof(struct xdma_controller), + M_XDMA, M_WAITOK | M_ZERO); + xdma->dev = dev; + xdma->dma_dev = dma_dev; + + TAILQ_INIT(&xdma->channels); + + return (xdma); +} + +/* * Free xDMA controller object. */ int diff --git a/sys/dev/xdma/xdma.h b/sys/dev/xdma/xdma.h index 48a03c125b3a..b9a8dd2c37c3 100644 --- a/sys/dev/xdma/xdma.h +++ b/sys/dev/xdma/xdma.h @@ -231,6 +231,7 @@ static MALLOC_DEFINE(M_XDMA, "xdma", "xDMA framework"); /* xDMA controller ops */ xdma_controller_t *xdma_ofw_get(device_t dev, const char *prop); +xdma_controller_t *xdma_get(device_t dev, device_t dma_dev); int xdma_put(xdma_controller_t *xdma); vmem_t * xdma_get_memory(device_t dev); void xdma_put_memory(vmem_t *vmem); |
