Date: Mon, 13 Jul 2009 18:45:39 GMT From: Sylvestre Gallon <syl@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 166029 for review Message-ID: <200907131845.n6DIjdtU036908@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=166029 Change 166029 by syl@syl_atuin on 2009/07/13 18:45:02 Fix compilation issues. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#9 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.h#6 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#9 (text+ko) ==== @@ -134,7 +134,8 @@ * Transfer stuff. */ -static void s3c24dci_device_done(struct usb_xfer *, usb_error_t) +static void +s3c24dci_device_done(struct usb_xfer *xfer, usb_error_t error) { struct s3c24dci_softc *sc = S3C24_DCI_BUS2SC(xfer->xroot->bus); uint32_t ittmp; @@ -142,23 +143,35 @@ USB_BUS_LOCK_ASSERT(&sc->sc_bus, MA_OWNED); - DPRINTF(2, "xfer=%p, endpoint=%p, error=%d\n", - xfer, xfer->endpointnom & UE_ADDR); + DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n", + xfer, xfer->endpoint, error); if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) { ep_no = (xfer->endpointno & UE_ADDR); /* disable endpoint interrupt */ - ittmp = S3C24XX_DCI_READ_4(S3C24_DCI_EP_INT_EN); + ittmp = S3C24XX_DCI_READ_4(sc, S3C24_DCI_EP_INT_EN); ittmp &= ~(1<<ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_EP_INT_EN, ittmp); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_EP_INT_EN, ittmp); - DPRINTF(15, "disable interrupts on endpoint %d\n", ep_no); + DPRINTFN(15, "disable interrupts on endpoint %d\n", ep_no); } usbd_transfer_done(xfer, error); } +static void +s3c24dci_setup_standard_chain(struct usb_xfer *xfer) +{ + +} + +static void +s3c24dci_start_standard_chain(struct usb_xfer *xfer) +{ + +} + /* * s3c24xxdci ctrl/bulk/intr support */ @@ -198,7 +211,7 @@ .start = s3c24dci_device_xxx_start, }; -struct usb_pipe_methods s3c24dci_device_bulk_methods = { +struct usb_pipe_methods s3c24dci_device_intr_methods = { .open = s3c24dci_device_dummy, .enter = s3c24dci_device_dummy, .close = s3c24dci_device_xxx_close, @@ -219,6 +232,16 @@ return ; } +static void +s3c24dci_get_hw_ep_profile(struct usb_device *udev, + const struct usb_hw_ep_profile **ppf, uint8_t ep_addr) +{ + if (ep_addr < S3C24XX_DCI_EP_MAX) + *ppf = (s3c24dci_ep_profile + ep_addr); + else + *ppf = NULL; +} + static void s3c24dci_clear_stall_sub(struct s3c24dci_softc *sc, uint8_t ep_no, uint8_t ep_type, uint8_t ep_dir) @@ -235,25 +258,25 @@ /* disable ep */ - ittmp = S3C24XX_DCI_READ_4(S3C24_DCI_EP_INT_EN); + ittmp = S3C24XX_DCI_READ_4(sc, S3C24_DCI_EP_INT_EN); ittmp &= ~(1<<ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_EP_INT_EN, ittmp); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_EP_INT_EN, ittmp); /* get endpoint profile */ s3c24dci_get_hw_ep_profile(NULL, &pf, ep_no); /* Clear SEND_STALL */ - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); if (ep_dir & UE_DIR_IN) { - stallcmp = S3C24XX_DCI_READ_4(S3C24_DCI_IN_CSR1); - stallcmp &= ~(S3C24_DCI_IN_SEND_STALL); - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_IN_CSR1 , stallcmp); + stalltmp = S3C24XX_DCI_READ_4(sc, S3C24_DCI_IN_CSR1); + stalltmp &= ~(S3C24_DCI_IN_SEND_STALL); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_IN_CSR1, stalltmp); } else { - stallcmp = S3C24XX_DCI_READ_4(S3C24_DCI_OUT_CSR1); - stallcmp &= ~(S3C24_DCI_OUT_SEND_STALL); - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_OUT_CSR1 , stallcmp); + stalltmp = S3C24XX_DCI_READ_4(sc, S3C24_DCI_OUT_CSR1); + stalltmp &= ~(S3C24_DCI_OUT_SEND_STALL); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_OUT_CSR1 , stalltmp); } /* @@ -264,41 +287,41 @@ /* compute default CSR value */ - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_MAXP, S3C24_DCI_MAXP64); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_MAXP, S3C24_DCI_MAXP64); /* enable endpoint */ if (ep_dir & UE_DIR_IN) { csr1 = S3C24_DCI_IN_FIFO_FLUSH|S3C24_DCI_IN_CLR_DATA_TOGGLE; csr2 = S3C24_DCI_IN_MODE_IN; - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_IN_CSR1, csr1); - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_IN_CSR2, csr2); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_IN_CSR1, csr1); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_IN_CSR2, csr2); } else { csr1 = S3C24_DCI_OUT_CLR_DATA_TOGGLE; csr2 = 0; - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_OUT_CSR1, csr1); - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_OUT_CSR2, csr2); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_OUT_CSR1, csr1); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_OUT_CSR2, csr2); csr1 = S3C24_DCI_OUT_FIFO_FLUSH | S3C24_DCI_OUT_CLR_DATA_TOGGLE; csr2 = 0; - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_OUT_CSR1, csr1); - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_OUT_CSR2, csr2); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_OUT_CSR1, csr1); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, ep_no); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_OUT_CSR2, csr2); } /* enable it on the ep */ - ittmp = S3C24XX_DCI_READ_4(S3C24_DCI_EP_INT_EN); + ittmp = S3C24XX_DCI_READ_4(sc, S3C24_DCI_EP_INT_EN); ittmp |= (1<<ep_no); - S3C24XX_DCI_WRITE_4(S3C24_DCI_EP_INT_EN, ittmp); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_EP_INT_EN, ittmp); } static void @@ -307,7 +330,7 @@ struct s3c24dci_softc *sc; struct usb_endpoint_descriptor *ed; - DPRINTF(5, "endpoint=%p\n", ep); + DPRINTFN(5, "endpoint=%p\n", ep); /* check mode */ if (udev->flags.usb_mode != USB_MODE_DEVICE) { @@ -336,7 +359,7 @@ USB_BUS_LOCK_ASSERT(udev->bus, MA_OWNED); - DPRINTF(5, "endpoint=%p\n", ep); + DPRINTFN(5, "endpoint=%p\n", ep); if (xfer) { /* cancel any ongoing transfers */ @@ -344,30 +367,21 @@ } /* set STALL */ - S3C24XX_DCI_WRITE_4(S3C24_DCI_INDEX, (ep->ed->bEndpointAddress & UE_ADDR)); - if (ep->ed->bEndpointAddress & (UE_DIR_IN|UE_DIR_OUT) == UE_DIR_IN) { - csr = S3C24XX_DCI_READ_4(S3C24_DCI_IN_CSR1); + sc = S3C24_DCI_BUS2SC(udev->bus); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_INDEX, (ep->edesc->bEndpointAddress & UE_ADDR)); + if ((ep->edesc->bEndpointAddress & (UE_DIR_IN|UE_DIR_OUT)) == UE_DIR_IN) { + csr = S3C24XX_DCI_READ_4(sc, S3C24_DCI_IN_CSR1); csr |= S3C24_DCI_IN_SEND_STALL; - S3C24XX_DCI_WRITE_4(S3C24_DCI_IN_CSR1, csr); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_IN_CSR1, csr); } else { - csr = S3C24XX_DCI_READ_4(S3C24_DCI_OUT_CSR1); + csr = S3C24XX_DCI_READ_4(sc, S3C24_DCI_OUT_CSR1); csr |= S3C24_DCI_OUT_SEND_STALL; - S3C24XX_DCI_WRITE_4(S3C24_DCI_OUT_CSR1, csr); + S3C24XX_DCI_WRITE_4(sc, S3C24_DCI_OUT_CSR1, csr); } return ; } -static void -s3c24dci_get_hw_ep_profile(struct usb_device *udev, - const struct usb_hw_ep_profile **ppf, uint8_t ep_addr) -{ - if (ep_addr < S3C24XX_DCI_EP_MAX) - *ppf = (s3c24dci_ep_profile + ep_addr); - else - *ppf = NULL; -} - static usb_error_t s3c24dci_roothub_exec(struct usb_device *udev, struct usb_device_request *req, const void **pptr, uint16_t *plength) @@ -418,6 +432,8 @@ return ; } + last_obj = NULL; + if (ntd) { ep_no = xfer->endpointno & UE_ADDR; s3c24dci_get_hw_ep_profile(parm->udev, &pf, ep_no); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.h#6 (text+ko) ==== @@ -172,14 +172,14 @@ #define S3C24XX_DCI_READ_4(sc, reg) \ bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg) -#define S3C24XX_DCI_WRITE_4(sc, reg, (sc)->sc_io_hdl, reg, data) \ - bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data) +#define S3C24XX_DCI_WRITE_4(sc, reg, data) \ + bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data) -struct s3cdci_td; +struct s3c24dci_td; -typedef uint8_t (s3c24dci_cmd_t)(struct s3c24dci_td *td); +typedef uint8_t (*s3c24dci_cmd_t)(struct s3c24dci_td *td); -struct uint8_t s3c24dci_td { +struct s3c24dci_td { bus_space_tag_t io_tag; bus_space_handle_t io_hdl; struct s3c24dci_td *obj_next; @@ -199,6 +199,9 @@ struct usb_bus sc_bus; struct usb_device *sc_devices[2]; + bus_space_tag_t sc_io_tag; + bus_space_handle_t sc_io_hdl; + uint8_t sc_rt_addr; /* root HUB address */ uint8_t sc_dv_addr; /* device address */ uint8_t sc_conf; /* root HUB config */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907131845.n6DIjdtU036908>