STRUCT FSL_MC_DRIVER(9)
πΈ struct fsl_mc_driver(9) β Kernel API Manual, bestie edition πΈ
okay so this is the page for struct fsl_mc_driver from the Kernel API Manual, and honestly? she's giving structural support, she's giving the blueprint, and she is the whole personality of an MC object device driver object. let's get into it π
β¨ NAME β¨
struct fsl_mc_driver β the MC object device driver object. yeah. that's her. π
π¦ SYNOPSIS π¦
here's the shape of her, no edits, no vibes-based changes, exactly what you're working with:
struct fsl_mc_driver {
struct device_driver driver;
const struct fsl_mc_device_id *match_id_table;
int (*probe)(struct fsl_mc_device *dev);
void (*remove)(struct fsl_mc_device *dev);
void (*shutdown)(struct fsl_mc_device *dev);
int (*suspend)(struct fsl_mc_device *dev, pm_message_t state);
int (*resume)(struct fsl_mc_device *dev);
bool driver_managed_dma;
};
like, she's a struct, she has a bool, she has function pointers β she's literally everything π
π Members π
okay so these are her members and each one is a whole little main character:
driverβ the generic device driver. the foundational one. the base layer. the root of the whole fit β¨match_id_tableβ a table of supported device matching Ids. think of it like her list of who she'll match with β if your device's Id isn't on the list, it's not happening, and that's on periodt πprobeβ function called when a device is added. the "hiii, you're here!!" moment π«Άremoveβ function called when a device is removed. the goodbye callback. she's not crying, you're crying πshutdownβ function called at shutdown time to quiesce the device. the calm-down-and-chill phase before everything powers off πsuspendβ function called when a device is stopped. nap time, but make it kernel-level βresumeβ function called when a device is resumed. she's awake!! she's back!! π₯driver_managed_dmaβ this one's a whole essay so buckle in: it means the device driver doesn't use the kernel DMA API for DMA. for most device drivers, no need to care about this flag as long as all DMAs are handled through the kernel DMA API. for some special ones β for example VFIO drivers β they know how to manage the DMA themselves and set this flag so that the IOMMU layer will allow them to setup and manage their own I/O address space. so like, it's a "i got it, don't worry about me" flag. highkey trust issues in reverse π
π§ Description π§
so what is she? struct fsl_mc_driver is the generic DPAA device driver object for device drivers that are registered with a DPRC bus. and here's the crucial part, bestie, don't miss it: this structure is to be embedded in each device-specific driver structure. like, she's not the whole outfit, she's the base layer you build the outfit on. iykyk β¨
π fr fr, embed her β don't just point at her. that's the whole assignment.
π SEE ALSO π
go read these next, they're all connected and they all ate:
- kernel file
./include/linux/fsl/mc.h enum fsl_mc_pool_type(9)struct fsl_mc_resource(9)struct fsl_mc_device_irq(9)struct fsl_mc_obj_desc(9)struct fsl_mc_device(9)struct fsl_mc_io(9)struct fsl_mc_version(9)struct dpbp_attr(9)struct dpcon_attr(9)struct dpcon_notification_cfg(9)
and that's the page, bestie πΈ kisses from the ./include/linux/fsl directory, dated October 2026, brought to you by the struct fsl_mc_driver(9) girlies. go embed a struct. slay πβ¨π
π¦ 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