STRUCT TX_EQTR_ITER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct tx_eqtr_iter(9) β€” like, the TX Equalization Training iterator, bestie

okay so this is a page from the Kernel API Manual, section 9 (kernel routines, iykyk), and it's all about struct tx_eqtr_iter β€” the TX Equalization Training iterator ✨ no cap, that's literally what it is.


✨ NAME ✨

struct tx_eqtr_iter β€” the TX Equalization Training iterator πŸŽ€

She's a struct. She iterates. She trains your TX equalization. Main character energy fr.


🌸 SYNOPSIS 🌸

struct tx_eqtr_iter {
    unsigned long preshoot_bitmap;
    unsigned long deemphasis_bitmap;
    u8 preshoot;
    u8 deemphasis;
    u8 fom[UFS_MAX_LANES];
    bool is_updated;
 };

yes bestie, that's the whole shape of her β€” copy it exactly, don't be weird about it 🫢


πŸ¦‹ MEMBERS πŸ¦‹

okay so let's go member by member, because each one is doing her own little job and we respect her for it πŸ’–

  • preshoot_bitmap β€” the PreShoot bitmap ✨ it's an unsigned long, it's a bitmap, it's about preshoot. That's the vibe.
  • deemphasis_bitmap β€” the DeEmphasis bitmap 🌈 again an unsigned long, again a bitmap, this time for deemphasis. Twin energy with the one above ngl.
  • preshoot β€” the PreShoot value itself πŸ’… a u8, the actual number, not the bitmap. Don't confuse her with preshoot_bitmap, they're different girls.
  • deemphasis β€” the DeEmphasis value, same deal πŸ”₯ a u8 holding the real value while deemphasis_bitmap holds the bitmap. Periodt.
  • fom β€” Figure-of-Merit read out from RX_FOM πŸ‘‘ it's a u8 array sized UFS_MAX_LANES, so one FOM per lane, slay.
  • is_updated β€” a bool flag that tells you if it's been updated since the previous iteration ⭐ literally just "did something change since last time", iconic.
πŸ’€ tiny reminder bestie: preshoot_bitmap / deemphasis_bitmap are the bitmaps, and preshoot / deemphasis are the values. Keep them straight and you'll be fine.

πŸ’œ SEE ALSO πŸ’œ

so if you wanna go deeper (and you know you do 😭), check out the kernel file ./include/ufs/ufshcd.h β€” that's where all her friends live 🧚

  • struct uic_command(9)
  • struct ufshcd_lrb(9)
  • struct ufs_query_req(9)
  • struct ufs_query_res(9)
  • struct ufs_query(9)
  • struct ufs_dev_cmd(9)
  • struct ufs_clk_info(9)
  • struct ufshcd_tx_eq_settings(9)
  • struct ufshcd_tx_eqtr_data(9)
  • struct ufshcd_tx_eqtr_record(9)
  • struct ufshcd_tx_eq_params(9)
  • struct ufs_hba_variant_ops(9)
  • struct ufs_clk_gating(9)
  • struct ufs_clk_scaling(9)
  • struct ufs_event_hist(9)
  • struct ufs_stats(9)
  • enum ufshcd_state(9)
  • enum ufshcd_pmc_policy(9)
  • struct ufshcd_mcq_opr_info_t(9)
  • struct ufs_hba(9)
  • struct ufs_hw_queue(9)
  • ufshcd_rmwl(9)
  • ufshcd_set_variant(9)
  • ufshcd_get_variant(9)

like, the whole ufs friend group showed up to the party πŸŽ€ and honestly? obsessed.


and that's the page!! πŸ’– sourced from ./include/ufs, dated October 2026, in true struct tx_eqtr_iter(9) fashion β€” love her, read her, iterate responsibly βœ¨πŸ¦‹πŸ’…

πŸ“¦ where this page comes from