PERFORCE change 166029 for review
Sylvestre Gallon
syl at FreeBSD.org
Mon Jul 13 18:45:41 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=166029
Change 166029 by syl at 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 */
More information about the p4-projects
mailing list