资源枚举

plane资源

  1. root@inno-MS-7B89:busybox# modetest -p
  2. Planes:
  3. id crtc fb CRTC x,y x,y gamma size possible crtcs
  4. 41 51 97 0,0 0,0 0 0x00000001
  5. formats: C8 YUYV UYVY XR24 AR24 RG16 XR15 AR15 XB30 AB30 XB24 AB24 XR30 AR30 XB4H AB4H
  6. props:
  7. 8 type:
  8. flags: immutable enum
  9. enums: Overlay=0 Primary=1 Cursor=2
  10. value: 1
  11. 42 zpos:
  12. flags: range
  13. values: 0 254
  14. value: 0
  15. 43 alpha:
  16. flags: range
  17. values: 0 65535
  18. value: 65535
  19. 44 pixel blend mode:
  20. flags: enum
  21. enums: None=2 Pre-multiplied=0 Coverage=1
  22. value: 0
  23. ......

代码分析 modetest.c中

  1. drmModeGetPlaneResources(dev->fd) // 获取资源总数
  2. DRM_IOCTL_MODE_GETPLANERESOURCES => drm_mode_getplane_res => mode_config.plane_list
  3. drmModeGetPlane // 对每一个资源,获取详细信息
  4. DRM_IOCTL_MODE_GETPLANE => drm_mode_getplane =>
  5. drmModeObjectGetProperties
  6. DRM_IOCTL_MODE_OBJ_GETPROPERTIES
  7. drmModeGetProperty
  8. DRM_IOCTL_MODE_GETPROPERTY