STRUCT S3C_FB_VARIANT(9)
πΈ struct s3c_fb_variant(9) πΈ
okay bestie, so this is a page from the Kernel API Manual, and we're talking about struct s3c_fb_variant β literally the vibe sheet for an fb variant. it's giving "here's everything you need to know about this particular screen controller situation" π
β¨ NAME β¨
struct s3c_fb_variant β fb variant information π
β¨ SYNOPSIS β¨
struct s3c_fb_variant {
unsigned int is_2443:1;
unsigned short nr_windows;
unsigned int vidtcon;
unsigned short wincon;
unsigned short winmap;
unsigned short keycon;
unsigned short buf_start;
unsigned short buf_end;
unsigned short buf_size;
unsigned short osd;
unsigned short osd_stride;
unsigned short palette[S3C_FB_MAX_WIN];
unsigned int has_prtcon:1;
unsigned int has_shadowcon:1;
unsigned int has_blendcon:1;
unsigned int has_clksel:1;
unsigned int has_fixvclk:1;
};
no cap, that's the whole shape of it π«Ά
β¨ Members β¨
okay so each of these is a member, and honestly they're all little personality traits of the variant:
is_2443β set if this is S3C2443/S3C2416 style hardware π¦nr_windowsβ the number of windows, bestie. how many we got.vidtconβ the base for theVIDTCONxregisterswinconβ the base for theWINxCONregisters.winmapβ the base for theWINxMAPregisters.keyconβ the abse for theWxKEYCONregisters. (yes, "abse" β that's the original's typo era, we're keeping the info: it's the base π)buf_startβ offset of buffer start registers.buf_endβ offset of buffer end registers.buf_sizeβ offset of buffer size registers.osdβ the base for the OSD registers.osd_strideβ stride of osdpaletteβ address of palette memory, or0if none. π¨ (iconic β zero means nope, no palette)has_prtconβ set if hasPRTCONregister.has_shadowconβ set if hasSHADOWCONregister.has_blendconβ set if hasBLENDCONregister.has_clkselβ set ifVIDCON0register hasCLKSELbit.has_fixvclkβ set ifVIDCON1register hasFIXVCLKbits.
β¨ SEE ALSO β¨
Kernel file ./drivers/video/fbdev/s3c-fb.c π β and literally the whole friend group:
struct s3c_fb_win_variant(9)struct s3c_fb_driverdata(9)struct s3c_fb_palette(9)struct s3c_fb_win(9)struct s3c_fb_vsync(9)struct s3c_fb(9)s3c_fb_validate_win_bpp(9)s3c_fb_check_var(9)s3c_fb_calc_pixclk(9)s3c_fb_align_word(9)vidosd_set_size(9)vidosd_set_alpha(9)shadow_protect_win(9)s3c_fb_enable(9)s3c_fb_set_par(9)s3c_fb_update_palette(9)s3c_fb_setcolreg(9)s3c_fb_blank(9)s3c_fb_pan_display(9)s3c_fb_enable_irq(9)s3c_fb_disable_irq(9)s3c_fb_wait_for_vsync(9)s3c_fb_missing_pixclock(9)s3c_fb_alloc_memory(9)s3c_fb_free_memory(9)s3c_fb_release_win(9)s3c_fb_probe_win(9)s3c_fb_set_rgb_timing(9)s3c_fb_clear_win(9)s3c_fb_remove(9)
bestie reminder:palettebeing0means there's genuinely no palette memory, it's not a "we forgot to fill it in" situation. π«Ά
that's the whole page, mwah π this came from ./drivers/video/fbdev, dated October 2026, and it's still out here living as struct s3c_fb_variant(9) β¨π
π¦ 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