In VDR I use an ioctl() call with FE_READ_UNCORRECTED_BLOCKS on a device (using stb0899). After this call I check 'errno' for EOPNOTSUPP to determine whether this device supports this call. This used to work just fine, until a few months ago I noticed that my devices using stb0899 didn't display their signal quality in VDR's OSD any more. After further investigation I found that ioctl(FE_READ_UNCORRECTED_BLOCKS) no longer returns EOPNOTSUPP, but rather ENOTTY. And since I stop getting the signal quality in case any unknown errno value appears, this broke my signal quality query function. Is there a reason why this has been changed? Should a caller check against both EOPNOTSUPP *and* ENOTTY? I searched through linux/drivers/media and found that both values are used (EOPNOTSUPP 57 times and ENOTTY 71 times in the version I have in use). While ENOTTY seems to apply here (at least from its description, not from its name) ENOTTY "Inappropriate ioctl for device" (originally "Not a typewriter") and I can see why this would be a reason for changing this, EOPNOTSUPP doesn't really seem to apply, since there is, I assume, no "socket" involved here: EOPNOTSUPP "Operation not supported on socket" The value I would actually expect to be used in case an operation is not supported by a device is ENOTSUP "Operation not supported" Interestingly the driver source uses ENOTSUPP (note the double 'P') 8 times, but that name is not defined according to man errno(3). So the bottom line is that there appears to be some confusion as to which errno value to return in case an operation is not supported. Maybe all these return values should be set to ENOTSUP (with a single 'P' at the end)? Klaus -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html