iio_device_release_direct(9)
β¨ iio_device_release_direct β kernel API manual, but make it make sense β¨
okay bestie, so this one's iio_device_release_direct from the kernel API manual β it's a tiny function with a big job and honestly it's giving "quiet quitting but for locks" π
πΈ NAME πΈ
iio_device_release_direct β releases claim on direct mode π«Ά
β¨ SYNOPSIS β¨
iio_device_release_direct (indio_dev );
that's it. that's the whole call. no cap, it's a one-liner and I love that for us π
π¦ ARGUMENTS π¦
indio_devβ theiio_devassociated with the device π that's your device handle, the one main-character struct you already have lying around.
π DESCRIPTION π
so basically you're releasing the claim here. that's the whole vibe. π
once you do this, the device is no longer guaranteed to stay in direct mode β like, the guarantee is gone, bestie. it was there, and now it's not. so don't go assuming anything about direct mode after this call, because the kernel is not about to pinky promise you anything π
Use with iio_device_claim_direct. β¨ like, they're a matching set. one claims, one releases β the way that these two function together is lowkey iconic π«Ά
π₯ SEE ALSO π₯
kernel file ./include/linux/iio/iio.h β and here's the full squad, no skips, no cuts, every single one π«Ά:
struct iio_chan_spec_ext_info(9)struct iio_enum(9)IIO_ENUM(9)IIO_ENUM_AVAILABLE(9)struct iio_mount_matrix(9)IIO_MOUNT_MATRIX(9)struct iio_event_spec(9)IIO_SCAN_FORMAT_SIGNED_INT(9)IIO_SCAN_FORMAT_UNSIGNED_INT(9)IIO_SCAN_FORMAT_FLOAT(9)struct iio_scan_type(9)struct iio_chan_spec(9)iio_channel_has_info(9)iio_channel_has_available(9)struct iio_info(9)struct iio_buffer_setup_ops(9)struct iio_dev(9)iio_device_register(9)devm_iio_device_register(9)iio_device_claim_direct(9)iio_device_try_claim_buffer_mode(9)iio_device_release_buffer_mode(9)IIO_DEV_ACQUIRE_DIRECT_MODE(9)IIO_DEV_ACQUIRE_FAILED(9)IIO_DEV_GUARD_CURRENT_MODE(9)iio_device_put(9)dev_to_iio_dev(9)iio_device_get(9)iio_device_set_parent(9)iio_device_set_drvdata(9)iio_device_get_drvdata(9)IIO_DECLARE_BUFFER_WITH_TS(9)IIO_DECLARE_DMA_BUFFER_WITH_TS(9)IIO_DECLARE_QUATERNION(9)iio_get_debugfs_dentry(9)iio_device_suspend_triggering(9)iio_device_resume_triggering(9)iio_get_current_scan_type(9)iio_get_masklength(9)iio_for_each_active_channel(9)IIO_DEGREE_TO_RAD(9)IIO_RAD_TO_DEGREE(9)IIO_G_TO_M_S_2(9)IIO_M_S_2_TO_G(9)
and that's the page bestie π
source location is ./include/linux/iio, this is the October 2026 edition of iio_device_release_direct(9) β go forth, release that claim, and slay πβπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms