STRUCT LLCC_DRV_DATA(9)
π struct llcc_drv_data(9) β like, the Kernel API Manual, bestie π
Okay so this is the manual page for struct llcc_drv_data(9), and yes we're doing this, we're learning the LLCC driver today and honestly? It's giving main character energy. Let's go. β¨
πΈ NAME πΈ
struct llcc_drv_data β literally all the data that's associated with the LLCC driver, no cap. That's the whole vibe. π
π¦ SYNOPSIS π¦
Like, here's the struct in all its glory, copy-pasted from the source with love:
struct llcc_drv_data {
struct device *dev;
struct regmap **regmaps;
struct regmap *bcast_regmap;
struct regmap *bcast_and_regmap;
const struct llcc_slice_config *cfg;
const struct llcc_edac_reg_offset *edac_reg_offset;
struct mutex lock;
u32 cfg_size;
u32 num_banks;
int ecc_irq;
bool ecc_irq_configured;
u32 version;
struct llcc_slice_desc *desc;
};
Not me obsessing over every single field, but like, we're gonna go through them all because that's just who I am. π«Ά
π MEMBERS π
devβ the device back-pointer for this LLCC instance. It's lowkey the parent of the whole situation, y'know? π«regmapsβ the regmaps that are associated with the LLCC device. Plural! Multiple! Iconic. π₯bcast_regmapβ the regmap associated with the LLCC broadcast OR offset. Different regmap from the next one, don't get it twisted bestie.bcast_and_regmapβ the regmap associated with the LLCC broadcast AND offset. And!! Not or!! Yes the naming is doing the most but we respect it. πcfgβ a pointer to the data structure for slice configuration. Like, it knows where the config lives. It's giving directory energy. ποΈedac_reg_offsetβ the offset of the LLCC EDAC registers. Just the offset, just the vibes. π―lockβ the mutex associated with each slice. Mutual exclusion, but make it per-slice, periodt. πcfg_sizeβ the size of the config data table. Au32, so like, big enough. π«num_banksβ the number of LLCC banks. Also au32. Count 'em. π¦ecc_irqβ the interrupt for LLCC cache error detection and reporting. It's anint, it's an IRQ, it's doing important stuff. β‘ecc_irq_configuredβ okay so the original manpage genuinely gives us no description here π it's abool, it's right afterecc_irq, and it's giving mystery-girl. We do not invent lore in this house, so: no description in the source, none from me. πversionβ indicates the LLCC version. Short, sweet, au32, slays. π₯descβ an array pointer of pre-allocated LLCC slice descriptors. Pre-allocated!! It's organized, it's prepared, it's ahead of schedule. π
π SEE ALSO π
Like, go read the kernel file ./include/linux/soc/qcom/llcc-qcom.h for real, and also these lovely friends:
struct llcc_slice_desc(9)struct llcc_edac_reg_data(9)llcc_slice_getd(9)llcc_slice_putd(9)llcc_get_slice_id(9)llcc_get_slice_size(9)llcc_slice_activate(9)llcc_slice_deactivate(9)
iykyk. Go click through the whole friend group, they're all bangers. π§ββοΈ
Fr fr though: if you're poking at ecc_irq_configured and expecting documentation, the page doesn't give you any β that's not me being lazy, that's the source being mysterious. π
Okay bestie that's the whole page, you ate that, we both ate that. π This came from ./include/linux/soc/qcom, dated October 2026, and it's serving struct llcc_drv_data(9) realness from the Kernel API Manual. Now go forth and read the source, mwah! πβ¨ππ¦
π¦ 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