STRUCT MBOX_CONTROLLER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct mbox_controller β€” Controller of a class of communication channels. Okay bestie, welcome to the mbox_controller(9) page in the Kernel API Manual β€” this is the struct that runs the whole communication-channel controller vibe. ✨

πŸ“œ SYNOPSIS πŸ“œ

       struct mbox_controller {
           struct device *dev;
           const struct mbox_chan_ops *ops;
           struct mbox_chan *chans;
           int num_chans;
           bool txdone_irq;
           bool txdone_poll;
           unsigned txpoll_period;
           struct mbox_chan *(*fw_xlate)(struct mbox_controller *mbox, const
       struct fwnode_reference_args *sp);
           struct mbox_chan *(*of_xlate)(struct mbox_controller *mbox, const
       struct of_phandle_args *sp);
           struct hrtimer poll_hrt;
           spinlock_t poll_hrt_lock;
           struct list_head node;
        };

🌸 Members 🌸

  • dev β€” Device backing this controller. Required. No skips, bestie.
  • ops β€” Operators that work on each communication chan. Required. This is the ops crew.
  • chans β€” Array of channels. Required. The whole lineup.
  • num_chans β€” Number of channels in the chans array. Required. Count them, don’t guess.
  • txdone_irq β€” Indicates if the controller can report to the API when the last transmitted data was read by the remote. e.g. if it has some TX ACK irq. πŸ‘€
  • txdone_poll β€” If the controller can read but not report the TX done. Ex, some register shows the TX status but no interrupt rises. Ignored if txdone_irq is set. 🚨
  • txpoll_period β€” If txdone_poll is in effect, the API polls for last TX’s status after these many millisecs. ⏱️
  • fw_xlate β€” Controller driver specific mapping of channel via fwnode. 🧚
  • of_xlate β€” Controller driver specific mapping of channel via DT. πŸ¦‹
  • poll_hrt β€” API private. hrtimer used to poll for TXDONE on all channels. 🀫
  • poll_hrt_lock β€” API private. Lock protecting access to poll_hrt. πŸ”’
  • node β€” API private. To hook into list of controllers. πŸͺ

πŸ”— SEE ALSO πŸ”—

  • Kernel file ./include/linux/mailbox_controller.h struct mbox_chan_ops(9), struct mbox_chan(9)

Okay bye bestie! This little page is from ./include/linux, dated October 2026, and it’s struct mbox_controller(9) β€” mwah, slay, and happy hacking πŸ’‹βœ¨

πŸ“¦ where this page comes from