summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2012-03-01 19:58:34 +0000
committerjhb <jhb@FreeBSD.org>2012-03-01 19:58:34 +0000
commit5013ab31bdd0c853bd73031dd2246844cd9f9cfe (patch)
treec681791d9aa316edfa305bde95f3cea4802aee56 /sys/powerpc
parentfbe3c228aa921805fe715fd6cd18c7f02d936815 (diff)
downloadFreeBSD-src-5013ab31bdd0c853bd73031dd2246844cd9f9cfe.zip
FreeBSD-src-5013ab31bdd0c853bd73031dd2246844cd9f9cfe.tar.gz
- Change contigmalloc() to use the vm_paddr_t type instead of an unsigned
long for specifying a boundary constraint. - Change bus_dma tags to use bus_addr_t instead of bus_size_t for boundary constraints. These allow boundary constraints to be fully expressed for cases where sizeof(bus_addr_t) != sizeof(bus_size_t). Specifically, it allows a driver to properly specify a 4GB boundary in a PAE kernel. Note that this cannot be safely MFC'd without a lot of compat shims due to KBI changes, so I do not intend to merge it. Reviewed by: scottl
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/powerpc/busdma_machdep.c4
-rw-r--r--sys/powerpc/powerpc/iommu_if.m2
-rw-r--r--sys/powerpc/ps3/ps3bus.c4
3 files changed, 5 insertions, 5 deletions
diff --git a/sys/powerpc/powerpc/busdma_machdep.c b/sys/powerpc/powerpc/busdma_machdep.c
index 7f9f8ec..2063b1d 100644
--- a/sys/powerpc/powerpc/busdma_machdep.c
+++ b/sys/powerpc/powerpc/busdma_machdep.c
@@ -63,7 +63,7 @@ struct bounce_zone;
struct bus_dma_tag {
bus_dma_tag_t parent;
bus_size_t alignment;
- bus_size_t boundary;
+ bus_addr_t boundary;
bus_addr_t lowaddr;
bus_addr_t highaddr;
bus_dma_filter_t *filter;
@@ -219,7 +219,7 @@ dflt_lock(void *arg, bus_dma_lock_op_t op)
*/
int
bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment,
- bus_size_t boundary, bus_addr_t lowaddr,
+ bus_addr_t boundary, bus_addr_t lowaddr,
bus_addr_t highaddr, bus_dma_filter_t *filter,
void *filterarg, bus_size_t maxsize, int nsegments,
bus_size_t maxsegsz, int flags, bus_dma_lock_t *lockfunc,
diff --git a/sys/powerpc/powerpc/iommu_if.m b/sys/powerpc/powerpc/iommu_if.m
index dec70e3..d37155e 100644
--- a/sys/powerpc/powerpc/iommu_if.m
+++ b/sys/powerpc/powerpc/iommu_if.m
@@ -41,7 +41,7 @@ METHOD int map {
bus_addr_t lowaddr;
bus_addr_t highaddr;
bus_size_t alignment;
- bus_size_t boundary;
+ bus_addr_t boundary;
void *cookie;
};
diff --git a/sys/powerpc/ps3/ps3bus.c b/sys/powerpc/ps3/ps3bus.c
index 4c6ed76..65e1153 100644
--- a/sys/powerpc/ps3/ps3bus.c
+++ b/sys/powerpc/ps3/ps3bus.c
@@ -64,7 +64,7 @@ static int ps3bus_activate_resource(device_t bus, device_t child, int type,
int rid, struct resource *res);
static bus_dma_tag_t ps3bus_get_dma_tag(device_t dev, device_t child);
static int ps3_iommu_map(device_t dev, bus_dma_segment_t *segs, int *nsegs, bus_addr_t min, bus_addr_t max, bus_size_t alignment,
- bus_size_t boundary, void *cookie);
+ bus_addr_t boundary, void *cookie);
static int ps3_iommu_unmap(device_t dev, bus_dma_segment_t *segs,
int nsegs, void *cookie);
static int ps3_gettime(device_t dev, struct timespec *ts);
@@ -697,7 +697,7 @@ fail:
static int
ps3_iommu_map(device_t dev, bus_dma_segment_t *segs, int *nsegs,
- bus_addr_t min, bus_addr_t max, bus_size_t alignment, bus_size_t boundary,
+ bus_addr_t min, bus_addr_t max, bus_size_t alignment, bus_addr_t boundary,
void *cookie)
{
struct ps3bus_devinfo *dinfo = cookie;
OpenPOWER on IntegriCloud