Before:
% i2c -f /dev/iic1 -a 0x20 -d r -c 513
i2c: ioctl(I2CRDWR) failed: Exec format error
After:
% i2c -f /dev/iic1 -a 0x20 -d r -c 513
i2c: ioctl(I2CRDWR) failed: Operation not supported
---
(the example above is [[ https://github.com/freebsd/freebsd-src/blob/cb65d4432aed11a0cd77d2bd235d6f760ae91c38/sys/dev/usb/misc/cp2112.c#L1119 | IIC_ENOTSUPP due to an overly long read ]])
So yeah, turns out this has been a thing for years :/
I guess we could alternatively keep the current way, document it in the manpage and add an `iic_strerror` to i2c(8) (which would also require moving the `IIC_E*` definitions to a header shared with userspace) but since nobody noticed that the errors are weird, it should be fine to change.