Skip to content

Instantly share code, notes, and snippets.

@sigmaris
Created June 4, 2019 22:42
Show Gist options
  • Save sigmaris/54bc5702dc9219bce367838e7cfac562 to your computer and use it in GitHub Desktop.
Save sigmaris/54bc5702dc9219bce367838e7cfac562 to your computer and use it in GitHub Desktop.
drm_info from Rockpro64 on mainline Linux kernel
./drm_info /dev/dri/card0
Node: /dev/dri/card0
β”œβ”€β”€β”€Driver: rockchip (RockChip Soc DRM) version 1.0.0 (20140818)
β”‚ β”œβ”€β”€β”€DRM_CLIENT_CAP_STEREO_3D supported
β”‚ β”œβ”€β”€β”€DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
β”‚ β”œβ”€β”€β”€DRM_CLIENT_CAP_ATOMIC supported
β”‚ β”œβ”€β”€β”€DRM_CLIENT_CAP_ASPECT_RATIO supported
β”‚ β”œβ”€β”€β”€DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
β”‚ β”œβ”€β”€β”€DRM_CAP_DUMB_BUFFER = 1
β”‚ β”œβ”€β”€β”€DRM_CAP_VBLANK_HIGH_CRTC = 1
β”‚ β”œβ”€β”€β”€DRM_CAP_DUMB_PREFERRED_DEPTH = 0
β”‚ β”œβ”€β”€β”€DRM_CAP_DUMB_PREFER_SHADOW = 0
β”‚ β”œβ”€β”€β”€DRM_CAP_PRIME = 3
β”‚ β”œβ”€β”€β”€DRM_CAP_TIMESTAMP_MONOTONIC = 1
β”‚ β”œβ”€β”€β”€DRM_CAP_ASYNC_PAGE_FLIP = 0
β”‚ β”œβ”€β”€β”€DRM_CAP_CURSOR_WIDTH = 64
β”‚ β”œβ”€β”€β”€DRM_CAP_CURSOR_HEIGHT = 64
β”‚ β”œβ”€β”€β”€DRM_CAP_ADDFB2_MODIFIERS = 0
β”‚ β”œβ”€β”€β”€DRM_CAP_PAGE_FLIP_TARGET = 0
β”‚ β”œβ”€β”€β”€DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
β”‚ └───DRM_CAP_SYNCOBJ = 0
β”œβ”€β”€β”€Device: platform rockchip,display-subsystem
β”œβ”€β”€β”€Connectors
β”‚ └───Connector 0
β”‚ β”œβ”€β”€β”€Object ID: 45
β”‚ β”œβ”€β”€β”€Type: HDMI-A
β”‚ β”œβ”€β”€β”€Status: connected
β”‚ β”œβ”€β”€β”€Physical size: 520x320 mm
β”‚ β”œβ”€β”€β”€Subpixel: unknown
β”‚ β”œβ”€β”€β”€Encoders: {0}
β”‚ β”œβ”€β”€β”€Modes
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync interlace
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync interlace 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync interlace 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver nhsync nvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver phsync pvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver nhsync nvsync 16:9
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver nhsync nvsync 4:3
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver nhsync nvsync
β”‚ β”‚ β”œβ”€β”€β”€[email protected] driver nhsync nvsync 16:9
β”‚ β”‚ └───[email protected] driver nhsync nvsync 4:3
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"EDID" (immutable): blob = 46
β”‚ β”œβ”€β”€β”€"DPMS": enum {On, Standby, Suspend, Off} = On
β”‚ β”œβ”€β”€β”€"link-status": enum {Good, Bad} = Good
β”‚ β”œβ”€β”€β”€"non-desktop" (immutable): range [0, 1] = 0
β”‚ β”œβ”€β”€β”€"TILE" (immutable): blob = 0
β”‚ └───"CRTC_ID" (atomic): object CRTC = 34
β”œβ”€β”€β”€Encoders
β”‚ └───Encoder 0
β”‚ β”œβ”€β”€β”€Object ID: 44
β”‚ β”œβ”€β”€β”€Type: TMDS
β”‚ β”œβ”€β”€β”€CRTCS: {0, 1}
β”‚ └───Clones: {}
β”œβ”€β”€β”€CRTCs
β”‚ β”œβ”€β”€β”€CRTC 0
β”‚ β”‚ β”œβ”€β”€β”€Object ID: 34
β”‚ β”‚ └───Properties
β”‚ β”‚ β”œβ”€β”€β”€"ACTIVE" (atomic): range [0, 1] = 1
β”‚ β”‚ β”œβ”€β”€β”€"MODE_ID" (atomic): blob = 48
β”‚ β”‚ β”‚ └───[email protected] driver phsync pvsync
β”‚ β”‚ β”œβ”€β”€β”€"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
β”‚ β”‚ └───"VRR_ENABLED": range [0, 1] = 0
β”‚ └───CRTC 1
β”‚ β”œβ”€β”€β”€Object ID: 39
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"ACTIVE" (atomic): range [0, 1] = 0
β”‚ β”œβ”€β”€β”€"MODE_ID" (atomic): blob = 0
β”‚ β”œβ”€β”€β”€"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
β”‚ └───"VRR_ENABLED": range [0, 1] = 0
└───Planes
β”œβ”€β”€β”€Plane 0
β”‚ β”œβ”€β”€β”€Object ID: 30
β”‚ β”œβ”€β”€β”€CRTCs: {0}
β”‚ β”œβ”€β”€β”€Formats:
β”‚ β”‚ β”œβ”€β”€β”€XRGB8888 (0x34325258)
β”‚ β”‚ β”œβ”€β”€β”€ARGB8888 (0x34325241)
β”‚ β”‚ β”œβ”€β”€β”€XBGR8888 (0x34324258)
β”‚ β”‚ β”œβ”€β”€β”€ABGR8888 (0x34324241)
β”‚ β”‚ β”œβ”€β”€β”€RGB888 (0x34324752)
β”‚ β”‚ β”œβ”€β”€β”€BGR888 (0x34324742)
β”‚ β”‚ β”œβ”€β”€β”€RGB565 (0x36314752)
β”‚ β”‚ β”œβ”€β”€β”€BGR565 (0x36314742)
β”‚ β”‚ β”œβ”€β”€β”€NV12 (0x3231564e)
β”‚ β”‚ β”œβ”€β”€β”€NV16 (0x3631564e)
β”‚ β”‚ └───NV24 (0x3432564e)
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
β”‚ β”œβ”€β”€β”€"FB_ID" (atomic): object framebuffer = 47
β”‚ β”œβ”€β”€β”€"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
β”‚ β”œβ”€β”€β”€"CRTC_ID" (atomic): object CRTC = 34
β”‚ β”œβ”€β”€β”€"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_W" (atomic): range [0, INT32_MAX] = 1920
β”‚ β”œβ”€β”€β”€"CRTC_H" (atomic): range [0, INT32_MAX] = 1080
β”‚ β”œβ”€β”€β”€"SRC_X" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_W" (atomic): range [0, UINT32_MAX] = 1920
β”‚ β”œβ”€β”€β”€"SRC_H" (atomic): range [0, UINT32_MAX] = 1080
β”‚ └───"rotation": bitmask {rotate-0, reflect-x, reflect-y} = (rotate-0)
β”œβ”€β”€β”€Plane 1
β”‚ β”œβ”€β”€β”€Object ID: 32
β”‚ β”œβ”€β”€β”€CRTCs: {0}
β”‚ β”œβ”€β”€β”€Formats:
β”‚ β”‚ β”œβ”€β”€β”€XRGB8888 (0x34325258)
β”‚ β”‚ β”œβ”€β”€β”€ARGB8888 (0x34325241)
β”‚ β”‚ β”œβ”€β”€β”€XBGR8888 (0x34324258)
β”‚ β”‚ β”œβ”€β”€β”€ABGR8888 (0x34324241)
β”‚ β”‚ β”œβ”€β”€β”€RGB888 (0x34324752)
β”‚ β”‚ β”œβ”€β”€β”€BGR888 (0x34324742)
β”‚ β”‚ β”œβ”€β”€β”€RGB565 (0x36314752)
β”‚ β”‚ └───BGR565 (0x36314742)
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"type" (immutable): enum {Overlay, Primary, Cursor} = Cursor
β”‚ β”œβ”€β”€β”€"FB_ID" (atomic): object framebuffer = 0
β”‚ β”œβ”€β”€β”€"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
β”‚ β”œβ”€β”€β”€"CRTC_ID" (atomic): object CRTC = 0
β”‚ β”œβ”€β”€β”€"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_W" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_H" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_X" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_W" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_H" (atomic): range [0, UINT32_MAX] = 0
β”‚ └───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
β”œβ”€β”€β”€Plane 2
β”‚ β”œβ”€β”€β”€Object ID: 35
β”‚ β”œβ”€β”€β”€CRTCs: {1}
β”‚ β”œβ”€β”€β”€Formats:
β”‚ β”‚ β”œβ”€β”€β”€XRGB8888 (0x34325258)
β”‚ β”‚ β”œβ”€β”€β”€ARGB8888 (0x34325241)
β”‚ β”‚ β”œβ”€β”€β”€XBGR8888 (0x34324258)
β”‚ β”‚ β”œβ”€β”€β”€ABGR8888 (0x34324241)
β”‚ β”‚ β”œβ”€β”€β”€RGB888 (0x34324752)
β”‚ β”‚ β”œβ”€β”€β”€BGR888 (0x34324742)
β”‚ β”‚ β”œβ”€β”€β”€RGB565 (0x36314752)
β”‚ β”‚ β”œβ”€β”€β”€BGR565 (0x36314742)
β”‚ β”‚ β”œβ”€β”€β”€NV12 (0x3231564e)
β”‚ β”‚ β”œβ”€β”€β”€NV16 (0x3631564e)
β”‚ β”‚ └───NV24 (0x3432564e)
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
β”‚ β”œβ”€β”€β”€"FB_ID" (atomic): object framebuffer = 0
β”‚ β”œβ”€β”€β”€"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
β”‚ β”œβ”€β”€β”€"CRTC_ID" (atomic): object CRTC = 0
β”‚ β”œβ”€β”€β”€"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_W" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_H" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_X" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_W" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_H" (atomic): range [0, UINT32_MAX] = 0
β”‚ └───"rotation": bitmask {rotate-0, reflect-x, reflect-y} = (rotate-0)
β”œβ”€β”€β”€Plane 3
β”‚ β”œβ”€β”€β”€Object ID: 37
β”‚ β”œβ”€β”€β”€CRTCs: {1}
β”‚ β”œβ”€β”€β”€Formats:
β”‚ β”‚ β”œβ”€β”€β”€XRGB8888 (0x34325258)
β”‚ β”‚ β”œβ”€β”€β”€ARGB8888 (0x34325241)
β”‚ β”‚ β”œβ”€β”€β”€XBGR8888 (0x34324258)
β”‚ β”‚ β”œβ”€β”€β”€ABGR8888 (0x34324241)
β”‚ β”‚ β”œβ”€β”€β”€RGB888 (0x34324752)
β”‚ β”‚ β”œβ”€β”€β”€BGR888 (0x34324742)
β”‚ β”‚ β”œβ”€β”€β”€RGB565 (0x36314752)
β”‚ β”‚ └───BGR565 (0x36314742)
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"type" (immutable): enum {Overlay, Primary, Cursor} = Cursor
β”‚ β”œβ”€β”€β”€"FB_ID" (atomic): object framebuffer = 0
β”‚ β”œβ”€β”€β”€"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
β”‚ β”œβ”€β”€β”€"CRTC_ID" (atomic): object CRTC = 0
β”‚ β”œβ”€β”€β”€"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_W" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_H" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_X" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_W" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_H" (atomic): range [0, UINT32_MAX] = 0
β”‚ └───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
β”œβ”€β”€β”€Plane 4
β”‚ β”œβ”€β”€β”€Object ID: 40
β”‚ β”œβ”€β”€β”€CRTCs: {1}
β”‚ β”œβ”€β”€β”€Formats:
β”‚ β”‚ β”œβ”€β”€β”€XRGB8888 (0x34325258)
β”‚ β”‚ β”œβ”€β”€β”€ARGB8888 (0x34325241)
β”‚ β”‚ β”œβ”€β”€β”€XBGR8888 (0x34324258)
β”‚ β”‚ β”œβ”€β”€β”€ABGR8888 (0x34324241)
β”‚ β”‚ β”œβ”€β”€β”€RGB888 (0x34324752)
β”‚ β”‚ β”œβ”€β”€β”€BGR888 (0x34324742)
β”‚ β”‚ β”œβ”€β”€β”€RGB565 (0x36314752)
β”‚ β”‚ β”œβ”€β”€β”€BGR565 (0x36314742)
β”‚ β”‚ β”œβ”€β”€β”€NV12 (0x3231564e)
β”‚ β”‚ β”œβ”€β”€β”€NV16 (0x3631564e)
β”‚ β”‚ └───NV24 (0x3432564e)
β”‚ └───Properties
β”‚ β”œβ”€β”€β”€"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
β”‚ β”œβ”€β”€β”€"FB_ID" (atomic): object framebuffer = 0
β”‚ β”œβ”€β”€β”€"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
β”‚ β”œβ”€β”€β”€"CRTC_ID" (atomic): object CRTC = 0
β”‚ β”œβ”€β”€β”€"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_W" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"CRTC_H" (atomic): range [0, INT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_X" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_W" (atomic): range [0, UINT32_MAX] = 0
β”‚ β”œβ”€β”€β”€"SRC_H" (atomic): range [0, UINT32_MAX] = 0
β”‚ └───"rotation": bitmask {rotate-0, reflect-x, reflect-y} = (rotate-0)
└───Plane 5
β”œβ”€β”€β”€Object ID: 42
β”œβ”€β”€β”€CRTCs: {1}
β”œβ”€β”€β”€Formats:
β”‚ β”œβ”€β”€β”€XRGB8888 (0x34325258)
β”‚ β”œβ”€β”€β”€ARGB8888 (0x34325241)
β”‚ β”œβ”€β”€β”€XBGR8888 (0x34324258)
β”‚ β”œβ”€β”€β”€ABGR8888 (0x34324241)
β”‚ β”œβ”€β”€β”€RGB888 (0x34324752)
β”‚ β”œβ”€β”€β”€BGR888 (0x34324742)
β”‚ β”œβ”€β”€β”€RGB565 (0x36314752)
β”‚ └───BGR565 (0x36314742)
└───Properties
β”œβ”€β”€β”€"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
β”œβ”€β”€β”€"FB_ID" (atomic): object framebuffer = 0
β”œβ”€β”€β”€"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
β”œβ”€β”€β”€"CRTC_ID" (atomic): object CRTC = 0
β”œβ”€β”€β”€"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”œβ”€β”€β”€"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
β”œβ”€β”€β”€"CRTC_W" (atomic): range [0, INT32_MAX] = 0
β”œβ”€β”€β”€"CRTC_H" (atomic): range [0, INT32_MAX] = 0
β”œβ”€β”€β”€"SRC_X" (atomic): range [0, UINT32_MAX] = 0
β”œβ”€β”€β”€"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
β”œβ”€β”€β”€"SRC_W" (atomic): range [0, UINT32_MAX] = 0
β”œβ”€β”€β”€"SRC_H" (atomic): range [0, UINT32_MAX] = 0
└───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment