> In the case of dib0700, it was clear from the source code that the > driver uses USB Control transfers to tell the hardware about I2C > messages. I don't know if other bridges work in the same way. In > theory a bridge could use USB Bulk transfers instead; they aren't > subject to this restriction on length-0 reads. Or a bridge could use a > Control read transfer but include extra header material along with the > actual data, so that a length-0 message wouldn't end up generating a > length-0 read. Fully understood, thanks for your explanation. > So the short answer is that you would need to find someone who really > understands what's going on here -- which I don't. Sorry. No worries. There are only 5 drivers or so, I will manually check if they use a control_read and have no own header. Doesn't sound hard.