Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -r 6b68d37bb4dc head/sys/dev/usb/controller/dotg.c
- --- a/head/sys/dev/usb/controller/dotg.c Mon Jul 30 11:44:18 2012 +0300
- +++ b/head/sys/dev/usb/controller/dotg.c Thu Aug 09 14:40:02 2012 +0300
- @@ -490,7 +490,7 @@
- else if (hcint & HCINT_FRMOVRUN) {
- td->qh->split_sc_frame = -1;
- - WRITE4(sc, DOTG_HCINT(channel), hcchar | HCCHAR_CHDIS);
- + WRITE4(sc, DOTG_HCCHAR(channel), hcchar | HCCHAR_CHDIS);
- dotg_complete_cb(DOTG_COMPLETE_FRAMEERR, 0, td);
- }
- @@ -657,11 +657,11 @@
- return (EIO);
- }
- - SETFIELD32(sc, DOTG_GINTMSK, GINTMSK_SOFMSK, 1);
- + //SETFIELD32(sc, DOTG_GINTMSK, GINTMSK_SOFMSK, 1);
- hcint = READ4(sc, DOTG_HCINT(td->channel));
- WRITE4(sc, DOTG_HCINT(td->channel), hcint);
- - WRITE4(sc, DOTG_HCINTMSK(td->channel), 0x7ff);
- +// WRITE4(sc, DOTG_HCINTMSK(td->channel), HCINTMSK_ANY);
- td->qh->this_xfersize = xfersize;
- @@ -695,10 +695,11 @@
- WRITEDMA(sc, td->channel,
- (unsigned int *)(td->qh->fixup_phys + td->qh->fixup_off));
- - WRITE4(sc, DOTG_HAINTMSK,
- + WRITE4(sc, DOTG_HAINTMSK,
- (READ4(sc, DOTG_HAINTMSK) | (1<<td->channel)));
- - WRITE4(sc, DOTG_HCINTMSK(td->channel),
- + WRITE4(sc, DOTG_HCINTMSK(td->channel),
- HCINTMSK_CHHLTDMSK|HCINTMSK_AHBERRMSK);
- + WRITE4(sc, DOTG_HCINTMSK(td->channel), HCINTMSK_ANY);
- WRITE4(sc, DOTG_HCSPLT(td->channel), hcsplt);
- WRITE4(sc, DOTG_HCTSIZ(td->channel), hctsiz);
- @@ -756,13 +757,13 @@
- /* get softc */
- sc = td->qh->sc;
- -#ifdef USB_DEBUG
- - if (dotgdebug) {
- - DPRINTF("\n");
- - hexdump((uint8_t *)MIPS_PHYS_TO_KSEG1(td->qh->fixup_phys),
- - 8, 0, 0);
- - }
- -#endif
- +//#ifdef USB_DEBUG
- +// if (dotgdebug) {
- +// DPRINTF("\n");
- +// hexdump((uint8_t *)MIPS_PHYS_TO_KSEG1(td->qh->fixup_phys),
- +// 8, 0, 0);
- +// }
- +//#endif
- int ret = configure_channel(td, 8, HCTSIZ_PID_SETUP, HCCHAR_EPDIR_OUT);
- if (ret != 0)
- @@ -1034,9 +1035,9 @@
- /*---------------------------------------------------------------*/
- DPRINTF("+++++++++++++++++ rem=%d\n", rem);
- -#ifdef USB_DEBUG
- - if (dotgdebug == 0x0fffffff) hexdump((uint8_t *)MIPS_PHYS_TO_KSEG1(td->qh->fixup_phys), rem, 0, 0);
- -#endif
- +//#ifdef USB_DEBUG
- +// if (dotgdebug == 0x0fffffff) hexdump((uint8_t *)MIPS_PHYS_TO_KSEG1(td->qh->fixup_phys), rem, 0, 0);
- +//#endif
- DPRINTF("\n");
- int ret = configure_channel(td, rem, td->qh->ep_toggle_next?HCTSIZ_PID_DATA1:HCTSIZ_PID_DATA0, HCCHAR_EPDIR_OUT);
- @@ -1100,9 +1101,9 @@
- usb_pc_cpu_invalidate(td->qh->fixup_pc);
- DPRINTF("\n");
- -#ifdef USB_DEBUG
- - if (dotgdebug == 0x0fffffff) hexdump((uint8_t *)MIPS_PHYS_TO_KSEG1(td->qh->fixup_phys), td->qh->fixup_actlen, 0, 0);
- -#endif
- +//#ifdef USB_DEBUG
- +// if (dotgdebug == 0x0fffffff) hexdump((uint8_t *)MIPS_PHYS_TO_KSEG1(td->qh->fixup_phys), td->qh->fixup_actlen, 0, 0);
- +//#endif
- DPRINTF("\n");
- /* verify transfer length */
- @@ -1366,10 +1367,11 @@
- uhub_root_intr(&sc->sc_bus, sc->sc_hub_idata, sizeof(sc->sc_hub_idata));
- }
- +
- {
- uint32_t haint = READ4(sc, DOTG_HAINT);
- WRITE4(sc, DOTG_HAINT, haint);
- - haint &= ((1<<sc->channels) - 1);
- + haint &= ((1 << sc->channels) - 1);
- while (haint) {
- int channel;
- for (channel = 0; channel < sc->channels; channel ++)
- @@ -1381,7 +1383,7 @@
- }
- - WRITE4(sc, DOTG_GINTSTS, gintsts);
- +// WRITE4(sc, DOTG_GINTSTS, gintsts);
- repeat:
- TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) {
- @@ -1517,8 +1519,8 @@
- CP;
- /* Enable interrupts */
- tmp = READ4(sc, DOTG_GINTMSK);
- -// tmp &= ~(GINTMSK_SOFMSK); ////
- - tmp |= (GINTMSK_SOFMSK);
- +// tmp |= (GINTMSK_SOFMSK);
- + tmp &= ~(GINTMSK_SOFMSK);
- tmp |= (GINTMSK_OTGINTMSK | GINTMSK_MODEMISMSK | GINTMSK_HCHINTMSK);
- WRITE4(sc, DOTG_GINTMSK, tmp);
- @@ -2427,7 +2429,7 @@
- if (usbd_transfer_setup_sub_malloc(
- parm, &pc, sizeof(struct dotg_qh),
- - USB_HOST_ALIGN, 1)) {
- + USB_HOST_ALIGN*4, 1)) { //XXX
- parm->err = USB_ERR_NOMEM;
- return;
- }
- @@ -2551,6 +2553,7 @@
- static void
- dotg_xfer_unsetup(struct usb_xfer *xfer)
- {
- + return;
- }
- static void
- diff -r 6b68d37bb4dc head/sys/dev/usb/controller/dotgreg.h
- --- a/head/sys/dev/usb/controller/dotgreg.h Mon Jul 30 11:44:18 2012 +0300
- +++ b/head/sys/dev/usb/controller/dotgreg.h Thu Aug 09 14:40:02 2012 +0300
- @@ -479,6 +479,17 @@
- #define HCINTMSK_AHBERRMSK (1<<2)
- #define HCINTMSK_CHHLTDMSK (1<<1)
- #define HCINTMSK_XFERCOMPLMSK (1<<0)
- +#define HCINTMSK_ANY (HCINTMSK_DATATGLERRMSK | \
- + HCINTMSK_FRMOVRUNMSK | \
- + HCINTMSK_BBLERRMSK | \
- + HCINTMSK_XACTERRMSK | \
- + HCINTMSK_NYETMSK | \
- + HCINTMSK_ACKMSK | \
- + HCINTMSK_NAKMSK | \
- + HCINTMSK_STALLMSK | \
- + HCINTMSK_AHBERRMSK | \
- + HCINTMSK_CHHLTDMSK | \
- + HCINTMSK_XFERCOMPLMSK)
- #define HCTSIZ_DOPNG (1<<31)
- #define HCTSIZ_PID_SHIFT 29
Advertisement
Add Comment
Please, Sign In to add comment