Hi Daniel, > > + __u16 len = recv_len ? msgs[i].buf[0] + 1 : msgs[i].len; > > This is post-ioctl()? (Sorry, still not familiar enough with i2c-tools.) Yes, read buffers are only printed after the ioctl. And 'print_msgs' is probably the most complex function within this tool :/ > It isn’t wrong, but shouldn’t be necessary. > Unless the adapter driver you’re using went astray. Not ruling that out. I have just checked existing I2C_M_RECV_LEN handling. Quite some drivers do it wrong. And there is no consistency in what they return. Lots of things to fix there... Thanks for the quick comments, Wolfram