diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 27 | 
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 7d843cd3b33..00c006686b0 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -3329,6 +3329,33 @@ int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res)  }  /** + * omap_hwmod_fill_dma_resources - fill struct resource array with dma data + * @oh: struct omap_hwmod * + * @res: pointer to the array of struct resource to fill + * + * Fill the struct resource array @res with dma resource data from the + * omap_hwmod @oh.  Intended to be called by code that registers + * omap_devices.  See also omap_hwmod_count_resources().  Returns the + * number of array elements filled. + */ +int omap_hwmod_fill_dma_resources(struct omap_hwmod *oh, struct resource *res) +{ +	int i, sdma_reqs_cnt; +	int r = 0; + +	sdma_reqs_cnt = _count_sdma_reqs(oh); +	for (i = 0; i < sdma_reqs_cnt; i++) { +		(res + r)->name = (oh->sdma_reqs + i)->name; +		(res + r)->start = (oh->sdma_reqs + i)->dma_req; +		(res + r)->end = (oh->sdma_reqs + i)->dma_req; +		(res + r)->flags = IORESOURCE_DMA; +		r++; +	} + +	return r; +} + +/**   * omap_hwmod_get_resource_byname - fetch IP block integration data by name   * @oh: struct omap_hwmod * to operate on   * @type: one of the IORESOURCE_* constants from include/linux/ioport.h  |