diff options
author | Marcel Moolenaar <marcel@FreeBSD.org> | 2009-07-12 16:46:43 +0000 |
---|---|---|
committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2009-07-12 16:46:43 +0000 |
commit | 58f6d2732065afc5b739794d0f4ddffd6b6c4f8e (patch) | |
tree | 521f0ac2bc5aef023ed64c137b9ebfc21f58a56a /sys/dev/usb/usb_busdma.c | |
parent | 77822acff7bf72c4a8e4020fb9256372f851c65e (diff) | |
download | src-58f6d2732065afc5b739794d0f4ddffd6b6c4f8e.tar.gz src-58f6d2732065afc5b739794d0f4ddffd6b6c4f8e.zip |
MFp4:
USB CORE: busdma improvement
For single segment allocations the boundary field
of the BUSDMA tag should be zero. Currently all
single segment allocations are less than or equal
to 4096 bytes, so the limit does not kick in. If
any single segment USB allocations would be greater
than 4K, then it would be a problem.
Approved by: re (kensmith)
Obtained from: HPS
Notes
Notes:
svn path=/head/; revision=195639
Diffstat (limited to 'sys/dev/usb/usb_busdma.c')
-rw-r--r-- | sys/dev/usb/usb_busdma.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/usb/usb_busdma.c b/sys/dev/usb/usb_busdma.c index 4127449ea110..e5d6ed7951ea 100644 --- a/sys/dev/usb/usb_busdma.c +++ b/sys/dev/usb/usb_busdma.c @@ -359,7 +359,8 @@ usb_dma_tag_create(struct usb_dma_tag *udt, if (bus_dma_tag_create ( /* parent */ udt->tag_parent->tag, /* alignment */ align, - /* boundary */ USB_PAGE_SIZE, + /* boundary */ (align == 1) ? + USB_PAGE_SIZE : 0, /* lowaddr */ (2ULL << (udt->tag_parent->dma_bits - 1)) - 1, /* highaddr */ BUS_SPACE_MAXADDR, /* filter */ NULL, |