From owner-svn-src-user@FreeBSD.ORG Fri Oct 1 23:13:57 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18C2F106564A; Fri, 1 Oct 2010 23:13:57 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 073988FC0A; Fri, 1 Oct 2010 23:13:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o91NDvpP020170; Fri, 1 Oct 2010 23:13:57 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o91NDuV4020161; Fri, 1 Oct 2010 23:13:56 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201010012313.o91NDuV4020161@svn.freebsd.org> From: Weongyo Jeong Date: Fri, 1 Oct 2010 23:13:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213338 - in user/weongyo/usb/sys/dev/usb: . controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Oct 2010 23:13:57 -0000 Author: weongyo Date: Fri Oct 1 23:13:56 2010 New Revision: 213338 URL: http://svn.freebsd.org/changeset/base/213338 Log: Removes `struct usb_xfer_flags_int' structure. It's replaced with uint32_t status variable. Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci.c user/weongyo/usb/sys/dev/usb/controller/atmegadci.c user/weongyo/usb/sys/dev/usb/controller/avr32dci.c user/weongyo/usb/sys/dev/usb/controller/ehci.c user/weongyo/usb/sys/dev/usb/controller/musb_otg.c user/weongyo/usb/sys/dev/usb/controller/ohci.c user/weongyo/usb/sys/dev/usb/controller/uhci.c user/weongyo/usb/sys/dev/usb/controller/uss820dci.c user/weongyo/usb/sys/dev/usb/usb_busdma.c user/weongyo/usb/sys/dev/usb/usb_compat_linux.c user/weongyo/usb/sys/dev/usb/usb_core.h user/weongyo/usb/sys/dev/usb/usb_generic.c user/weongyo/usb/sys/dev/usb/usb_handle_request.c user/weongyo/usb/sys/dev/usb/usb_hub.c user/weongyo/usb/sys/dev/usb/usb_transfer.c Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/at91dci.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/at91dci.c Fri Oct 1 23:13:56 2010 (r213338) @@ -897,16 +897,17 @@ at91dci_setup_standard_chain(struct usb_ temp.td = NULL; temp.td_next = xfer->td_start[0]; temp.offset = 0; - temp.setup_alt_next = xfer->flags_int.short_frames_ok; - temp.did_stall = !xfer->flags_int.control_stall; + temp.setup_alt_next = (xfer->status & XFER_STATUS_SHORTFRAME_OK) ? + 1 : 0; + temp.did_stall = !(xfer->status & XFER_STATUS_CTRLSTALL); sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); ep_no = (xfer->endpointno & UE_ADDR); /* check if we should prepend a setup message */ - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { temp.func = &at91dci_setup_rx; temp.len = xfer->frlengths[0]; @@ -915,7 +916,8 @@ at91dci_setup_standard_chain(struct usb_ /* check for last frame */ if (xfer->nframes == 1) { /* no STATUS stage yet, SETUP is last */ - if (xfer->flags_int.control_act) + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) temp.setup_alt_next = 0; } @@ -949,8 +951,9 @@ at91dci_setup_standard_chain(struct usb_ x++; if (x == xfer->nframes) { - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.setup_alt_next = 0; } } else { @@ -972,7 +975,7 @@ at91dci_setup_standard_chain(struct usb_ at91dci_setup_standard_chain_sub(&temp); - if (xfer->flags_int.isochronous_xfr) { + if ((xfer->status & XFER_STATUS_ISOCXFER) != 0) { temp.offset += temp.len; } else { /* get next Page Cache pointer */ @@ -981,7 +984,7 @@ at91dci_setup_standard_chain(struct usb_ } /* check for control transfer */ - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { /* always setup a valid "pc" pointer for status and sync */ temp.pc = xfer->frbuffers + 0; @@ -997,7 +1000,7 @@ at91dci_setup_standard_chain(struct usb_ } /* check if we should append a status stage */ - if (!xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { /* * Send a DATA1 message and invert the current @@ -1123,7 +1126,7 @@ at91dci_standard_done_sub(struct usb_xfe } /* Check for short transfer */ if (len > 0) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ if (td->alt_next) { td = td->obj_next; @@ -1165,9 +1168,9 @@ at91dci_standard_done(struct usb_xfer *x xfer->td_transfer_cache = xfer->td_transfer_first; - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { err = at91dci_standard_done_sub(xfer); } @@ -1187,8 +1190,8 @@ at91dci_standard_done(struct usb_xfer *x } } - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { err = at91dci_standard_done_sub(xfer); } @@ -1213,7 +1216,7 @@ at91dci_device_done(struct usb_xfer *xfe DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n", xfer, xfer->endpoint, error); - if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) { + if (xfer->usb_mode == USB_MODE_DEVICE) { ep_no = (xfer->endpointno & UE_ADDR); /* disable endpoint interrupt */ Modified: user/weongyo/usb/sys/dev/usb/controller/atmegadci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/atmegadci.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/atmegadci.c Fri Oct 1 23:13:56 2010 (r213338) @@ -800,16 +800,17 @@ atmegadci_setup_standard_chain(struct us temp.td = NULL; temp.td_next = xfer->td_start[0]; temp.offset = 0; - temp.setup_alt_next = xfer->flags_int.short_frames_ok; - temp.did_stall = !xfer->flags_int.control_stall; + temp.setup_alt_next = (xfer->status & XFER_STATUS_SHORTFRAME_OK) ? + 1 : 0; + temp.did_stall = !(xfer->status & XFER_STATUS_CTRLSTALL); sc = ATMEGA_BUS2SC(xfer->xroot->bus); ep_no = (xfer->endpointno & UE_ADDR); /* check if we should prepend a setup message */ - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { temp.func = &atmegadci_setup_rx; temp.len = xfer->frlengths[0]; @@ -818,7 +819,8 @@ atmegadci_setup_standard_chain(struct us /* check for last frame */ if (xfer->nframes == 1) { /* no STATUS stage yet, SETUP is last */ - if (xfer->flags_int.control_act) + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) temp.setup_alt_next = 0; } @@ -852,8 +854,9 @@ atmegadci_setup_standard_chain(struct us x++; if (x == xfer->nframes) { - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.setup_alt_next = 0; } } else { @@ -875,7 +878,7 @@ atmegadci_setup_standard_chain(struct us atmegadci_setup_standard_chain_sub(&temp); - if (xfer->flags_int.isochronous_xfr) { + if ((xfer->status & XFER_STATUS_ISOCXFER) != 0) { temp.offset += temp.len; } else { /* get next Page Cache pointer */ @@ -883,7 +886,7 @@ atmegadci_setup_standard_chain(struct us } } - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { /* always setup a valid "pc" pointer for status and sync */ temp.pc = xfer->frbuffers + 0; @@ -899,7 +902,7 @@ atmegadci_setup_standard_chain(struct us } /* check if we should append a status stage */ - if (!xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { /* * Send a DATA1 message and invert the current @@ -1006,7 +1009,7 @@ atmegadci_standard_done_sub(struct usb_x } /* Check for short transfer */ if (len > 0) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ if (td->alt_next) { td = td->obj_next; @@ -1048,9 +1051,9 @@ atmegadci_standard_done(struct usb_xfer xfer->td_transfer_cache = xfer->td_transfer_first; - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { err = atmegadci_standard_done_sub(xfer); } @@ -1070,8 +1073,8 @@ atmegadci_standard_done(struct usb_xfer } } - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { err = atmegadci_standard_done_sub(xfer); } @@ -1096,7 +1099,7 @@ atmegadci_device_done(struct usb_xfer *x DPRINTFN(9, "xfer=%p, endpoint=%p, error=%d\n", xfer, xfer->endpoint, error); - if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) { + if (xfer->usb_mode == USB_MODE_DEVICE) { ep_no = (xfer->endpointno & UE_ADDR); /* select endpoint number */ Modified: user/weongyo/usb/sys/dev/usb/controller/avr32dci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/avr32dci.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/avr32dci.c Fri Oct 1 23:13:56 2010 (r213338) @@ -770,16 +770,17 @@ avr32dci_setup_standard_chain(struct usb temp.td = NULL; temp.td_next = xfer->td_start[0]; temp.offset = 0; - temp.setup_alt_next = xfer->flags_int.short_frames_ok; - temp.did_stall = !xfer->flags_int.control_stall; + temp.setup_alt_next = (xfer->status & XFER_STATUS_SHORTFRAME_OK) ? + 1 : 0; + temp.did_stall = !(xfer->status & XFER_STATUS_CTRLSTALL); sc = AVR32_BUS2SC(xfer->xroot->bus); ep_no = (xfer->endpoint & UE_ADDR); /* check if we should prepend a setup message */ - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { temp.func = &avr32dci_setup_rx; temp.len = xfer->frlengths[0]; @@ -788,7 +789,8 @@ avr32dci_setup_standard_chain(struct usb /* check for last frame */ if (xfer->nframes == 1) { /* no STATUS stage yet, SETUP is last */ - if (xfer->flags_int.control_act) + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) temp.setup_alt_next = 0; } avr32dci_setup_standard_chain_sub(&temp); @@ -821,8 +823,9 @@ avr32dci_setup_standard_chain(struct usb x++; if (x == xfer->nframes) { - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.setup_alt_next = 0; } } else { @@ -844,7 +847,7 @@ avr32dci_setup_standard_chain(struct usb avr32dci_setup_standard_chain_sub(&temp); - if (xfer->flags_int.isochronous_xfr) { + if ((xfer->status & XFER_STATUS_ISOCXFER) != 0) { temp.offset += temp.len; } else { /* get next Page Cache pointer */ @@ -852,7 +855,7 @@ avr32dci_setup_standard_chain(struct usb } } - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { /* always setup a valid "pc" pointer for status and sync */ temp.pc = xfer->frbuffers + 0; @@ -867,7 +870,7 @@ avr32dci_setup_standard_chain(struct usb avr32dci_setup_standard_chain_sub(&temp); } /* check if we should append a status stage */ - if (!xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { /* * Send a DATA1 message and invert the current @@ -977,7 +980,7 @@ avr32dci_standard_done_sub(struct usb_xf } /* Check for short transfer */ if (len > 0) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ if (td->alt_next) { td = td->obj_next; @@ -1019,9 +1022,9 @@ avr32dci_standard_done(struct usb_xfer * xfer->td_transfer_cache = xfer->td_transfer_first; - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { err = avr32dci_standard_done_sub(xfer); } @@ -1041,8 +1044,8 @@ avr32dci_standard_done(struct usb_xfer * } } - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { err = avr32dci_standard_done_sub(xfer); } @@ -1067,7 +1070,7 @@ avr32dci_device_done(struct usb_xfer *xf DPRINTFN(9, "xfer=%p, pipe=%p, error=%d\n", xfer, xfer->pipe, error); - if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) { + if (xfer->usb_mode == USB_MODE_DEVICE) { ep_no = (xfer->endpoint & UE_ADDR); /* disable endpoint interrupt */ Modified: user/weongyo/usb/sys/dev/usb/controller/ehci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/ehci.c Fri Oct 1 23:13:56 2010 (r213338) @@ -1207,7 +1207,7 @@ ehci_non_isoc_done_sub(struct usb_xfer * } /* Check for short transfer */ if (len > 0) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ td = td->alt_next; } else { @@ -1269,7 +1269,7 @@ ehci_non_isoc_done(struct usb_xfer *xfer /* extract data toggle directly from the QH's overlay area */ - qh = xfer->qh_start[xfer->flags_int.curr_dma_set]; + qh = xfer->qh_start[xfer->curr_dma_set]; usb_pc_cpu_invalidate(qh->page_cache); @@ -1282,9 +1282,9 @@ ehci_non_isoc_done(struct usb_xfer *xfer xfer->td_transfer_cache = xfer->td_transfer_first; - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { err = ehci_non_isoc_done_sub(xfer); } @@ -1304,8 +1304,8 @@ ehci_non_isoc_done(struct usb_xfer *xfer } } - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { err = ehci_non_isoc_done_sub(xfer); } @@ -1395,7 +1395,7 @@ ehci_check_transfer(struct usb_xfer *xfe */ td = xfer->td_transfer_cache; - qh = xfer->qh_start[xfer->flags_int.curr_dma_set]; + qh = xfer->qh_start[xfer->curr_dma_set]; usb_pc_cpu_invalidate(qh->page_cache); @@ -1443,7 +1443,8 @@ ehci_check_transfer(struct usb_xfer *xfe * packet also makes the transfer done */ if (EHCI_QTD_GET_BYTES(status)) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & + XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ if (td->alt_next) { td = td->alt_next; @@ -1832,10 +1833,10 @@ ehci_setup_standard_chain(struct usb_xfe temp.sc = EHCI_BUS2SC(xfer->xroot->bus); /* toggle the DMA set we are using */ - xfer->flags_int.curr_dma_set ^= 1; + xfer->curr_dma_set ^= 1; /* get next DMA set */ - td = xfer->td_start[xfer->flags_int.curr_dma_set]; + td = xfer->td_start[xfer->curr_dma_set]; xfer->td_transfer_first = td; xfer->td_transfer_cache = td; @@ -1844,11 +1845,12 @@ ehci_setup_standard_chain(struct usb_xfe temp.td_next = td; temp.qtd_status = 0; temp.last_frame = 0; - temp.setup_alt_next = xfer->flags_int.short_frames_ok; - temp.can_use_next = (xfer->flags_int.control_xfr || + temp.setup_alt_next = (xfer->status & XFER_STATUS_SHORTFRAME_OK) ? + 1 : 0; + temp.can_use_next = ((xfer->status & XFER_STATUS_CTRLXFER) != 0 || (UE_GET_DIR(xfer->endpointno) == UE_DIR_OUT)); - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { if (xfer->endpoint->toggle_next) { /* DATA1 is next */ temp.qtd_status |= @@ -1866,8 +1868,8 @@ ehci_setup_standard_chain(struct usb_xfe } /* check if we should prepend a setup message */ - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { temp.qtd_status &= htohc32(temp.sc, EHCI_QTD_SET_CERR(3)); @@ -1882,7 +1884,8 @@ ehci_setup_standard_chain(struct usb_xfe /* check for last frame */ if (xfer->nframes == 1) { /* no STATUS stage yet, SETUP is last */ - if (xfer->flags_int.control_act) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.last_frame = 1; temp.setup_alt_next = 0; } @@ -1904,9 +1907,10 @@ ehci_setup_standard_chain(struct usb_xfe x++; if (x == xfer->nframes) { - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { /* no STATUS stage yet, DATA is last */ - if (xfer->flags_int.control_act) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.last_frame = 1; temp.setup_alt_next = 0; } @@ -1948,8 +1952,8 @@ ehci_setup_standard_chain(struct usb_xfe /* check if we should append a status stage */ - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { /* * Send a DATA1 message and invert the current endpoint @@ -1998,7 +2002,7 @@ ehci_setup_standard_chain(struct usb_xfe methods = xfer->endpoint->methods; - qh = xfer->qh_start[xfer->flags_int.curr_dma_set]; + qh = xfer->qh_start[xfer->curr_dma_set]; /* the "qh_link" field is filled when the QH is added */ @@ -2242,11 +2246,11 @@ ehci_device_done(struct usb_xfer *xfer, } #endif - EHCI_REMOVE_QH(xfer->qh_start[xfer->flags_int.curr_dma_set], + EHCI_REMOVE_QH(xfer->qh_start[xfer->curr_dma_set], sc->sc_async_p_last); } if (methods == &ehci_device_intr_methods) { - EHCI_REMOVE_QH(xfer->qh_start[xfer->flags_int.curr_dma_set], + EHCI_REMOVE_QH(xfer->qh_start[xfer->curr_dma_set], sc->sc_intr_p_last[xfer->qh_pos]); } /* @@ -2574,10 +2578,10 @@ ehci_device_isoc_fs_enter(struct usb_xfe plen = xfer->frlengths; /* toggle the DMA set we are using */ - xfer->flags_int.curr_dma_set ^= 1; + xfer->curr_dma_set ^= 1; /* get next DMA set */ - td = xfer->td_start[xfer->flags_int.curr_dma_set]; + td = xfer->td_start[xfer->curr_dma_set]; xfer->td_transfer_first = td; pp_last = &sc->sc_isoc_fs_p_last[xfer->endpoint->isoc_next]; @@ -2866,10 +2870,10 @@ ehci_device_isoc_hs_enter(struct usb_xfe plen = xfer->frlengths; /* toggle the DMA set we are using */ - xfer->flags_int.curr_dma_set ^= 1; + xfer->curr_dma_set ^= 1; /* get next DMA set */ - td = xfer->td_start[xfer->flags_int.curr_dma_set]; + td = xfer->td_start[xfer->curr_dma_set]; xfer->td_transfer_first = td; pp_last = &sc->sc_isoc_hs_p_last[xfer->endpoint->isoc_next]; @@ -3552,7 +3556,7 @@ ehci_xfer_setup(struct usb_setup_params parm->hc_max_packet_size = 0x400; parm->hc_max_packet_count = 1; parm->hc_max_frame_size = EHCI_QTD_PAYLOAD_MAX; - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -3565,7 +3569,7 @@ ehci_xfer_setup(struct usb_setup_params parm->hc_max_packet_size = 0x400; parm->hc_max_packet_count = 1; parm->hc_max_frame_size = EHCI_QTD_PAYLOAD_MAX; - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -3587,7 +3591,7 @@ ehci_xfer_setup(struct usb_setup_params } parm->hc_max_frame_size = EHCI_QTD_PAYLOAD_MAX; - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -3600,7 +3604,7 @@ ehci_xfer_setup(struct usb_setup_params parm->hc_max_packet_size = 0x3FF; parm->hc_max_packet_count = 1; parm->hc_max_frame_size = 0x3FF; - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -3611,7 +3615,7 @@ ehci_xfer_setup(struct usb_setup_params parm->hc_max_packet_size = 0x400; parm->hc_max_packet_count = 3; parm->hc_max_frame_size = 0xC00; - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -3709,7 +3713,7 @@ alloc_dma_set: usb_pc_cpu_flush(pc + n); } } - xfer->td_start[xfer->flags_int.curr_dma_set] = last_obj; + xfer->td_start[xfer->curr_dma_set] = last_obj; last_obj = NULL; @@ -3737,10 +3741,10 @@ alloc_dma_set: usb_pc_cpu_flush(pc + n); } } - xfer->qh_start[xfer->flags_int.curr_dma_set] = last_obj; + xfer->qh_start[xfer->curr_dma_set] = last_obj; - if (!xfer->flags_int.curr_dma_set) { - xfer->flags_int.curr_dma_set = 1; + if (!xfer->curr_dma_set) { + xfer->curr_dma_set = 1; goto alloc_dma_set; } } @@ -3831,11 +3835,11 @@ ehci_device_resume(struct usb_device *ud if ((methods == &ehci_device_bulk_methods) || (methods == &ehci_device_ctrl_methods)) { - EHCI_APPEND_QH(xfer->qh_start[xfer->flags_int.curr_dma_set], + EHCI_APPEND_QH(xfer->qh_start[xfer->curr_dma_set], sc->sc_async_p_last); } if (methods == &ehci_device_intr_methods) { - EHCI_APPEND_QH(xfer->qh_start[xfer->flags_int.curr_dma_set], + EHCI_APPEND_QH(xfer->qh_start[xfer->curr_dma_set], sc->sc_intr_p_last[xfer->qh_pos]); } } @@ -3865,11 +3869,11 @@ ehci_device_suspend(struct usb_device *u if ((methods == &ehci_device_bulk_methods) || (methods == &ehci_device_ctrl_methods)) { - EHCI_REMOVE_QH(xfer->qh_start[xfer->flags_int.curr_dma_set], + EHCI_REMOVE_QH(xfer->qh_start[xfer->curr_dma_set], sc->sc_async_p_last); } if (methods == &ehci_device_intr_methods) { - EHCI_REMOVE_QH(xfer->qh_start[xfer->flags_int.curr_dma_set], + EHCI_REMOVE_QH(xfer->qh_start[xfer->curr_dma_set], sc->sc_intr_p_last[xfer->qh_pos]); } } Modified: user/weongyo/usb/sys/dev/usb/controller/musb_otg.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/musb_otg.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/musb_otg.c Fri Oct 1 23:13:56 2010 (r213338) @@ -1147,16 +1147,17 @@ musbotg_setup_standard_chain(struct usb_ temp.td = NULL; temp.td_next = xfer->td_start[0]; temp.offset = 0; - temp.setup_alt_next = xfer->flags_int.short_frames_ok; - temp.did_stall = !xfer->flags_int.control_stall; + temp.setup_alt_next = (xfer->status & XFER_STATUS_SHORTFRAME_OK) ? + 1 : 0; + temp.did_stall = !(xfer->status & XFER_STATUS_CTRLSTALL); sc = MUSBOTG_BUS2SC(xfer->xroot->bus); ep_no = (xfer->endpointno & UE_ADDR); /* check if we should prepend a setup message */ - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { temp.func = &musbotg_setup_rx; temp.len = xfer->frlengths[0]; @@ -1172,12 +1173,12 @@ musbotg_setup_standard_chain(struct usb_ if (x != xfer->nframes) { if (xfer->endpointno & UE_DIR_IN) { - if (xfer->flags_int.control_xfr) + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) temp.func = &musbotg_setup_data_tx; else temp.func = &musbotg_data_tx; } else { - if (xfer->flags_int.control_xfr) + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) temp.func = &musbotg_setup_data_rx; else temp.func = &musbotg_data_rx; @@ -1195,8 +1196,9 @@ musbotg_setup_standard_chain(struct usb_ x++; if (x == xfer->nframes) { - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.setup_alt_next = 0; } } else { @@ -1218,7 +1220,7 @@ musbotg_setup_standard_chain(struct usb_ musbotg_setup_standard_chain_sub(&temp); - if (xfer->flags_int.isochronous_xfr) { + if ((xfer->status & XFER_STATUS_ISOCXFER) != 0) { temp.offset += temp.len; } else { /* get next Page Cache pointer */ @@ -1227,7 +1229,7 @@ musbotg_setup_standard_chain(struct usb_ } /* check for control transfer */ - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { /* always setup a valid "pc" pointer for status and sync */ temp.pc = xfer->frbuffers + 0; @@ -1236,7 +1238,7 @@ musbotg_setup_standard_chain(struct usb_ temp.setup_alt_next = 0; /* check if we should append a status stage */ - if (!xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { /* * Send a DATA1 message and invert the current * endpoint direction. @@ -1374,7 +1376,7 @@ musbotg_standard_done_sub(struct usb_xfe } /* Check for short transfer */ if (len > 0) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ if (td->alt_next) { td = td->obj_next; @@ -1416,9 +1418,9 @@ musbotg_standard_done(struct usb_xfer *x xfer->td_transfer_cache = xfer->td_transfer_first; - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { err = musbotg_standard_done_sub(xfer); } @@ -1438,8 +1440,8 @@ musbotg_standard_done(struct usb_xfer *x } } - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { err = musbotg_standard_done_sub(xfer); } @@ -1461,7 +1463,7 @@ musbotg_device_done(struct usb_xfer *xfe DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n", xfer, xfer->endpoint, error); - if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) { + if (xfer->usb_mode == USB_MODE_DEVICE) { musbotg_ep_int_set(xfer, 0); Modified: user/weongyo/usb/sys/dev/usb/controller/ohci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/ohci.c Fri Oct 1 23:13:56 2010 (r213338) @@ -900,7 +900,7 @@ ohci_non_isoc_done_sub(struct usb_xfer * } /* Check for short transfer */ if (phy_start) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ td = td->alt_next; } else { @@ -946,9 +946,9 @@ ohci_non_isoc_done(struct usb_xfer *xfer xfer->td_transfer_cache = xfer->td_transfer_first; - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { err = ohci_non_isoc_done_sub(xfer); } @@ -968,8 +968,8 @@ ohci_non_isoc_done(struct usb_xfer *xfer } } - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { err = ohci_non_isoc_done_sub(xfer); } @@ -1031,7 +1031,7 @@ ohci_check_transfer_sub(struct usb_xfer if (td) { - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; ed->ed_headp = td->td_self; usb_pc_cpu_flush(ed->page_cache); @@ -1073,7 +1073,7 @@ ohci_check_transfer(struct usb_xfer *xfe DPRINTFN(13, "xfer=%p checking transfer\n", xfer); - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; usb_pc_cpu_invalidate(ed->page_cache); ed_headp = le32toh(ed->ed_headp); @@ -1085,7 +1085,7 @@ ohci_check_transfer(struct usb_xfer *xfe /* isochronous transfer */ ohci_isoc_done(xfer); } else { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { ohci_check_transfer_sub(xfer); if (xfer->td_transfer_cache) { /* not finished yet */ @@ -1445,10 +1445,10 @@ ohci_setup_standard_chain(struct usb_xfe temp.max_frame_size = xfer->max_frame_size; /* toggle the DMA set we are using */ - xfer->flags_int.curr_dma_set ^= 1; + xfer->curr_dma_set ^= 1; /* get next DMA set */ - td = xfer->td_start[xfer->flags_int.curr_dma_set]; + td = xfer->td_start[xfer->curr_dma_set]; xfer->td_transfer_first = td; xfer->td_transfer_cache = td; @@ -1456,14 +1456,15 @@ ohci_setup_standard_chain(struct usb_xfe temp.td = NULL; temp.td_next = td; temp.last_frame = 0; - temp.setup_alt_next = xfer->flags_int.short_frames_ok; + temp.setup_alt_next = (xfer->status & XFER_STATUS_SHORTFRAME_OK) ? + 1 : 0; methods = xfer->endpoint->methods; /* check if we should prepend a setup message */ - if (xfer->flags_int.control_xfr) { - if (xfer->flags_int.control_hdr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { + if ((xfer->status & XFER_STATUS_CTRLHDR) != 0) { temp.td_flags = htole32(OHCI_TD_SETUP | OHCI_TD_NOCC | OHCI_TD_TOGGLE_0 | OHCI_TD_NOINTR); @@ -1474,7 +1475,8 @@ ohci_setup_standard_chain(struct usb_xfe /* check for last frame */ if (xfer->nframes == 1) { /* no STATUS stage yet, SETUP is last */ - if (xfer->flags_int.control_act) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.last_frame = 1; temp.setup_alt_next = 0; } @@ -1519,9 +1521,10 @@ ohci_setup_standard_chain(struct usb_xfe x++; if (x == xfer->nframes) { - if (xfer->flags_int.control_xfr) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0) { /* no STATUS stage yet, DATA is last */ - if (xfer->flags_int.control_act) { + if ((xfer->status & + XFER_STATUS_CTRLACTIVE) != 0) { temp.last_frame = 1; temp.setup_alt_next = 0; } @@ -1548,8 +1551,8 @@ ohci_setup_standard_chain(struct usb_xfe /* check if we should append a status stage */ - if (xfer->flags_int.control_xfr && - !xfer->flags_int.control_act) { + if ((xfer->status & XFER_STATUS_CTRLXFER) != 0 && + (xfer->status & XFER_STATUS_CTRLACTIVE) == 0) { /* * Send a DATA1 message and invert the current endpoint @@ -1595,7 +1598,7 @@ ohci_setup_standard_chain(struct usb_xfe } #endif - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; ed_flags = (OHCI_ED_SET_FA(xfer->address) | OHCI_ED_SET_EN(UE_GET_ADDR(xfer->endpointno)) | @@ -1680,7 +1683,7 @@ ohci_device_done(struct usb_xfer *xfer, DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n", xfer, xfer->endpoint, error); - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; if (ed) { usb_pc_cpu_invalidate(ed->page_cache); } @@ -1932,10 +1935,10 @@ ohci_device_isoc_enter(struct usb_xfer * plen = xfer->frlengths; /* toggle the DMA set we are using */ - xfer->flags_int.curr_dma_set ^= 1; + xfer->curr_dma_set ^= 1; /* get next DMA set */ - td = xfer->td_start[xfer->flags_int.curr_dma_set]; + td = xfer->td_start[xfer->curr_dma_set]; xfer->td_transfer_first = td; @@ -2024,7 +2027,7 @@ ohci_device_isoc_enter(struct usb_xfer * ohci_dump_itds(xfer->td_transfer_first); } #endif - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; if (UE_GET_DIR(xfer->endpointno) == UE_DIR_IN) ed_flags = (OHCI_ED_DIR_IN | OHCI_ED_FORMAT_ISO); @@ -2445,7 +2448,7 @@ ohci_xfer_setup(struct usb_setup_params * calculate ntd and nqh */ if (parm->methods == &ohci_device_ctrl_methods) { - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -2455,7 +2458,7 @@ ohci_xfer_setup(struct usb_setup_params nqh = 1; } else if (parm->methods == &ohci_device_bulk_methods) { - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -2465,7 +2468,7 @@ ohci_xfer_setup(struct usb_setup_params nqh = 1; } else if (parm->methods == &ohci_device_intr_methods) { - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -2475,7 +2478,7 @@ ohci_xfer_setup(struct usb_setup_params nqh = 1; } else if (parm->methods == &ohci_device_isoc_methods) { - xfer->flags_int.bdma_enable = 1; + xfer->status |= XFER_STATUS_DMAENABLE; usbd_transfer_setup_sub(parm); @@ -2549,7 +2552,7 @@ alloc_dma_set: usb_pc_cpu_flush(pc + n); } } - xfer->td_start[xfer->flags_int.curr_dma_set] = last_obj; + xfer->td_start[xfer->curr_dma_set] = last_obj; last_obj = NULL; @@ -2577,10 +2580,10 @@ alloc_dma_set: usb_pc_cpu_flush(pc + n); } } - xfer->qh_start[xfer->flags_int.curr_dma_set] = last_obj; + xfer->qh_start[xfer->curr_dma_set] = last_obj; - if (!xfer->flags_int.curr_dma_set) { - xfer->flags_int.curr_dma_set = 1; + if (!xfer->curr_dma_set) { + xfer->curr_dma_set = 1; goto alloc_dma_set; } } @@ -2656,7 +2659,7 @@ ohci_device_resume(struct usb_device *ud if (xfer->xroot->udev == udev) { methods = xfer->endpoint->methods; - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; if (methods == &ohci_device_bulk_methods) { OHCI_APPEND_QH(ed, sc->sc_bulk_p_last); @@ -2694,7 +2697,7 @@ ohci_device_suspend(struct usb_device *u if (xfer->xroot->udev == udev) { methods = xfer->endpoint->methods; - ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; + ed = xfer->qh_start[xfer->curr_dma_set]; if (methods == &ohci_device_bulk_methods) { OHCI_REMOVE_QH(ed, sc->sc_bulk_p_last); Modified: user/weongyo/usb/sys/dev/usb/controller/uhci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uhci.c Fri Oct 1 20:14:36 2010 (r213337) +++ user/weongyo/usb/sys/dev/usb/controller/uhci.c Fri Oct 1 23:13:56 2010 (r213338) @@ -1151,7 +1151,7 @@ uhci_non_isoc_done_sub(struct usb_xfer * } /* Check for short transfer */ if (len != td->len) { - if (xfer->flags_int.short_frames_ok) { + if ((xfer->status & XFER_STATUS_SHORTFRAME_OK) != 0) { /* follow alt next */ td = td->alt_next; } else { @@ -1220,8 +1220,8 @@ uhci_non_isoc_done(struct usb_xfer *xfer xfer->td_transfer_cache = xfer->td_transfer_first; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***