From: wander.lairson <wan...@gm...> - 2011-05-11 12:26:25
|
2011/5/11 Emmanuel BOUAZIZ <ebo...@ne...>: > Hi Wander, > > thank you for your answer. > > I tried your patch and got no improvement. > > get_endpoint_type() on line 603 is now called with an interface number instead of an Interface object and passes that > parameter to get_interface(), so the slow get_interface() call is made on line 183 instead of line 602. > > (get_interface() gets slow when it calls find_descriptor() which calls desc_iter()) > > I don't see how to suppress the call to get_interface() in get_endpoint_type() as you need the bAlternateSetting attribute. > > Note that the solution of calling read() and write() with the Interface (which is easy to retrieve once for all) object > instead of the interface number works fine so it's not a major issue. > > Also, when you reach line 609, you need to call fn() with intf instead of intf.bInterfaceNumber now. > Yes, you are right, I haven't realized that. It seems that to keep things easy we can't run away of this kind of trade off.. Wander |