diff options
Diffstat (limited to 'arch/arm/plat-omap/iommu.c')
| -rw-r--r-- | arch/arm/plat-omap/iommu.c | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c index 6cd151b31bc..b1107c08da5 100644 --- a/arch/arm/plat-omap/iommu.c +++ b/arch/arm/plat-omap/iommu.c @@ -830,6 +830,28 @@ static int device_match_by_alias(struct device *dev, void *data)  }  /** + * iommu_set_da_range - Set a valid device address range + * @obj:		target iommu + * @start		Start of valid range + * @end			End of valid range + **/ +int iommu_set_da_range(struct iommu *obj, u32 start, u32 end) +{ + +	if (!obj) +		return -EFAULT; + +	if (end < start || !PAGE_ALIGN(start | end)) +		return -EINVAL; + +	obj->da_start = start; +	obj->da_end = end; + +	return 0; +} +EXPORT_SYMBOL_GPL(iommu_set_da_range); + +/**   * iommu_get - Get iommu handler   * @name:	target iommu name   **/ @@ -922,6 +944,8 @@ static int __devinit omap_iommu_probe(struct platform_device *pdev)  	obj->name = pdata->name;  	obj->dev = &pdev->dev;  	obj->ctx = (void *)obj + sizeof(*obj); +	obj->da_start = pdata->da_start; +	obj->da_end = pdata->da_end;  	mutex_init(&obj->iommu_lock);  	mutex_init(&obj->mmap_lock);  |