On Thursday 08 May 2014 16:18:04 Andreas Irestål wrote: > > > > + > > > + /* Set poll wait timeout to 2 seconds */ > > > + dwc_wait = 200; > > > + > > > + while (lp->tx_descs[i].tdes3.wr.own) { > > > + mdelay(10); > > > + if (!dwc_wait--) > > > + break; > > > + } > > > > This is really evil: you are blocking the CPU for up to two seconds! > > You already mentioned that this is work-in-progress, but I guess it has > > to be a little better than this and do something that doesn't block > > out the CPU during TX. > > > > It really is, but a 2s lockout is only happening upon TX failure. Anyway, this > won't be an issue in the final version, since it won't use polling for TX. Actually I'd expect a 10ms delay for most packets, which is also too much. Just for scale: at gigabit speed, a 10 *microsecond* delay would be more appropriate than a 10 milisecond delay. Anyway, it's not important here as long as you find a proper solution. Arnd -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html