I traced the change of behaviour when changing kernel versions to a
problem in the application itself.
One of the usb_control_msg calls was being made with data that the
device did not understand, and so the device was not responding and
usb_interrupt_read was returning an error status that the developer (not
me :-) never checked.
It is kind of amazing it ever worked, but the response buffer contained
valid data from a previous usb call, however the patches to the kernel
changed the contents of the buffer which 'broke' the broken application.
I updated the application code to fix the arguments to the
usb_control_msg call so that device responded correctly and to check the
return status of all of the usb calls and the application has now been
verified to work properly on 2.6.26-21lenny4, 2.6.26-22lenny1, 2.6.32-5,
2.6.32-trunk and a 2.6.34 kernel.
Apologies for not having a much deeper dig into this at the start.
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact email@example.com