devm_reset_c...et_exclusive(9)
β¨ devm_reset_control_get_exclusive β the Kernel API Manual β¨
okay so bestie, this is a page from the Kernel API Manual (yes, that manual, the one with the (9) section number, we love a numbered section) and it's about devm_reset_control_get_exclusive. it's giving "small function, big responsibilities" and honestly? iconic. let's get into it π
π NAME π
devm_reset_control_get_exclusive β resource managed reset_control_get_exclusive()
like, the managed version. the one that cleans up after itself. main character energy fr fr π«Ά
β¨ SYNOPSIS β¨
struct reset_control * devm_reset_control_get_exclusive (struct device
*dev , const char *id );
that's the whole signature and no, you cannot change it, no cap. write it exactly like that π
π¦ ARGUMENTS π¦
devβ the device that's gonna get reset by the controller. it's the lil guy being poked π«£idβ the reset line name. that's how you tell the controller which line you're talking about, iykyk
πΈ DESCRIPTION πΈ
so this is the Managed reset_control_get_exclusive.
here's the slay part: for reset controllers you got back from this function, reset_control_put is called automatically on driver detach. like, you literally don't have to do anything. automatic. the kernel handles it. obsessed πβ¨
and if you want more info, go read reset_control_get_exclusive β this one's basically that but with the devm cleanup glow-up π
π₯ real talk: the "managed" in the name is doing a lot of heavy lifting here. you're not manually callingreset_control_putyourself, that's the whole vibe ofdevm_*. it just happens on detach. periodt.
π SEE ALSO π
Kernel file ./include/linux/reset.h
and now, the friend group. the whole extended family. every single one of them, bestie, we don't skip anyone π
struct reset_control_bulk_data(9)enum reset_control_flags(9)reset_control_get_exclusive(9)reset_control_bulk_get_exclusive(9)reset_control_get_exclusive_released(9)reset_control_bulk_get_exclusive_released(9)reset_control_bulk_get_optional_exclusive_released(9)reset_control_get_shared(9)reset_control_bulk_get_shared(9)reset_control_get_optional_exclusive(9)reset_control_bulk_get_optional_exclusive(9)reset_control_get_optional_shared(9)reset_control_bulk_get_optional_shared(9)of_reset_control_get_exclusive(9)of_reset_control_get_optional_exclusive(9)of_reset_control_get_shared(9)of_reset_control_get_exclusive_by_index(9)of_reset_control_get_shared_by_index(9)devm_reset_control_get_exclusive_deasserted(9)devm_reset_control_bulk_get_exclusive(9)devm_reset_control_get_exclusive_released(9)devm_reset_control_bulk_get_exclusive_released(9)devm_reset_control_get_optional_exclusive_released(9)devm_reset_control_bulk_get_optional_exclusive_released(9)devm_reset_control_get_shared(9)devm_reset_control_get_shared_deasserted(9)devm_reset_control_bulk_get_shared(9)devm_reset_control_bulk_get_shared_deasserted(9)devm_reset_control_get_optional_exclusive(9)devm_reset_control_get_optional_exclusive_deasserted(9)devm_reset_control_bulk_get_optional_exclusive(9)devm_reset_control_get_optional_shared(9)devm_reset_control_get_optional_shared_deasserted(9)devm_reset_control_bulk_get_optional_shared(9)devm_reset_control_get_exclusive_by_index(9)devm_reset_control_get_shared_by_index(9)
that's 36 of them. thirty-six. we counted. we always count π’π
and that's the whole page, bestie! π this beauty lives in the kernel source at ./include/linux and it's dated October 2026, which likeβ¦ future vibes but make it documentation β slay, go reset some hardware responsibly ππ
π¦ 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