ENUM DRM_MODE_STATUS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 enum drm_mode_status β€” the vibe check for your modes 🌸

okay so this is enum drm_mode_status from the Kernel API Manual, and honestly bestie, it's giving "the most useful little enum you'll ever meet." It tells you the hardware support status of a mode β€” like, is this display mode actually gonna slay on your hardware, or is it gonna flop? πŸ’…


✨ SYNOPSIS ✨

enum drm_mode_status {
    MODE_OK ,
    MODE_HSYNC ,
    MODE_VSYNC ,
    MODE_H_ILLEGAL ,
    MODE_V_ILLEGAL ,
    MODE_BAD_WIDTH ,
    MODE_NOMODE ,
    MODE_NO_INTERLACE ,
    MODE_NO_DBLESCAN ,
    MODE_NO_VSCAN ,
    MODE_MEM ,
    MODE_VIRTUAL_X ,
    MODE_VIRTUAL_Y ,
    MODE_MEM_VIRT ,
    MODE_NOCLOCK ,
    MODE_CLOCK_HIGH ,
    MODE_CLOCK_LOW ,
    MODE_CLOCK_RANGE ,
    MODE_BAD_HVALUE ,
    MODE_BAD_VVALUE ,
    MODE_BAD_VSCAN ,
    MODE_HSYNC_NARROW ,
    MODE_HSYNC_WIDE ,
    MODE_HBLANK_NARROW ,
    MODE_HBLANK_WIDE ,
    MODE_VSYNC_NARROW ,
    MODE_VSYNC_WIDE ,
    MODE_VBLANK_NARROW ,
    MODE_VBLANK_WIDE ,
    MODE_PANEL ,
    MODE_INTERLACE_WIDTH ,
    MODE_ONE_WIDTH ,
    MODE_ONE_HEIGHT ,
    MODE_ONE_SIZE ,
    MODE_NO_REDUCED ,
    MODE_NO_STEREO ,
    MODE_NO_420 ,
    MODE_STALE ,
    MODE_BAD ,
    MODE_ERROR

};

That's a whole lotta constants, and every single one is a different flavor of "nope" (except MODE_OK, which is the main character 🫢). Here's the full roster, no skips:

πŸŽ€ Constants πŸŽ€

  • MODE_OK β€” Mode OK. literally the only one that's good news, we stan πŸ’–
  • MODE_HSYNC β€” hsync out of range
  • MODE_VSYNC β€” vsync out of range
  • MODE_H_ILLEGAL β€” mode has illegal horizontal timings πŸ™ˆ
  • MODE_V_ILLEGAL β€” mode has illegal vertical timings
  • MODE_BAD_WIDTH β€” requires an unsupported linepitch
  • MODE_NOMODE β€” no mode with a matching name (bestie... it's not here 😭)
  • MODE_NO_INTERLACE β€” interlaced mode not supported
  • MODE_NO_DBLESCAN β€” doublescan mode not supported
  • MODE_NO_VSCAN β€” multiscan mode not supported
  • MODE_MEM β€” insufficient video memory
  • MODE_VIRTUAL_X β€” mode width too large for specified virtual size
  • MODE_VIRTUAL_Y β€” mode height too large for specified virtual size
  • MODE_MEM_VIRT β€” insufficient video memory given virtual size
  • MODE_NOCLOCK β€” no fixed clock available
  • MODE_CLOCK_HIGH β€” clock required is too high πŸ”₯ (in a bad way)
  • MODE_CLOCK_LOW β€” clock required is too low
  • MODE_CLOCK_RANGE β€” clock/mode isn't in a ClockRange
  • MODE_BAD_HVALUE β€” horizontal timing was out of range
  • MODE_BAD_VVALUE β€” vertical timing was out of range
  • MODE_BAD_VSCAN β€” VScan value out of range
  • MODE_HSYNC_NARROW β€” horizontal sync too narrow
  • MODE_HSYNC_WIDE β€” horizontal sync too wide
  • MODE_HBLANK_NARROW β€” horizontal blanking too narrow
  • MODE_HBLANK_WIDE β€” horizontal blanking too wide
  • MODE_VSYNC_NARROW β€” vertical sync too narrow
  • MODE_VSYNC_WIDE β€” vertical sync too wide
  • MODE_VBLANK_NARROW β€” vertical blanking too narrow
  • MODE_VBLANK_WIDE β€” vertical blanking too wide
  • MODE_PANEL β€” exceeds panel dimensions
  • MODE_INTERLACE_WIDTH β€” width too large for interlaced mode
  • MODE_ONE_WIDTH β€” only one width is supported
  • MODE_ONE_HEIGHT β€” only one height is supported
  • MODE_ONE_SIZE β€” only one resolution is supported
  • MODE_NO_REDUCED β€” monitor doesn't accept reduced blanking
  • MODE_NO_STEREO β€” stereo modes not supported
  • MODE_NO_420 β€” ycbcr 420 modes not supported
  • MODE_STALE β€” mode has become stale πŸ“ (it's giving expired)
  • MODE_BAD β€” unspecified reason
  • MODE_ERROR β€” error condition πŸ’€

πŸ¦‹ Description πŸ¦‹

So like, what's this enum for? It's the filter. This enum is used to filter out modes not supported by the driver/hardware combination. That's it, that's the whole gig β€” it's the bouncer at the club checking IDs, except the ID is a display mode and the club is your GPU. ngl it's iconic πŸ‘‘


🌈 SEE ALSO 🌈

Go read these next, iykyk β€” Kernel file ./include/drm/drm_modes.h, DRM_MODE_RES_MM(9), DRM_MODE_INIT(9), DRM_SIMPLE_MODE(9), struct drm_display_mode(9), DRM_MODE_FMT(9), DRM_MODE_ARG(9), drm_mode_is_stereo(9) ✨


fr fr, keep this enum close β€” it's your mode's vibe check and it does not miss πŸ’…

okay bye bestie, this came from ./include/drm, dated October 2026, and it's the enum drm_mode_status(9) page β€” mwah 😘 πŸŽ€

πŸ“¦ where this page comes from