ufshcd_tx_eqtr_iter_init(9)
β¨ ufshcd_tx_eqtr_iter_init β¨
okay bestie, so this is a page from the Kernel API Manual β ufshcd_tx_eqtr_iter_init(9) β and it's genuinely such a vibe. it's all about getting your TX EQTR iterators set up, like laying out your outfit before a big night out π
let's get into it.
π¦ NAME π¦
ufshcd_tx_eqtr_iter_init β initialize host and device TX EQTR iterators. yes, both of them. equal treatment, we love to see it π«Ά
π SYNOPSIS π
int ufshcd_tx_eqtr_iter_init (struct ufs_hba *hba , struct tx_eqtr_iter
*h_iter , struct tx_eqtr_iter *d_iter );
it returns an int, it takes three pointers, and it's ready to slay. periodt.
πΈ ARGUMENTS πΈ
hbaβ per adapter instance π this is your main character struct, the one and only adapter here.h_iterβ host TX EQTR iterator data structure β¨ the host's little iterator home.d_iterβ device TX EQTR iterator data structure π¦ and the device's, matching, iconic.
π DESCRIPTION π
so what does this function actually do? it initializes the TX EQTR iterator structures for both the host and the device by reading their TX equalization capabilities. that's the whole assignment, and it ate. π₯
the capabilities are then cached in the hba structure to avoid redundant DME operations in subsequent calls β like, no cap, nobody wants to keep redoing DME ops for no reason when we can just remember the answer. efficiency queen behavior ππ
and here's the part where the plot thickens, bestie: in the TX EQTR procedure, the iterator structures are updated by tx_eqtr_iter_update to systematically iterate through supported TX Equalization setting combinations. so this init function sets the stage, and tx_eqtr_iter_update takes it from there, walking through all the combos on the list, systematic and methodical π§β
Returns 0 on success, negative error code otherwise. that's the whole exit situation. zero means we're golden π, anything negative means something went sideways and you should probably look at it π.
β SEE ALSO β
okay this list is long β like a group chat roster β so here we go, iykyk:
- Kernel file
./drivers/ufs/core/ufs-txeq.c ufshcd_configure_precoding(9)ufshcd_apply_tx_eq_settings(9)ufshcd_evaluate_tx_eqtr_fom(9)ufshcd_get_rx_fom(9)tx_eqtr_iter_try_update(9)tx_eqtr_iter_update(9)adapt_cap_to_t_adapt(9)adapt_cap_to_t_adapt_l0l3(9)adapt_cap_to_t_adapt_l0l1l2l3(9)ufshcd_setup_tx_eqtr_adapt_length(9)ufshcd_compose_tx_eqtr_setting(9)ufshcd_apply_tx_eqtr_settings(9)ufshcd_update_tx_eq_params(9)__ufshcd_tx_eqtr(9)ufshcd_tx_eqtr_prepare(9)ufshcd_tx_eqtr(9)ufshcd_config_tx_eq_settings(9)ufshcd_apply_valid_tx_eq_settings(9)ufshcd_retrain_tx_eq(9)ufshcd_extract_tx_eq_settings_attrs(9)ufshcd_update_tx_eq_settings_attrs(9)
every single one of these is a whole friend group of its own fr fr π
quick vibe check: all of the above is exactly what the page says β no invented lore, no extra tips, just the facts, dressed up cute π
and that's the page, bestie! π this one lives in ./drivers/ufs/core, it's dated October 2026, and it's part of the Kernel API Manual. go forth and initialize those iterators β you're literally gonna do amazing ππ¦πΈ
π¦ 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