Open
Description
The drm
example fails for me while trying the first page filp (of course, no other software is using the DRM). I have tried the legacy_modeset
example of https://github.com/Smithay/drm-rs and it works, so I'm probably missing something, but I'm at a loss about what. Anyway, the output is:
Drawing tick 1
Error: PlatformError(Some("failed to page flip"), Some(Os { code: 16, kind: ResourceBusy, message: "Device or resource busy" }))
and, when run through strace, the output is:
$ strace -e ioctl ./drm
ioctl(3, DRM_IOCTL_MODE_GETRESOURCES, 0xbeff5840) = 0
ioctl(3, DRM_IOCTL_MODE_GETRESOURCES, 0xbeff5898) = 0
ioctl(3, DRM_IOCTL_MODE_GETCONNECTOR, 0xbeff5580) = 0
ioctl(3, DRM_IOCTL_MODE_GETCONNECTOR, 0xbeff5690) = 0
ioctl(3, DRM_IOCTL_MODE_GETRESOURCES, 0xbeff5960) = 0
ioctl(3, DRM_IOCTL_MODE_GETRESOURCES, 0xbeff59b8) = 0
ioctl(3, DRM_IOCTL_MODE_GETCONNECTOR, 0xbeff5330) = 0
ioctl(3, DRM_IOCTL_MODE_GETCONNECTOR, 0xbeff5440) = 0
ioctl(3, DRM_IOCTL_MODE_GETCRTC, 0xbeff5200) = 0
ioctl(3, DRM_IOCTL_MODE_GETPLANERESOURCES, 0xbeff5c00) = 0
ioctl(3, DRM_IOCTL_MODE_GETPLANERESOURCES, 0xbeff5c28) = 0
ioctl(3, DRM_IOCTL_MODE_GETPLANE, 0xbeff5940) = 0
ioctl(3, DRM_IOCTL_MODE_GETPLANE, 0xbeff59b8) = 0
ioctl(3, DRM_IOCTL_MODE_OBJ_GETPROPERTIES, 0xbeff58b0) = 0
ioctl(3, DRM_IOCTL_MODE_OBJ_GETPROPERTIES, 0xbeff5908) = 0
ioctl(3, DRM_IOCTL_MODE_GETPROPERTY, 0xbeff56c0) = 0
ioctl(3, DRM_IOCTL_MODE_GETPROPERTY, 0xbeff56c0) = 0
ioctl(3, DRM_IOCTL_MODE_GETPLANE, 0xbeff43e8) = 0
ioctl(3, DRM_IOCTL_MODE_GETPLANE, 0xbeff4460) = 0
ioctl(3, DRM_IOCTL_MODE_GETRESOURCES, 0xbeff4260) = 0
ioctl(3, DRM_IOCTL_MODE_GETRESOURCES, 0xbeff42b8) = 0
ioctl(3, DRM_IOCTL_MODE_GETCRTC, 0xbeff41e8) = 0
ioctl(3, DRM_IOCTL_MODE_GETENCODER, 0xbeff3fc0) = 0
ioctl(3, DRM_IOCTL_MODE_GETCONNECTOR, 0xbeff3ae8) = 0
ioctl(3, DRM_IOCTL_MODE_GETCONNECTOR, 0xbeff3bf8) = 0
ioctl(3, DRM_IOCTL_MODE_CREATE_DUMB, 0xbeff57e0) = 0
ioctl(3, DRM_IOCTL_MODE_ADDFB, 0xbeff580c) = 0
ioctl(3, DRM_IOCTL_MODE_CREATE_DUMB, 0xbeff57e0) = 0
ioctl(3, DRM_IOCTL_MODE_ADDFB, 0xbeff580c) = 0
Drawing tick 1
ioctl(3, DRM_IOCTL_MODE_MAP_DUMB, 0xbeff57e0) = 0
ioctl(3, DRM_IOCTL_MODE_DIRTYFB, 0xbeff5968) = -1 ENOSYS (Function not implemented)
ioctl(3, DRM_IOCTL_MODE_PAGE_FLIP, 0xbeff59e0) = -1 EBUSY (Device or resource busy)
ioctl(3, DRM_IOCTL_MODE_SETCRTC, 0xbeff57a8) = -1 ENOENT (No such file or directory)
Error: PlatformError(Some("failed to page flip"), Some(Os { code: 16, kind: ResourceBusy, message: "Device or resource busy" }))
+++ exited with 1 +++
Output of dmesg after running echo 0x1FF > /sys/module/drm/parameters/debug
(if it helps, I don't see anything that stands out):
[ 1562.723216] [drm:drm_stub_open]
[ 1562.725739] [drm:drm_open] comm="drm", pid=1596, minor=0
[ 1562.736148] [drm:drm_legacy_setup]
[ 1562.741258] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 1562.751288] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 1562.761361] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[ 1562.771022] [drm:drm_mode_object_put.part.0] OBJ ID: 32 (3)
[ 1562.776034] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[ 1562.788027] [drm:drm_mode_object_put.part.0] OBJ ID: 32 (3)
[ 1562.793368] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 1562.805019] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 1562.815105] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[ 1562.824827] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:32:DPI-1]
[ 1562.833157] [drm:ltdc_crtc_mode_valid] clk rate target 30000000, available 30000000
[ 1562.842140] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:32:DPI-1] probed modes :
[ 1562.851654] [drm:drm_mode_debug_printmodeline] Modeline "800x480": 53 30000 800 1010 1020 1066 480 502 507 530 0x48 0xa
[ 1562.863491] [drm:drm_mode_object_put.part.0] OBJ ID: 32 (3)
[ 1562.870007] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[ 1562.879699] [drm:drm_mode_object_put.part.0] OBJ ID: 32 (3)
[ 1562.886458] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCRTC
[ 1562.895872] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
[ 1562.906373] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
[ 1562.916615] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPLANE
[ 1562.926311] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPLANE
[ 1562.935795] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[ 1562.946094] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[ 1562.956634] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[ 1562.966432] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[ 1562.976401] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPLANE
[ 1562.985868] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPLANE
[ 1562.995237] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 1563.005251] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 1563.015296] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCRTC
[ 1563.024833] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETENCODER
[ 1563.034890] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[ 1563.046099] [drm:drm_mode_object_put.part.0] OBJ ID: 32 (3)
[ 1563.052678] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[ 1563.062548] [drm:drm_mode_object_put.part.0] OBJ ID: 32 (3)
[ 1563.069357] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_CREATE_DUMB
[ 1563.096140] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_ADDFB
[ 1563.103837] stm32-display 5a001000.display-controller: [drm:drm_mode_addfb2] [FB:49]
[ 1563.119119] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_CREATE_DUMB
[ 1563.131434] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_ADDFB
[ 1563.139501] stm32-display 5a001000.display-controller: [drm:drm_mode_addfb2] [FB:50]
[ 1563.156885] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_MAP_DUMB
[ 1563.200312] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_DIRTYFB
[ 1563.208385] [drm:drm_mode_object_put.part.0] OBJ ID: 49 (2)
[ 1563.214221] [drm:drm_ioctl] comm="drm", pid=1596, ret=-38
[ 1563.227757] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_PAGE_FLIP
[ 1563.236096] [drm:drm_ioctl] comm="drm", pid=1596, ret=-16
[ 1563.244643] [drm:drm_ioctl] comm="drm" pid=1596, dev=0xe200, auth=1, DRM_IOCTL_MODE_SETCRTC
[ 1563.254226] [drm:drm_mode_setcrtc] [CRTC:41:crtc-0]
[ 1563.260153] [drm:drm_mode_setcrtc] Unknown FB ID0
[ 1563.264187] [drm:drm_ioctl] comm="drm", pid=1596, ret=-2
[ 1563.272659] [drm:drm_release] open_count = 1
[ 1563.276289] [drm:drm_file_free.part.0] comm="drm", pid=1596, dev=0xe200, open_count=1
[ 1563.288789] [drm:drm_mode_object_put.part.0] OBJ ID: 50 (1)
[ 1563.293750] [drm:drm_mode_object_put.part.0] OBJ ID: 49 (1)
[ 1563.303107] [drm:_drm_lease_revoke] revoke leases for 4560017b 0
[ 1563.310178] [drm:drm_lease_destroy] drm_lease_destroy 0
[ 1563.314713] [drm:drm_master_destroy] drm_lease_destroy done 0
[ 1563.323514] [drm:drm_lastclose]
[ 1563.326033] [drm:drm_lastclose] driver lastclose completed
Metadata
Metadata
Assignees
Labels
No labels