X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fiommu-helper.c;h=75dbda03f4fb99a92ef8cc3ead817afefd707702;hb=45432371b448c80622d8069b845625996127caeb;hp=a3b8d4c3f77a5e7e466bd8f5e5591f3dcaa2c3bd;hpb=ae9111912500db9fcc244ec16c3d7e471c551f52;p=linux-2.6-omap-h63xx.git diff --git a/lib/iommu-helper.c b/lib/iommu-helper.c index a3b8d4c3f77..75dbda03f4f 100644 --- a/lib/iommu-helper.c +++ b/lib/iommu-helper.c @@ -30,8 +30,7 @@ again: return index; } -static inline void set_bit_area(unsigned long *map, unsigned long i, - int len) +void iommu_area_reserve(unsigned long *map, unsigned long i, int len) { unsigned long end = i + len; while (i < end) { @@ -64,7 +63,7 @@ again: start = index + 1; goto again; } - set_bit_area(map, index, nr); + iommu_area_reserve(map, index, nr); } return index; } @@ -80,3 +79,12 @@ void iommu_area_free(unsigned long *map, unsigned long start, unsigned int nr) } } EXPORT_SYMBOL(iommu_area_free); + +unsigned long iommu_num_pages(unsigned long addr, unsigned long len, + unsigned long io_page_size) +{ + unsigned long size = (addr & (io_page_size - 1)) + len; + + return DIV_ROUND_UP(size, io_page_size); +} +EXPORT_SYMBOL(iommu_num_pages);