STRUCT ACPM_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct acpm_info(9) πŸ’–

okay so bestie, we're in the Kernel API Manual today and the star of the show is struct acpm_info(9) β€” literally the main character. it's a struct. it holds stuff. let's go 🫢


✨ NAME ✨

struct acpm_info β€” no cap, this is just the driver's own private data. that's it, that's the vibe. lowkey iconic for how unbothered it is πŸ’…


🌸 SYNOPSIS 🌸

here's the whole thing, character for character, because we do not paraphrase struct definitions in this house:

struct acpm_info {
    struct acpm_shmem __iomem *shmem;
    void __iomem *sram_base;
    struct acpm_chan *chans;
    struct device *dev;
    struct acpm_handle handle;
    u32 num_chans;
 };

πŸ¦‹ Members πŸ¦‹

okay so let's meet the cast, one field at a time 🌈

  • shmem β€” pointer to the SRAM configuration data. like, the actual config lives over there and this just points at it πŸ‘‰
  • sram_base β€” base address of SRAM. the starting coordinates, the origin story ✨
  • chans β€” pointer to the ACPM channel parameters, retrieved from SRAM. so it's not invented here, it was found there, iykyk πŸ”
  • dev β€” pointer to the exynos-acpm device. hi device bestie πŸ‘‹
  • handle β€” an instance of acpm_handle, and it exists to be sent out to clients. it's giving gift-giving energy 🎁
  • num_chans β€” number of channels available for this controller. the headcount, the attendance sheet πŸ“‹

πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file to actually go read is ./drivers/firmware/samsung/exynos-acpm.c, and then there's this whole friend group you should also meet β€” struct acpm_shmem(9), struct acpm_chan_shmem(9), struct acpm_queue(9), struct acpm_rx_data(9), struct acpm_chan(9), struct acpm_match_data(9), acpm_get_saved_rx(9), acpm_get_rx(9), acpm_dequeue_by_polling(9), acpm_wait_for_queue_slots(9), acpm_prepare_xfer(9), acpm_wait_for_message_response(9), acpm_do_xfer(9), acpm_set_xfer(9), acpm_chan_shmem_get_params(9), acpm_achan_alloc_cmds(9), acpm_free_mbox_chans(9), acpm_channels_init(9), acpm_handle_put(9), devm_acpm_release(9), acpm_get_by_node(9), devm_acpm_get_by_node(9), devm_acpm_get_by_phandle(9). that's the whole squad, go say hi fr fr πŸ’œ


bestie heads up: every one of those names is copied exactly, so don't go "fixing" the spelling of acpm_achan_alloc_cmds β€” that's really how it's spelled, don't come for me 😭

and that's the page!! πŸŽ€ it lives under ./drivers/firmware/samsung, dated October 2026, and it's struct acpm_info(9) forever and ever, periodt πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from