STRUCT PANEL_DESC(9)
πΈ NAME πΈ
struct panel_desc β bestie, it literally describes a simple panel. That's the whole vibe. This is the struct panel_desc(9) page from the Kernel API Manual, and we are getting into it π
β¨
β¨ SYNOPSIS β¨
struct panel_desc {
const struct drm_display_mode *modes;
unsigned int num_modes;
const struct display_timing *timings;
unsigned int num_timings;
unsigned int bpc;
struct {
unsigned int width;
unsigned int height;
} size;
struct {
unsigned int prepare;
unsigned int enable;
unsigned int disable;
unsigned int unprepare;
} delay;
u32 bus_format;
u32 bus_flags;
int connector_type;
};
π«Ά Members π«Ά
okay so hereβs the member-by-member breakdown, and yes, every field is getting its moment π
modesβ pointer to an array of fixed modes that are appropriate for this panel. If thereβs only one mode, then this can just be the address of the mode. NOTE: cannot be used with"timings", and also if this is specified then you cannot override the mode in the device tree.num_modesβ the number of elements in themodesarray. Counting era π’timingsβ pointer to an array of display timings. NOTE: cannot be used with"modes", and also these will be used to validate a device tree override if one is present.num_timingsβ the number of elements in thetimingsarray. Again: counting β¨bpcβ bits per color. slay.sizeβ structure containing the physical size of this panel.size.widthβ width (in mm) of the active display area.size.heightβ height (in mm) of the active display area.
delayβ structure containing various delay values for this panel.delay.prepareβ time for the panel to become ready. The time (in milliseconds) that it takes for the panel to become ready and start receiving video data.delay.enableβ time for the panel to display a valid frame. The time (in milliseconds) that it takes for the panel to display the first valid frame after starting to receive video data.delay.disableβ time for the panel to turn the display off. The time (in milliseconds) that it takes for the panel to turn the display off (no content is visible).delay.unprepareβ time to power down completely. The time (in milliseconds) that it takes for the panel to power itself down completely.
This time is used to prevent a future "prepare" from starting until at least this many milliseconds has passed. If at prepare time less time has passed since unprepare finished, the driver waits for the remaining time.
bus_formatβ seeMEDIA_BUS_FMT_...defines. iykyk.bus_flagsβ seeDRM_BUS_FLAG_...defines. also iykyk.connector_typeβ LVDS, eDP, DSI, DPI, etc. the connectorβs whole personality π«
π SEE ALSO π
Kernel file ./drivers/gpu/drm/panel/panel-simple.c β go read it, bestie, itβs right there ππ
mwah π signing off from ./drivers/gpu/drm/panel, dated October 2026, for struct panel_desc(9) β periodt πβ¨
π¦ 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