STRUCT MLXREG_CORE_HOTPLUG_PLATFORM_DATA(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’… struct mlxreg_core_hotplug_platform_data(9) โ€” the Kernel API Manual glow-up โœจ

okay so bestie, welcome to the Kernel API Manual โ€” yes that's the manual we're in, and today's main character is struct mlxreg_core_hotplug_platform_data, aka hotplug platform data ๐Ÿซถ. It's a struct, it holds platform data, and it's giving "I know where all the hotplug components live" energy. Let's get into it ๐Ÿ’–


โœจ NAME โœจ

struct mlxreg_core_hotplug_platform_data โ€” hotplug platform data: literally that, no cap ๐Ÿ’…


๐ŸŒธ SYNOPSIS ๐ŸŒธ

here's the whole struct, character for character, do not touch, we respect the source ๐Ÿ™

struct mlxreg_core_hotplug_platform_data {
    struct mlxreg_core_item *items;
    int irq;
    void *regmap;
    int count;
    u32 cell;
    u32 mask;
    u32 cell_low;
    u32 mask_low;
    int deferred_nr;
    int shift_nr;
    void __iomem *addr;
    void *handle;
    int (*completion_notify)(void *handle, int id);
 };

๐ŸŽ€ Members ๐ŸŽ€

every single one of them, in order, because we do not skip ๐Ÿ“

  • items โ€” the same-type components that have the hotplug capability. like, the whole squad that can hotplug โœจ
  • irq โ€” the platform interrupt number. it's the number ๐Ÿ”ฅ
  • regmap โ€” the register map of the parent device, lowkey essential ๐Ÿ’œ
  • count โ€” how many components have the hotplug capability. the headcount, basically ๐Ÿงš
  • cell โ€” where the top aggregation interrupt register lives ๐Ÿ“
  • mask โ€” the top aggregation interrupt common mask. masky masky ๐ŸŒˆ
  • cell_low โ€” where the low aggregation interrupt register lives ๐Ÿ“ (but low)
  • mask_low โ€” the low aggregation interrupt common mask ๐Ÿ’ซ
  • deferred_nr โ€” the I2C adapter number must exist prior to probing execution. it's giving "I need you to exist first", non-negotiable ๐Ÿซถ
  • shift_nr โ€” the I2C adapter numbers must be incremented by this value. math but make it kernel ๐Ÿงฎ
  • addr โ€” the mapped resource address ๐Ÿ—บ๏ธ
  • handle โ€” the handle that gets passed by the callback. yes, that handle ๐Ÿ’…
  • completion_notify โ€” a callback to notify when platform driver probing is done ๐ŸŽ‰ it's literally int (*completion_notify)(void *handle, int id), so it takes a void *handle and an int id, and it returns an int. icon behaviour ๐Ÿ‘‘

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

the whole friend group, no member left behind ๐Ÿ’–

Kernel file ./include/linux/platform_data/mlxreg.h

  • enum mlxreg_wdt_type(9)
  • enum mlxreg_hotplug_kind(9)
  • enum mlxreg_hotplug_device_action(9)
  • struct mlxreg_core_hotplug_notifier(9)
  • struct mlxreg_hotplug_device(9)
  • struct mlxreg_core_data(9)
  • struct mlxreg_core_item(9)
  • struct mlxreg_core_platform_data(9)

bestie reminder: the I2C adapter number in deferred_nr has to already exist before probing runs โ€” this isn't a vibe suggestion, it's in the docs ๐Ÿ™ˆ

okay that's the whole page, you ate that ๐Ÿ’…โœจ โ€” this masterpiece lives in ./include/linux/platform_data and it's dated October 2026, so yeah, ahead of its time fr fr ๐Ÿฆ‹๐Ÿ‘‘๐Ÿ’–

๐Ÿ“ฆ where this page comes from