there is now a upstream driver for dwc2 usb. i already started using it on ralink. we should really try to use that one. i am happy to take any patches though that imporve the current state.
maybe we could also try to port a ifxhcd froma recent GPL tarball. On 10/11/2014 09:03, Ben Mulvihill wrote: > May I ask what the status of isochronous transfer support is > in the lantiq hcd driver? It was working in Attitude Adjustment > (at least my usb sound card worked anyway). > But a lot of changes were made to the driver between AA and BB, > including new code related to isosynchronous transfers, which are > now disabled by default (CONFIG_USB_HOST_IFX_WITH_ISO=n). > Someone else has filed a bug about this: > > https://dev.openwrt.org/ticket/15364 > > I tried building a BB image with isochronous transfers enabled, > but ifxhcd_intr.c failed to compile. The errors look like the > sorts of careless syntax errors which most people make when > writing a first version of a new piece of code, and my guess is > that this bit of code has have never in fact been compiled, let > alone tested. I have managed to get it to compile by making > various plausible corrections, but I don't yet have any sound. > Before I investigate further can you tell me whether it is > supposed to be working? > > (Below, for reference, are the corrections I have made. But this > is just an initial attempt, certainly not a patch to be merged.) > > Many thanks, > > Ben Mulvihill > > --- a/package/kernel/lantiq/ltq-hcd/src/ifxhcd_intr.c 2014-11-10 > 00:31:52.744641266 +0100 > +++ b/package/kernel/lantiq/ltq-hcd/src/ifxhcd_intr.c 2014-11-10 > 00:25:03.321242453 +0100 > @@ -103,6 +103,10 @@ > ifxusb_mreg(&((_hc_regs_)->hcintmsk),0, hcintmsk.d32); \ > } while (0) > > + > +static > +void init_hc(ifxhcd_epqh_t *_epqh); > + > /* > * Save the starting data toggle for the next transfer. The data toggle is > * saved in the QH for non-control transfers and it's saved in the QTD for > @@ -4089,13 +4093,13 @@ void init_hc(ifxhcd_epqh_t *_epqh) > ifxhc->isoc_xact_pos = > IFXUSB_HCSPLIT_XACTPOS_ALL; > #endif > > - _epqh->isoc_frame_index=0; > + urbd->isoc_frame_index=0; > _epqh->isoc_now=0; > _epqh->isoc_start_frame=0; > - if(_urb->transfer_flags && URB_ISO_ASAP) > + if(urb->transfer_flags && URB_ISO_ASAP) > _epqh->isoc_now=1; > else > - _epqh->isoc_start_frame=_urb->start_frame; > + _epqh->isoc_start_frame=urb->start_frame; > #ifdef __EN_ISOC_SPLIT__ > _epqh->isoc_split_pos =0; > _epqh->isoc_split_offset=0; > @@ -4296,8 +4300,8 @@ void select_eps_sub(ifxhcd_hcd_t *_ifxhc > > list_add_tail(&epqh->ql, &_ifxhcd->epqh_list_isoc); > init_hc(epqh); > > epqh->phase=EPQH_ACTIVE; > - > urbd->phase==URBD_ACTIVE; > - > epqh->hc.phase=HC_WAITING; > + > urbd->phase=URBD_ACTIVE; > + > epqh->hc->phase=HC_WAITING; > > ifxhcd_hc_start(_ifxhcd, epqh->hc); > } > break; > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel