svn commit: r212936 - user/weongyo/usb/sys/dev/usb
Weongyo Jeong
weongyo at FreeBSD.org
Mon Sep 20 23:00:21 UTC 2010
Author: weongyo
Date: Mon Sep 20 23:00:21 2010
New Revision: 212936
URL: http://svn.freebsd.org/changeset/base/212936
Log:
If the number of DMA segments are over 1 we needs to store the physical
address for further use though usb_pc_common_mem_cb() only supports 1
segment now.
Modified:
user/weongyo/usb/sys/dev/usb/usb_busdma.c
Modified: user/weongyo/usb/sys/dev/usb/usb_busdma.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/usb_busdma.c Mon Sep 20 22:57:42 2010 (r212935)
+++ user/weongyo/usb/sys/dev/usb/usb_busdma.c Mon Sep 20 23:00:21 2010 (r212936)
@@ -418,6 +418,7 @@ usb_pc_common_mem_cb(void *arg, bus_dma_
struct usb_page_cache *pc;
struct usb_page *pg;
usb_size_t rem;
+ int i;
pc = arg;
uptag = pc->tag_parent;
@@ -444,6 +445,8 @@ usb_pc_common_mem_cb(void *arg, bus_dma_
goto done;
}
#endif
+ for (i = 1; i < nseg; i++)
+ pg[i].physaddr = segs[i].ds_addr & ~(USB_PAGE_SIZE - 1);
done:
uptag->dma_error = (error ? 1 : 0);
if (isload)
More information about the svn-src-user
mailing list