> From: Sebastian Andrzej Siewior [mailto:bigeasy@xxxxxxxxxxxxx] > Sent: Monday, October 17, 2011 1:06 PM > > > But wouldn't it be simpler and more efficient to just get rid of the > > bitfields and use the normal shift and mask method to do the TRBs and > > events? For e.g. high-bandwidth Isoc transfers, the driver needs to > > process a _lot_ of TRBs to keep up with the USB 3.0 bandwidth. We > > should avoid any unnecessary processing overhead in hot paths such as > > that. > > Now it is performance and not a BE problem. > The only problem with the bit fields is that each assignment is a write > access. This write access ends up in cache. So let me look at > dwc3_prepare_trbs(). You write bpl/h most likely the same way it is > now. The other two require a local variable each for setup / shifts. > Hmmm. Not sure how much overhead you save after converting. > > We did this way because Felipe preferred it over bit shifts. If you want > it the other way due to performance issues then I would say please post > some numbers which prove your point. Fair enough, my original concern was about an endianness problem. Since I see that shouldn't be an issue, I will drop this. -- Paul ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥