Date: Thu, 8 Jan 2009 23:31:39 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 155839 for review Message-ID: <200901082331.n08NVdVZ009555@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=155839 Change 155839 by hselasky@hselasky_laptop001 on 2009/01/08 23:31:16 This change is about removing three fields from "struct usb2_xfer" which can be reached from "struct usb2_xfer_root" instead and cleaning up the code after this change. The fields are "xfer->udev", "xfer->xfer_mtx" and "xfer->usb2_sc". In this process the following changes were also made: Rename "usb2_root" to "xroot" which is short for "xfer root". Rename "priv_mtx" to "xfer_mtx" in USB core. The USB_XFER_LOCK and USB_XFER_UNLOCK macros should only be used in the USB core due to dependency towards "xroot". Substitute macros for the real lock in two USB device drivers. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#21 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#27 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#22 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#24 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#21 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_busdma.c#17 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_core.h#32 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_debug.c#7 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_handle_request.c#14 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#30 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.c#29 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.c#37 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.h#13 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uvscom2.c#15 edit .. //depot/projects/usb/src/sys/dev/usb2/storage/ata-usb2.c#13 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#21 (text+ko) ==== @@ -259,13 +259,13 @@ static void at91dci_wakeup_peer(struct usb2_xfer *xfer) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); uint8_t use_polling; if (!(sc->sc_flags.status_suspend)) { return; } - use_polling = mtx_owned(xfer->xfer_mtx) ? 1 : 0; + use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; AT91_UDP_WRITE_4(sc, AT91_UDP_GSTATE, AT91_UDP_GSTATE_ESR); @@ -698,7 +698,7 @@ return (1); /* not complete */ done: - sc = xfer->usb2_sc; + sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); temp = (xfer->endpoint & UE_ADDR); /* update FIFO bank flag and multi buffer */ @@ -886,7 +886,7 @@ DPRINTFN(9, "addr=%d endpt=%d sumlen=%d speed=%d\n", xfer->address, UE_GET_ADDR(xfer->endpoint), - xfer->sumlen, usb2_get_speed(xfer->udev)); + xfer->sumlen, usb2_get_speed(xfer->xroot->udev)); temp.max_frame_size = xfer->max_frame_size; @@ -901,7 +901,7 @@ temp.setup_alt_next = xfer->flags_int.short_frames_ok; temp.offset = 0; - sc = xfer->usb2_sc; + sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); ep_no = (xfer->endpoint & UE_ADDR); /* check if we should prepend a setup message */ @@ -1042,7 +1042,7 @@ /* poll one time */ if (at91dci_xfer_do_fifo(xfer)) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); uint8_t ep_no = xfer->endpoint & UE_ADDR; /* @@ -1055,7 +1055,7 @@ DPRINTFN(15, "enable interrupts on endpoint %d\n", ep_no); /* put transfer on interrupt queue */ - usb2_transfer_enqueue(&xfer->udev->bus->intr_q, xfer); + usb2_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer); /* start timeout, if any */ if (xfer->timeout != 0) { @@ -1069,7 +1069,7 @@ at91dci_root_intr_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); DPRINTFN(9, "\n"); @@ -1209,7 +1209,7 @@ static void at91dci_device_done(struct usb2_xfer *xfer, usb2_error_t error) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); uint8_t ep_no; USB_BUS_LOCK_ASSERT(&sc->sc_bus, MA_OWNED); @@ -1623,7 +1623,7 @@ static void at91dci_device_isoc_fs_enter(struct usb2_xfer *xfer) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); uint32_t temp; uint32_t nframes; @@ -1705,7 +1705,7 @@ static void at91dci_root_ctrl_close(struct usb2_xfer *xfer) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); if (sc->sc_root_ctrl.xfer == xfer) { sc->sc_root_ctrl.xfer = NULL; @@ -1809,11 +1809,11 @@ static void at91dci_root_ctrl_start(struct usb2_xfer *xfer) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); sc->sc_root_ctrl.xfer = xfer; - usb2_bus_roothub_exec(xfer->udev->bus); + usb2_bus_roothub_exec(xfer->xroot->bus); } static void @@ -1826,7 +1826,7 @@ at91dci_root_ctrl_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); uint16_t value; uint16_t index; uint8_t use_polling; @@ -1847,7 +1847,7 @@ value = UGETW(std->req.wValue); index = UGETW(std->req.wIndex); - use_polling = mtx_owned(xfer->xfer_mtx) ? 1 : 0; + use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; /* demultiplex the control request */ @@ -2252,7 +2252,7 @@ static void at91dci_root_intr_close(struct usb2_xfer *xfer) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); if (sc->sc_root_intr.xfer == xfer) { sc->sc_root_intr.xfer = NULL; @@ -2269,7 +2269,7 @@ static void at91dci_root_intr_start(struct usb2_xfer *xfer) { - struct at91dci_softc *sc = xfer->usb2_sc; + struct at91dci_softc *sc = AT9100_DCI_BUS2SC(xfer->xroot->bus); sc->sc_root_intr.xfer = xfer; } @@ -2299,11 +2299,6 @@ xfer = parm->curr_xfer; /* - * setup xfer - */ - xfer->usb2_sc = sc; - - /* * NOTE: This driver does not use any of the parameters that * are computed from the following values. Just set some * reasonable dummies: ==== //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#27 (text+ko) ==== @@ -971,7 +971,7 @@ return; } /* put transfer on interrupt queue */ - usb2_transfer_enqueue(&xfer->udev->bus->intr_q, xfer); + usb2_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer); /* start timeout, if any */ if (xfer->timeout != 0) { @@ -1135,7 +1135,7 @@ static usb2_error_t ehci_non_isoc_done_sub(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); ehci_qtd_t *td; ehci_qtd_t *td_alt_next; uint32_t status; @@ -1239,7 +1239,7 @@ #if USB_DEBUG if (ehcidebug > 10) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); ehci_dump_sqtds(sc, xfer->td_transfer_first); } @@ -1291,7 +1291,7 @@ ehci_check_transfer(struct usb2_xfer *xfer) { struct usb2_pipe_methods *methods = xfer->pipe->methods; - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); uint32_t status; @@ -1521,7 +1521,7 @@ DPRINTF("xfer=%p\n", xfer); - USB_BUS_LOCK_ASSERT(xfer->udev->bus, MA_OWNED); + USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED); /* transfer is transferred */ ehci_device_done(xfer, USB_ERR_TIMEOUT); @@ -1731,11 +1731,11 @@ DPRINTFN(9, "addr=%d endpt=%d sumlen=%d speed=%d\n", xfer->address, UE_GET_ADDR(xfer->endpoint), - xfer->sumlen, usb2_get_speed(xfer->udev)); + xfer->sumlen, usb2_get_speed(xfer->xroot->udev)); temp.average = xfer->max_usb2_frame_size; temp.max_frame_size = xfer->max_frame_size; - temp.sc = xfer->usb2_sc; + temp.sc = EHCI_BUS2SC(xfer->xroot->bus); /* toggle the DMA set we are using */ xfer->flags_int.curr_dma_set ^= 1; @@ -1763,7 +1763,7 @@ temp.auto_data_toggle = 1; } - if (usb2_get_speed(xfer->udev) != USB_SPEED_HIGH) { + if (usb2_get_speed(xfer->xroot->udev) != USB_SPEED_HIGH) { /* max 3 retries */ temp.qtd_status |= htoehci32(temp.sc, EHCI_QTD_SET_CERR(3)); @@ -1894,12 +1894,12 @@ EHCI_QH_SET_ENDPT(UE_GET_ADDR(xfer->endpoint)) | EHCI_QH_SET_MPL(xfer->max_packet_size)); - if (usb2_get_speed(xfer->udev) == USB_SPEED_HIGH) { + if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH) { qh_endp |= (EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH) | EHCI_QH_DTC | EHCI_QH_SET_NRL(8)); } else { - if (usb2_get_speed(xfer->udev) == USB_SPEED_FULL) { + if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_FULL) { qh_endp |= (EHCI_QH_SET_EPS(EHCI_QH_SPEED_FULL) | EHCI_QH_DTC); } else { @@ -1922,8 +1922,8 @@ (EHCI_QH_SET_MULT(xfer->max_packet_count & 3) | EHCI_QH_SET_CMASK(xfer->usb2_cmask) | EHCI_QH_SET_SMASK(xfer->usb2_smask) | - EHCI_QH_SET_HUBA(xfer->udev->hs_hub_addr) | - EHCI_QH_SET_PORT(xfer->udev->hs_port_no)); + EHCI_QH_SET_HUBA(xfer->xroot->udev->hs_hub_addr) | + EHCI_QH_SET_PORT(xfer->xroot->udev->hs_port_no)); qh->qh_endphub = htoehci32(temp.sc, qh_endphub); qh->qh_curqtd = htoehci32(temp.sc, 0); @@ -1951,7 +1951,7 @@ usb2_pc_cpu_flush(qh->page_cache); - if (xfer->udev->pwr_save.suspended == 0) { + if (xfer->xroot->udev->pwr_save.suspended == 0) { EHCI_APPEND_QH(qh, *qh_last); } } @@ -1960,7 +1960,7 @@ ehci_root_intr_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); uint16_t i; uint16_t m; @@ -2117,7 +2117,7 @@ ehci_device_done(struct usb2_xfer *xfer, usb2_error_t error) { struct usb2_pipe_methods *methods = xfer->pipe->methods; - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); USB_BUS_LOCK_ASSERT(&sc->sc_bus, MA_OWNED); @@ -2130,7 +2130,7 @@ if (ehcidebug > 8) { DPRINTF("nexttog=%d; data after transfer:\n", xfer->pipe->toggle_next); - ehci_dump_sqtds(xfer->usb2_sc, + ehci_dump_sqtds(sc, xfer->td_transfer_first); } #endif @@ -2185,7 +2185,7 @@ static void ehci_device_bulk_start(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); /* setup TD's and QH */ ehci_setup_standard_chain(xfer, &sc->sc_async_p_last); @@ -2228,7 +2228,7 @@ static void ehci_device_ctrl_start(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); /* setup TD's and QH */ ehci_setup_standard_chain(xfer, &sc->sc_async_p_last); @@ -2253,7 +2253,7 @@ static void ehci_device_intr_open(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); uint16_t best; uint16_t bit; uint16_t x; @@ -2262,9 +2262,9 @@ /* Allocate a microframe slot first: */ slot = usb2_intr_schedule_adjust - (xfer->udev, xfer->max_frame_size, USB_HS_MICRO_FRAMES_MAX); + (xfer->xroot->udev, xfer->max_frame_size, USB_HS_MICRO_FRAMES_MAX); - if (usb2_get_speed(xfer->udev) == USB_SPEED_HIGH) { + if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH) { xfer->usb2_uframe = slot; xfer->usb2_smask = (1 << slot) & 0xFF; xfer->usb2_cmask = 0; @@ -2306,11 +2306,11 @@ static void ehci_device_intr_close(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); uint8_t slot; slot = usb2_intr_schedule_adjust - (xfer->udev, -(xfer->max_frame_size), xfer->usb2_uframe); + (xfer->xroot->udev, -(xfer->max_frame_size), xfer->usb2_uframe); sc->sc_intr_stat[xfer->qh_pos]--; @@ -2326,7 +2326,7 @@ static void ehci_device_intr_start(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); /* setup TD's and QH */ ehci_setup_standard_chain(xfer, &sc->sc_intr_p_last[xfer->qh_pos]); @@ -2351,7 +2351,7 @@ static void ehci_device_isoc_fs_open(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); ehci_sitd_t *td; uint32_t sitd_portaddr; uint8_t ds; @@ -2359,8 +2359,8 @@ sitd_portaddr = EHCI_SITD_SET_ADDR(xfer->address) | EHCI_SITD_SET_ENDPT(UE_GET_ADDR(xfer->endpoint)) | - EHCI_SITD_SET_HUBA(xfer->udev->hs_hub_addr) | - EHCI_SITD_SET_PORT(xfer->udev->hs_port_no); + EHCI_SITD_SET_HUBA(xfer->xroot->udev->hs_hub_addr) | + EHCI_SITD_SET_PORT(xfer->xroot->udev->hs_port_no); if (UE_GET_DIR(xfer->endpoint) == UE_DIR_IN) { sitd_portaddr |= EHCI_SITD_SET_DIR_IN; @@ -2399,7 +2399,7 @@ ehci_device_isoc_fs_enter(struct usb2_xfer *xfer) { struct usb2_page_search buf_res; - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); struct usb2_fs_isoc_schedule *fss_start; struct usb2_fs_isoc_schedule *fss_end; struct usb2_fs_isoc_schedule *fss; @@ -2460,7 +2460,7 @@ */ xfer->isoc_time_complete = usb2_fs_isoc_schedule_isoc_time_expand - (xfer->udev, &fss_start, &fss_end, nframes) + buf_offset + + (xfer->xroot->udev, &fss_start, &fss_end, nframes) + buf_offset + xfer->nframes; /* get the real number of frames */ @@ -2636,7 +2636,7 @@ static void ehci_device_isoc_hs_open(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); ehci_itd_t *td; uint32_t temp; uint8_t ds; @@ -2690,7 +2690,7 @@ ehci_device_isoc_hs_enter(struct usb2_xfer *xfer) { struct usb2_page_search buf_res; - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); ehci_itd_t *td; ehci_itd_t *td_last = NULL; ehci_itd_t **pp_last; @@ -2914,7 +2914,7 @@ static void ehci_root_ctrl_close(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); if (sc->sc_root_ctrl.xfer == xfer) { sc->sc_root_ctrl.xfer = NULL; @@ -3021,13 +3021,13 @@ static void ehci_root_ctrl_start(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); DPRINTF("\n"); sc->sc_root_ctrl.xfer = xfer; - usb2_bus_roothub_exec(xfer->udev->bus); + usb2_bus_roothub_exec(xfer->xroot->bus); } static void @@ -3040,7 +3040,7 @@ ehci_root_ctrl_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); char *ptr; uint32_t port; uint32_t v; @@ -3066,7 +3066,7 @@ value = UGETW(std->req.wValue); index = UGETW(std->req.wIndex); - use_polling = mtx_owned(xfer->xfer_mtx) ? 1 : 0; + use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; DPRINTFN(3, "type=0x%02x request=0x%02x wLen=0x%04x " "wValue=0x%04x wIndex=0x%04x\n", @@ -3483,7 +3483,7 @@ static void ehci_root_intr_close(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); if (sc->sc_root_intr.xfer == xfer) { sc->sc_root_intr.xfer = NULL; @@ -3500,7 +3500,7 @@ static void ehci_root_intr_start(struct usb2_xfer *xfer) { - ehci_softc_t *sc = xfer->usb2_sc; + ehci_softc_t *sc = EHCI_BUS2SC(xfer->xroot->bus); sc->sc_root_intr.xfer = xfer; } @@ -3538,11 +3538,6 @@ nitd = 0; /* - * setup xfer - */ - xfer->usb2_sc = sc; - - /* * compute maximum number of some structures */ if (parm->methods == &ehci_device_ctrl_methods) { @@ -3864,7 +3859,7 @@ TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) { - if (xfer->udev == udev) { + if (xfer->xroot->udev == udev) { methods = xfer->pipe->methods; @@ -3898,7 +3893,7 @@ TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) { - if (xfer->udev == udev) { + if (xfer->xroot->udev == udev) { methods = xfer->pipe->methods; ==== //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#22 (text+ko) ==== @@ -204,14 +204,14 @@ static void musbotg_wakeup_peer(struct usb2_xfer *xfer) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); uint8_t temp; uint8_t use_polling; if (!(sc->sc_flags.status_suspend)) { return; } - use_polling = mtx_owned(xfer->xfer_mtx) ? 1 : 0; + use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; temp = MUSB2_READ_1(sc, MUSB2_REG_POWER); temp |= MUSB2_MASK_RESUME; @@ -931,7 +931,7 @@ return (1); /* not complete */ done: - sc = xfer->usb2_sc; + sc = MUSBOTG_BUS2SC(xfer->xroot->bus); /* compute all actual lengths */ @@ -1130,7 +1130,7 @@ DPRINTFN(8, "addr=%d endpt=%d sumlen=%d speed=%d\n", xfer->address, UE_GET_ADDR(xfer->endpoint), - xfer->sumlen, usb2_get_speed(xfer->udev)); + xfer->sumlen, usb2_get_speed(xfer->xroot->udev)); temp.max_frame_size = xfer->max_frame_size; @@ -1145,7 +1145,7 @@ temp.setup_alt_next = xfer->flags_int.short_frames_ok; temp.offset = 0; - sc = xfer->usb2_sc; + sc = MUSBOTG_BUS2SC(xfer->xroot->bus); ep_no = (xfer->endpoint & UE_ADDR); /* check if we should prepend a setup message */ @@ -1245,7 +1245,7 @@ DPRINTFN(1, "xfer=%p\n", xfer); - USB_BUS_LOCK_ASSERT(xfer->udev->bus, MA_OWNED); + USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED); /* transfer is transferred */ musbotg_device_done(xfer, USB_ERR_TIMEOUT); @@ -1254,7 +1254,7 @@ static void musbotg_ep_int_set(struct usb2_xfer *xfer, uint8_t on) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); uint16_t temp; uint8_t ep_no = xfer->endpoint & UE_ADDR; @@ -1304,7 +1304,7 @@ DPRINTFN(14, "enabled interrupts on endpoint\n"); /* put transfer on interrupt queue */ - usb2_transfer_enqueue(&xfer->udev->bus->intr_q, xfer); + usb2_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer); /* start timeout, if any */ if (xfer->timeout != 0) { @@ -1318,7 +1318,7 @@ musbotg_root_intr_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); DPRINTFN(8, "\n"); @@ -1458,7 +1458,7 @@ static void musbotg_device_done(struct usb2_xfer *xfer, usb2_error_t error) { - USB_BUS_LOCK_ASSERT(xfer->udev->bus, MA_OWNED); + USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED); DPRINTFN(2, "xfer=%p, pipe=%p, error=%d\n", xfer, xfer->pipe, error); @@ -2021,7 +2021,7 @@ static void musbotg_device_isoc_enter(struct usb2_xfer *xfer) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); uint32_t temp; uint32_t nframes; uint32_t fs_frames; @@ -2039,7 +2039,7 @@ */ temp = (nframes - xfer->pipe->isoc_next) & MUSB2_MASK_FRAME; - if (usb2_get_speed(xfer->udev) == USB_SPEED_HIGH) { + if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH) { fs_frames = (xfer->nframes + 7) / 8; } else { fs_frames = xfer->nframes; @@ -2109,7 +2109,7 @@ static void musbotg_root_ctrl_close(struct usb2_xfer *xfer) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); if (sc->sc_root_ctrl.xfer == xfer) { sc->sc_root_ctrl.xfer = NULL; @@ -2214,11 +2214,11 @@ static void musbotg_root_ctrl_start(struct usb2_xfer *xfer) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); sc->sc_root_ctrl.xfer = xfer; - usb2_bus_roothub_exec(xfer->udev->bus); + usb2_bus_roothub_exec(xfer->xroot->bus); } static void @@ -2231,7 +2231,7 @@ musbotg_root_ctrl_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); uint16_t value; uint16_t index; uint8_t use_polling; @@ -2252,7 +2252,7 @@ value = UGETW(std->req.wValue); index = UGETW(std->req.wIndex); - use_polling = mtx_owned(xfer->xfer_mtx) ? 1 : 0; + use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; /* demultiplex the control request */ @@ -2660,7 +2660,7 @@ static void musbotg_root_intr_close(struct usb2_xfer *xfer) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); if (sc->sc_root_intr.xfer == xfer) { sc->sc_root_intr.xfer = NULL; @@ -2677,7 +2677,7 @@ static void musbotg_root_intr_start(struct usb2_xfer *xfer) { - struct musbotg_softc *sc = xfer->usb2_sc; + struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); sc->sc_root_intr.xfer = xfer; } @@ -2707,11 +2707,6 @@ xfer = parm->curr_xfer; /* - * setup xfer - */ - xfer->usb2_sc = sc; - - /* * NOTE: This driver does not use any of the parameters that * are computed from the following values. Just set some * reasonable dummies: ==== //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#24 (text+ko) ==== @@ -669,7 +669,7 @@ return; } /* put transfer on interrupt queue */ - usb2_transfer_enqueue(&xfer->udev->bus->intr_q, xfer); + usb2_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer); /* start timeout, if any */ if (xfer->timeout != 0) { @@ -1233,7 +1233,7 @@ DPRINTF("xfer=%p\n", xfer); - USB_BUS_LOCK_ASSERT(xfer->udev->bus, MA_OWNED); + USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED); /* transfer is transferred */ ohci_device_done(xfer, USB_ERR_TIMEOUT); @@ -1404,7 +1404,7 @@ DPRINTFN(9, "addr=%d endpt=%d sumlen=%d speed=%d\n", xfer->address, UE_GET_ADDR(xfer->endpoint), - xfer->sumlen, usb2_get_speed(xfer->udev)); + xfer->sumlen, usb2_get_speed(xfer->xroot->udev)); temp.average = xfer->max_usb2_frame_size; temp.max_frame_size = xfer->max_frame_size; @@ -1549,7 +1549,7 @@ ed_flags |= (OHCI_ED_FORMAT_GEN | OHCI_ED_DIR_TD); - if (xfer->udev->speed == USB_SPEED_LOW) { + if (xfer->xroot->udev->speed == USB_SPEED_LOW) { ed_flags |= OHCI_ED_SPEED; } ed->ed_flags = htole32(ed_flags); @@ -1558,17 +1558,17 @@ ed->ed_headp = td->td_self; - if (xfer->udev->pwr_save.suspended == 0) { + if (xfer->xroot->udev->pwr_save.suspended == 0) { /* the append function will flush the endpoint descriptor */ OHCI_APPEND_QH(ed, *ed_last); if (methods == &ohci_device_bulk_methods) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_BLF); } if (methods == &ohci_device_ctrl_methods) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_CLF); } @@ -1581,7 +1581,7 @@ ohci_root_intr_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); uint32_t hstatus; uint16_t i; uint16_t m; @@ -1629,7 +1629,7 @@ ohci_device_done(struct usb2_xfer *xfer, usb2_error_t error) { struct usb2_pipe_methods *methods = xfer->pipe->methods; - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); ohci_ed_t *ed; USB_BUS_LOCK_ASSERT(&sc->sc_bus, MA_OWNED); @@ -1685,7 +1685,7 @@ static void ohci_device_bulk_start(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); /* setup TD's and QH */ ohci_setup_standard_chain(xfer, &sc->sc_bulk_p_last); @@ -1728,7 +1728,7 @@ static void ohci_device_ctrl_start(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); /* setup TD's and QH */ ohci_setup_standard_chain(xfer, &sc->sc_ctrl_p_last); @@ -1753,7 +1753,7 @@ static void ohci_device_intr_open(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); uint16_t best; uint16_t bit; uint16_t x; @@ -1786,7 +1786,7 @@ static void ohci_device_intr_close(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); sc->sc_intr_stat[xfer->qh_pos]--; @@ -1802,7 +1802,7 @@ static void ohci_device_intr_start(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); /* setup TD's and QH */ ohci_setup_standard_chain(xfer, &sc->sc_intr_p_last[xfer->qh_pos]); @@ -1841,7 +1841,7 @@ ohci_device_isoc_enter(struct usb2_xfer *xfer) { struct usb2_page_search buf_res; - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); struct ohci_hcca *hcca; uint32_t buf_offset; uint32_t nframes; @@ -1999,7 +1999,7 @@ OHCI_ED_SET_EN(UE_GET_ADDR(xfer->endpoint)) | OHCI_ED_SET_MAXP(xfer->max_frame_size)); - if (xfer->udev->speed == USB_SPEED_LOW) { + if (xfer->xroot->udev->speed == USB_SPEED_LOW) { ed_flags |= OHCI_ED_SPEED; } ed->ed_flags = htole32(ed_flags); @@ -2047,7 +2047,7 @@ static void ohci_root_ctrl_close(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); if (sc->sc_root_ctrl.xfer == xfer) { sc->sc_root_ctrl.xfer = NULL; @@ -2127,11 +2127,11 @@ static void ohci_root_ctrl_start(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); sc->sc_root_ctrl.xfer = xfer; - usb2_bus_roothub_exec(xfer->udev->bus); + usb2_bus_roothub_exec(xfer->xroot->bus); } static void @@ -2144,7 +2144,7 @@ ohci_root_ctrl_done(struct usb2_xfer *xfer, struct usb2_sw_transfer *std) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); char *ptr; uint32_t port; uint32_t v; @@ -2169,7 +2169,7 @@ value = UGETW(std->req.wValue); index = UGETW(std->req.wIndex); - use_polling = mtx_owned(xfer->xfer_mtx) ? 1 : 0; + use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0; DPRINTFN(3, "type=0x%02x request=0x%02x wLen=0x%04x " "wValue=0x%04x wIndex=0x%04x\n", @@ -2470,7 +2470,7 @@ static void ohci_root_intr_close(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); if (sc->sc_root_intr.xfer == xfer) { sc->sc_root_intr.xfer = NULL; @@ -2487,7 +2487,7 @@ static void ohci_root_intr_start(struct usb2_xfer *xfer) { - ohci_softc_t *sc = xfer->usb2_sc; + ohci_softc_t *sc = OHCI_BUS2SC(xfer->xroot->bus); sc->sc_root_intr.xfer = xfer; } @@ -2518,11 +2518,6 @@ sc = OHCI_BUS2SC(parm->udev->bus); xfer = parm->curr_xfer; - /* - * setup xfer - */ - xfer->usb2_sc = sc; - parm->hc_max_packet_size = 0x500; parm->hc_max_packet_count = 1; parm->hc_max_frame_size = OHCI_PAGE_SIZE; @@ -2753,7 +2748,7 @@ TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) { - if (xfer->udev == udev) { + if (xfer->xroot->udev == udev) { methods = xfer->pipe->methods; ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; @@ -2791,7 +2786,7 @@ TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) { - if (xfer->udev == udev) { + if (xfer->xroot->udev == udev) { methods = xfer->pipe->methods; ed = xfer->qh_start[xfer->flags_int.curr_dma_set]; ==== //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#21 (text+ko) ==== @@ -878,7 +878,7 @@ return; } /* put transfer on interrupt queue */ - usb2_transfer_enqueue(&xfer->udev->bus->intr_q, xfer); + usb2_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer); /* start timeout, if any */ if (xfer->timeout != 0) { @@ -1490,7 +1490,7 @@ DPRINTF("xfer=%p\n", xfer); - USB_BUS_LOCK_ASSERT(xfer->udev->bus, MA_OWNED); + USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED); /* transfer is transferred */ uhci_device_done(xfer, USB_ERR_TIMEOUT); @@ -1659,7 +1659,7 @@ DPRINTFN(9, "addr=%d endpt=%d sumlen=%d speed=%d\n", xfer->address, UE_GET_ADDR(xfer->endpoint), - xfer->sumlen, usb2_get_speed(xfer->udev)); + xfer->sumlen, usb2_get_speed(xfer->xroot->udev)); temp.average = xfer->max_frame_size; temp.max_frame_size = xfer->max_frame_size; @@ -1683,7 +1683,7 @@ htole32(UHCI_TD_ZERO_ACTLEN(UHCI_TD_SET_ERRCNT(3) | UHCI_TD_ACTIVE)); - if (xfer->udev->speed == USB_SPEED_LOW) { + if (xfer->xroot->udev->speed == USB_SPEED_LOW) { temp.td_status |= htole32(UHCI_TD_LS); } temp.td_token = @@ -1816,7 +1816,7 @@ uhci_device_done(struct usb2_xfer *xfer, usb2_error_t error) { struct usb2_pipe_methods *methods = xfer->pipe->methods; - uhci_softc_t *sc = xfer->usb2_sc; + uhci_softc_t *sc = UHCI_BUS2SC(xfer->xroot->bus); uhci_qh_t *qh; USB_BUS_LOCK_ASSERT(&sc->sc_bus, MA_OWNED); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901082331.n08NVdVZ009555>