STRUCT SVS_BANK_PDATA(9)
π struct svs_bank_pdata β SVS Bank immutable config parameters π
okay so welcome to the Kernel API Manual, section 9 bestie β this is the page for struct svs_bank_pdata, aka the immutable config parameters for an SVS Bank. "Immutable" meaning you set these up and then leave them alone, no cap. Let's get into it β¨
πΈ SYNOPSIS πΈ
struct svs_bank_pdata {
const struct svs_fusemap *dev_fuse_map;
char *buck_name;
char *tzone_name;
u32 age_config;
u32 ctl0;
u32 dc_config;
u32 int_st;
u32 turn_freq_base;
u32 tzone_htemp;
u32 tzone_ltemp;
u32 volt_step;
u32 volt_base;
u16 tzone_htemp_voffset;
u16 tzone_ltemp_voffset;
u8 chk_shift;
u8 cpu_id;
u8 opp_count;
u8 vboot;
u8 vco;
u8 sw_id;
u8 type;
void (*set_freq_pct)(struct svs_platform *svsp, struct svs_bank
*svsb);
void (*get_volts)(struct svs_platform *svsp, struct svs_bank *svsb);
};
like look at all those fields. it's giving organized. it's giving I know exactly what I am. we stan a well-structured struct π«Ά
β¨ Members β¨
dev_fuse_mapβ the bank's fuse map data. the origin lore, the blueprint, the fuse map πbuck_nameβ the regulator name. what the regulator is called, iykyk.tzone_nameβ the thermal zone name. yes it has a name, and yes it's iconic.age_configβ the bank's age configuration. the bank is aging gracefully, periodt.ctl0β TS-x selection. that's the whole description, bestie, don't @ me.dc_configβ the bank's dc configuration.int_stβ the bank's interrupt identification. so you know which interrupt it is π₯turn_freq_baseβ the reference frequency for the 2-line turn point. this one's a base, it's the reference, it's doing main character energy.tzone_htempβ the thermal zone high temperature threshold. HOT π₯tzone_ltempβ the thermal zone low temperature threshold. and then... not hot πvolt_stepβ the bank's voltage step.volt_baseβ the bank's voltage base.tzone_htemp_voffsetβ the thermal zone high temperature voltage offset.tzone_ltemp_voffsetβ the thermal zone low temperature voltage offset. matching set, we love symmetry πchk_shiftβ the bank's chicken shift. no I'm not making that up, that's literally what it's called, and honestly? iconic πcpu_idβ the CPU core ID, for SVS CPU bank use only. read the fine print bestie, only πopp_countβ the bank's opp count.vbootβ the voltage request for bankinit01only. again: ONLY. πvcoβ the bank's VCO value.sw_idβ the bank's software identification.typeβ the SVS Bank Type (1 or 2-line) and Role (high/low). so many layers, so much range πset_freq_pctβ function pointer to set bank frequency percent table. it's a pointer, it's a function, it sets the table, it slays.get_voltsβ function pointer to get bank voltages. the getter to the other one's setter, we love a duo π«Ά
π SEE ALSO π
go read these next, bestie, they're all in the Kernel file ./drivers/soc/mediatek/mtk-svs.c and they're literally the whole friend group:
enum svsb_sw_id(9)enum svsb_type(9)enum svsb_phase(9)struct svs_platform(9)struct svs_bank(9)
that's the whole page! no notes, she ate π
this lil slice of the Kernel API Manual lives over in ./drivers/soc/mediatek, and it was dated October 2026 β so yeah, future iconic behavior β bye bestie, go configure a bank responsibly π¦
π¦ 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