STRUCT MHI_CHANNEL_CONFIG(9)
π NAME π
struct mhi_channel_config β the channel configuration structure for a controller, bestie π
(manual page struct mhi_channel_config(9), from the Kernel API Manual, no cap)
β¨ SYNOPSIS β¨
struct mhi_channel_config {
char *name;
u32 num;
u32 num_elements;
u32 local_elements;
u32 event_ring;
enum dma_data_direction dir;
enum mhi_ch_type type;
u32 ee_mask;
u32 pollcfg;
enum mhi_db_brst_mode doorbell;
bool lpm_notify;
bool offload_channel;
bool doorbell_mode_switch;
bool wake_capable;
};
okay so just look at that struct. it's giving "one channel's whole personality in a single C struct" π₯ every field is a lil fact about one channel and her whole situation.
π MEMBERS π
nameβ the name of this channel π·οΈ like her little nametag, iconic.numβ the number assigned to this channel π’ the ID she got handed.num_elementsβ how many elements can be queued to this channel π that's her queue capacity, periodt.local_elementsβ the local ring length of the channel π« how long the local ring is.event_ringβ the event ring index that services this channel π which event ring has her back.dirβ the direction that data may flow on this channel π¦ which way the data's allowed to travel.typeβ the channel type πΈ what kind of channel she is.ee_maskβ the Execution Environment mask for this channel π the EE mask, yep.pollcfgβ the polling configuration for burst mode π₯ and listen:0is the default. For UL channels it's in milliseconds; for DL channels it's a multiple of8ring elements. two units, one field, iykyk.doorbellβ the doorbell mode π which doorbell mode she's on.lpm_notifyβ the channel master requires low power mode notifications π΄ so if this is set, the master needs those LPM notifications.offload_channelβ the client manages the channel completely π«Ά full offload, the client's got it, no hand-holding.doorbell_mode_switchβ the channel switches to doorbell mode on M0 transition π M0 transition = doorbell mode now.wake_capableβ the channel is capable of waking up the system β° she can wake the whole system up, main character energy fr.
π SEE ALSO π
Kernel file ./include/linux/mhi.h, plus literally the entire extended universe π β these are all (9) kernel API pages:
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_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)
ngl bestie, that's the whole page β you read all of it, I'm so proud ππ«Ά go forth and configure channels.
sign-off time β¨ this one lives at ./include/linux, dated October 2026, and it's the struct mhi_channel_config(9) page β mwah, bye ππ
π¦ 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