> As far as I can tell from the source code, the dib0700 simply isn't able > to handle 0-length reads. Should the dib0700_ctrl_rd() routine be > changed simply to return 0 in such cases? The adapter (I assume the one in dvb-usb-i2c.c) should populate an i2c_adapter_quirks struct with I2C_AQ_NO_ZERO_LEN and then the core will bail out for you.