STRUCT DPLL_PIN(9)
π struct dpll_pin(9) π
okay so bestie, welcome to the Kernel API Manual β yes, the actual kernel API manual, and yes, we're about to read a struct definition together and it's gonna be iconic π
β¨ NAME β¨
struct dpll_pin β the structure for a dpll pin. that's it, that's the whole vibe. it's a struct. it pins. it dplls. slay π
πΈ SYNOPSIS πΈ
here's the whole shape of her, no cap, every field exactly as it lives:
struct dpll_pin {
u32 id;
u32 pin_idx;
u64 clock_id;
struct module *module;
char module_name[MODULE_NAME_LEN];
struct fwnode_handle *fwnode;
struct xarray dpll_refs;
struct xarray parent_refs;
struct xarray ref_sync_pins;
struct dpll_pin_properties prop;
refcount_t refcount;
struct ref_tracker_dir refcnt_tracker;
struct rcu_head rcu;
};
look at her. main character energy fr fr π¦
π Members π
okay so let's go field by field, because every single one of these matters and we are NOT skipping any:
idβ the unique id number for the pin, handed to it by the dpll subsystem itself. this is her government name β¨pin_idxβ the index of a pin, and this one's given by the dev driver. so like, the driver's nickname for her π«Άclock_idβ theclock_idof the creator. iykyk βmoduleβ the module of the creator. who made her? this pointer knows πmodule_nameβ the module name of the creator, chillin' in achararray sizedMODULE_NAME_LEN. her full legal name on paper πfwnodeβ an optional reference to the firmware node. optional!! she doesn't always need it, and that's fine, we love a flexible queen πdpll_refsβ holds references to the dplls that this pin was registered with. keeping track of her people πparent_refsβ holds references to the parent pins that this pin was registered with. family tree, but make it kernel π₯ref_sync_pinsβ holds references to pins for the Reference SYNC feature. yes, capital-S SYNC, that's the feature name, respect it πpropβ the pin properties, copied straight from the registerer. so it's astruct dpll_pin_propertiesand it's literally a copy, not a link πΈrefcountβ the refcount. arefcount_t. that's the whole description and honestly? sometimes that's enough πrefcnt_trackerβ theref_trackerdirectory for debugging reference leaks. a whole directory dedicated to catching leaky behaviour. she's in therapy and it's working πrcuβ thercu_headforkfree_rcu. this is how she goes out β gracefully, via RCU. iconic exit π§
π¦ SEE ALSO π¦
go read the kernel file ./drivers/dpll/dpll_core.h, plus her besties struct dpll_device(9) and struct dpll_pin_ref(9). group chat, basically π
bestie reminder: when you're poking at these fields, rememberfwnodeis optional andpropis a copy β pls don't go treating them like something they're not, i'm begging π
okay that's the whole page!! sourced from ./drivers/dpll, dated October 2026 β go off, read the header file, and stan a well-documented struct for me. mwah πβ¨π
π¦ 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