STRUCT MHI_LINK_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so bestie, welcome to the Kernel API Manual page for struct mhi_link_info β€” she's a tiny little struct with main character energy and one (1) job: telling everyone what the bandwidth requirement is. no cap. πŸ’…


✨ NAME ✨

struct mhi_link_info β€” BW requirement πŸŽ€

Like, literally just the bandwidth requirement. that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct mhi_link_info {
    unsigned int target_link_speed;
    unsigned int target_link_width;
};

two unsigned ints, that's it, she's lowkey minimal and we respect it 🫢


πŸ’– Members πŸ’–

  • target_link_speed β€” the link speed, and it's defined by the TLS bits in the LinkControl reg, iykyk. it's giving "read the register bestie". πŸ”₯
  • target_link_width β€” the link width, defined by the NLW bits in the LinkStatus reg. yes the Status reg, not the Control one β€” don't mix them up, that's a vibe check you do NOT want to fail πŸ’€

🧚 SEE ALSO 🧚

so there's a whole squad and honestly? iconic. the kernel file is ./include/linux/mhi.h and she rolls with:

enum mhi_callback(9), enum mhi_flags(9), enum mhi_device_type(9), enum mhi_ch_type(9), struct mhi_buf(9), struct image_info(9), enum mhi_ee_type(9), enum mhi_state(9), enum mhi_ch_ee_mask(9), enum mhi_er_data_type(9), enum mhi_db_brst_mode(9), struct mhi_channel_config(9), struct mhi_event_config(9), struct mhi_controller_config(9), struct mhi_controller(9), struct mhi_device(9), struct mhi_result(9), struct mhi_driver(9), mhi_alloc_controller(9), mhi_free_controller(9), mhi_register_controller(9), mhi_unregister_controller(9), __mhi_driver_register(9), mhi_driver_unregister(9), mhi_set_mhi_state(9), mhi_notify(9), mhi_get_free_desc_count(9), mhi_prepare_for_power_up(9), mhi_async_power_up(9), mhi_sync_power_up(9), mhi_power_down(9), mhi_power_down_keep_dev(9), mhi_unprepare_after_power_down(9), mhi_pm_suspend(9), mhi_pm_resume(9), mhi_pm_resume_force(9), mhi_download_rddm_image(9), mhi_force_rddm_mode(9), mhi_get_exec_env(9), mhi_get_mhi_state(9), mhi_soc_reset(9), mhi_device_get_sync(9), mhi_device_put(9), mhi_prepare_for_transfer(9), mhi_unprepare_from_transfer(9), mhi_queue_buf(9), mhi_queue_skb(9), mhi_queue_is_full(9), mhi_get_channel_doorbell_offset(9)

that's the whole group chat, bestie. say hi to all 49 of them or whatever πŸ’œ


ngl this one's a short read β€” no scary warnings, no deprecated nonsense, no undefined behaviour lurking in the shadows. just two fields and a dream. 🌈

and that's the page!! ✨ shoutout to ./include/linux, dated October 2026, and the manual itself is struct mhi_link_info(9) β€” mwah, periodt. πŸ’‹πŸŽ€

πŸ“¦ where this page comes from