STRUCT MHI_CONTROLLER_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct mhi_controller_config(9) πŸŽ€

okay bestie, welcome to the Kernel API Manual β€” this page is literally about the root MHI controller configuration struct, and we're gonna go through every field like it's the group chat receipts. no cap πŸ’…

✨ NAME ✨

struct mhi_controller_config β€” Root MHI controller configuration. that's the name, iconic and to the point 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

here's the struct in all its exact, do-not-touch-a-single-character glory:

struct mhi_controller_config {
    u32 max_channels;
    u32 timeout_ms;
    u32 ready_timeout_ms;
    u32 buf_len;
    u32 num_channels;
    const struct mhi_channel_config *ch_cfg;
    u32 num_events;
    struct mhi_event_config *event_cfg;
    bool use_bounce_buf;
    bool m2_no_db;
};

πŸ‘‘ Members πŸ‘‘

okay so every member has a job, and we are not skipping any of them:

  • max_channels β€” Maximum number of channels supported. that's the ceiling, bestie.
  • timeout_ms β€” Timeout value for operations. 0 means use default. yes, zero is the "just use the vibes default" signal ✨
  • ready_timeout_ms β€” Timeout value for waiting device to be ready (optional). optional but very much noticed πŸ‘€
  • buf_len β€” Size of automatically allocated buffers. 0 means use default. again, zero = default mode πŸŽ€
  • num_channels β€” Number of channels defined in ch_cfg. it's giving "count your blessings, but specifically your channels."
  • ch_cfg β€” Array of defined channels. the actual channel lineup, slay.
  • num_events β€” Number of event rings defined in event_cfg. event-ring headcount, periodt.
  • event_cfg β€” Array of defined event rings. the event-ring roster, iconic.
  • use_bounce_buf β€” Use a bounce buffer pool due to limited DDR access. practical, necessary, lowkey essential πŸ’…
  • m2_no_db β€” Host is not allowed to ring DB in M2 state. that's a hard no on DB-ringing in M2, no cap.

🌈 SEE ALSO 🌈

bestie, the whole extended universe is here. first the kernel file: ./include/linux/mhi.h, then the full squad in original order: 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), struct mhi_link_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(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).


mwah πŸ’‹ this page lives in ./include/linux, dated October 2026, and it's the struct mhi_controller_config(9) page from the Kernel API Manual. bye bestie, go configure something iconic 🫢✨

πŸ“¦ where this page comes from