Date: Mon, 20 Sep 2010 23:00:21 +0000 (UTC) From: Weongyo Jeong <weongyo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r212936 - user/weongyo/usb/sys/dev/usb Message-ID: <201009202300.o8KN0LSK070581@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009202300.o8KN0LSK070581>