[PATCH v2 1/2] drm/crtc: fix connector reference counting mismatch in drm_crtc_helper_set_config

Philipp Zabel p.zabel at pengutronix.de
Tue Jun 14 14:51:27 UTC 2016


Am Dienstag, den 14.06.2016, 13:57 +0200 schrieb Lucas Stach:
> Am Montag, den 13.06.2016, 20:18 +0200 schrieb Daniel Vetter:
> [...]
> > > > > Only the reference count of connectors that weren't previously bound to
> > > > > an encoder should be incremented after a call to drm_crtc_helper_set_config.
> > > > > And only the reference count of connectors that were previously bound to
> > > > > an encoder and are unbound afterwards should ever be decremented.
> > > > > The reference counts of the temporary copies in the save_connectors
> > > > > should not be touched at all.
> > > > > 
> > > > > This patch fixes the above error by only incrementing the reference count
> > > > > of those connectors in the set that are initially not bound to any encoder,
> > > > > and also by restoring the reference count of only those connectors in the
> > > > > set in the failure case.
> > > > > 
> > > > > Fixes: 0955c1250e96 ("drm/crtc: take references to connectors used in a modeset. (v2)")
> > > > > Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> > > > 
> > > > I'd like to analyze this bug first a bit more (since it seems to be imx
> > > > specific) before review/merging, per our ongoing discussion. The current
> > > > code is definitely wrong, but looking at it I more expected a leak (since
> > > > we decrement saved structures, not the real ones), not an explosion.
> > > > -Daniel
> > > > 
> > > There is a regression bug open against nouveau, which shows the same
> > > symptoms and is fixed by these patches.
> > > 
> > > https://bugzilla.kernel.org/show_bug.cgi?id=119861
> > > 
> > > It is not specific to imx-drm, but doesn't explode on desktop system
> > > right away, probably due to the FB emulation holding a reference to all
> > > connectors.
> > 
> > Sensible theory. Can you confirm that enabling fbdev emulation on imx
> > works around this?
> 
> Yes, we are unable to reproduce the issue if fbdev emulation is enabled.

And contrary to what I expected, the connector reference counts don't
decrease, but increase over time with fbdev emulation enabled.

---------->8----------
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index bceb31c..62c9299 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -364,6 +364,7 @@ static struct drm_mode_object *_object_find(struct drm_device *dev,
                obj = NULL;
 
        if (obj && obj->free_cb) {
+               DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, atomic_read(&obj->refcount.refcount));
                if (!kref_get_unless_zero(&obj->refcount))
                        obj = NULL;
        }
----------8<----------

Initially:

[    1.697118] [drm:drm_minor_register] 
[    1.697136] [drm:drm_minor_register] 
[    1.698860] [drm:drm_minor_register] new minor registered 128
[    1.698878] [drm:drm_minor_register] 
[    1.700011] [drm:drm_minor_register] new minor registered 0
[    1.949582] [drm:drm_platform_init] 
[    1.949601] [drm:drm_get_platform_dev] 
[    1.949775] [drm:drm_minor_register] 
[    1.950938] [drm:drm_minor_register] new minor registered 64
[    1.950956] [drm:drm_minor_register] 
[    1.950972] [drm:drm_minor_register] 
[    1.951896] [drm:drm_minor_register] new minor registered 1
[    2.030970] [drm:drm_sysfs_connector_add] adding "HDMI-A-1" to sysfs
[    2.030991] [drm:drm_sysfs_hotplug_event] generating hotplug event
[    2.031581] [drm:drm_sysfs_connector_add] adding "LVDS-1" to sysfs
[    2.031601] [drm:drm_sysfs_hotplug_event] generating hotplug event
[    2.031850] [drm:drm_mode_object_reference] OBJ ID: 34 (1)
[    2.031875] [drm:drm_mode_object_reference] OBJ ID: 36 (1)
[    2.031901] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1]
[    2.079442] [drm:drm_detect_monitor_audio] Monitor has basic audio support
[    2.080453] [drm:drm_assign_hdmi_deep_color_info] HDMI-A-1: No deep color support on this HDMI sink.
[    2.080477] [drm:drm_edid_to_eld] ELD monitor SyncMaster
[    2.080517] [drm:drm_edid_to_eld] ELD size 36, SAD count 1
[    2.080787] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1] probed modes :
[    2.080813] [drm:drm_mode_debug_printmodeline] Modeline 38:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
[    2.080837] [drm:drm_mode_debug_printmodeline] Modeline 39:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
[...]
[    2.081478] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1]
[    2.081497] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] status updated from unknown to connected
[    2.081535] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] probed modes :
[    2.081559] [drm:drm_mode_debug_printmodeline] Modeline 63:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
[    2.081576] [drm:drm_setup_crtcs] 
[    2.081601] [drm:drm_enable_connectors] connector 34 enabled? yes
[    2.081618] [drm:drm_enable_connectors] connector 36 enabled? yes
[    2.081636] [drm:drm_target_preferred] looking for cmdline mode on connector 34
[    2.081653] [drm:drm_target_preferred] looking for preferred mode on connector 34 0
[    2.081668] [drm:drm_target_preferred] found mode 1920x1200
[    2.081684] [drm:drm_target_preferred] looking for cmdline mode on connector 36
[    2.081699] [drm:drm_target_preferred] looking for preferred mode on connector 36 0
[    2.081714] [drm:drm_target_preferred] found mode 1280x800
[    2.081731] [drm:drm_setup_crtcs] picking CRTCs for 4096x4096 config
[    2.081778] [drm:drm_setup_crtcs] desired mode 1920x1200 set on crtc 24 (0,0)
[    2.081804] [drm:drm_setup_crtcs] desired mode 1280x800 set on crtc 27 (0,0)
[    2.081842] [drm:drm_fbdev_cma_create_with_funcs] surface width(1920), height(1200) and bpp(16)
[    2.101869] [drm:drm_crtc_helper_set_config] 
[    2.101883] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
[    2.101901] [drm:drm_crtc_helper_set_config] crtc has no fb, full mode set
[    2.101910] [drm:drm_crtc_helper_set_config] modes are different, full mode set
[    2.101923] [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
[    2.101939] [drm:drm_mode_debug_printmodeline] Modeline 64:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
[    2.101947] [drm:drm_mode_object_reference] OBJ ID: 34 (2)
[    2.101956] [drm:drm_crtc_helper_set_config] encoder changed, full mode switch
[    2.101963] [drm:drm_crtc_helper_set_config] crtc changed, full mode switch
[    2.101972] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[    2.101982] [drm:drm_crtc_helper_set_config] attempting to set mode from userspace
[    2.101994] [drm:drm_mode_debug_printmodeline] Modeline 64:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
[    2.102032] [drm:drm_crtc_helper_set_mode] [CRTC:24:crtc-0]
[    2.103022] [drm:drm_crtc_helper_set_mode] [ENCODER:33:TMDS-33] set [MODE:64:1920x1200]
[    2.122426] [drm:drm_calc_timestamping_constants] crtc 24: hwmode: htotal 2080, vtotal 1235, vdisplay 1200
[    2.122437] [drm:drm_calc_timestamping_constants] crtc 24: clock 154000 kHz framedur 16680519 linedur 13506
[    2.122457] [drm:drm_crtc_helper_set_config] Setting connector DPMS state to on
[    2.122465] [drm:drm_crtc_helper_set_config]         [CONNECTOR:34:HDMI-A-1] set DPMS on
[    2.122478] [drm:drm_mode_object_unreference] OBJ ID: 34 (2)
[    2.122485] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
[    2.122507] [drm:drm_crtc_helper_set_config] 
[    2.122517] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
[    2.122531] [drm:drm_crtc_helper_set_config] crtc has no fb, full mode set
[    2.122538] [drm:drm_crtc_helper_set_config] modes are different, full mode set
[    2.122549] [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
[    2.122563] [drm:drm_mode_debug_printmodeline] Modeline 66:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
[    2.122570] [drm:drm_mode_object_reference] OBJ ID: 36 (2)
[    2.122577] [drm:drm_crtc_helper_set_config] encoder changed, full mode switch
[    2.122585] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[    2.122592] [drm:drm_crtc_helper_set_config] crtc changed, full mode switch
[    2.122599] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[    2.122606] [drm:drm_crtc_helper_set_config] attempting to set mode from userspace
[    2.122618] [drm:drm_mode_debug_printmodeline] Modeline 66:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
[    2.122652] [drm:drm_crtc_helper_set_mode] [CRTC:27:crtc-1]
[    2.122740] [drm:drm_crtc_helper_set_mode] [ENCODER:35:LVDS-35] set [MODE:66:1280x800]
[    2.123305] [drm:drm_calc_timestamping_constants] crtc 27: hwmode: htotal 1440, vtotal 823, vdisplay 800
[    2.123315] [drm:drm_calc_timestamping_constants] crtc 27: clock 71100 kHz framedur 16668354 linedur 20253
[    2.123334] [drm:drm_crtc_helper_set_config] Setting connector DPMS state to on
[    2.123342] [drm:drm_crtc_helper_set_config]         [CONNECTOR:36:LVDS-1] set DPMS on
[    2.123352] [drm:drm_mode_object_unreference] OBJ ID: 34 (3)
[    2.123360] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
[    2.123395] [drm:drm_crtc_helper_set_config] 
[    2.123402] [drm:drm_crtc_helper_set_config] [CRTC:29:crtc-2] [NOFB]
[    2.123436] [drm:drm_crtc_helper_set_config] 
[    2.123443] [drm:drm_crtc_helper_set_config] [CRTC:32:crtc-3] [NOFB]
[    2.123619] [drm:drm_crtc_helper_set_config] 
[    2.123630] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
[    2.123646] [drm:drm_mode_object_reference] OBJ ID: 34 (3)
[    2.123656] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[    2.123664] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[    2.123671] [drm:drm_mode_object_unreference] OBJ ID: 34 (3)
[    2.123678] [drm:drm_mode_object_unreference] OBJ ID: 36 (3)
[    2.123719] [drm:drm_crtc_helper_set_config] 
[    2.123728] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
[    2.123742] [drm:drm_mode_object_reference] OBJ ID: 36 (3)
[    2.123751] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[    2.123759] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[    2.123766] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
[    2.123772] [drm:drm_mode_object_unreference] OBJ ID: 36 (3)
[    2.130720] [drm:drm_crtc_helper_set_config] 
[    2.130731] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
[    2.130748] [drm:drm_mode_object_reference] OBJ ID: 34 (4)
[    2.130758] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[    2.130766] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[    2.130774] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
[    2.130781] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
[    2.130822] [drm:drm_crtc_helper_set_config] 
[    2.130830] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
[    2.130845] [drm:drm_mode_object_reference] OBJ ID: 36 (4)
[    2.130854] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[    2.130862] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[    2.130868] [drm:drm_mode_object_unreference] OBJ ID: 34 (5)
[    2.130875] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)

$ modetest -M imx-drm -f

[  140.564392] [drm:drm_stub_open] 
[  140.564463] [drm:drm_open_helper] pid = 268, minor = 0
[  140.566906] [drm:drm_setup] 
[  140.567587] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  140.567633] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  140.567736] [drm:drm_release] open_count = 1
[  140.568010] [drm:drm_release] pid = 268, device = 0xe200, open_count = 1
[  140.568426] [drm:drm_lastclose] 
[  140.568455] [drm:drm_lastclose] driver lastclose completed
[  140.568487] [drm:drm_legacy_dev_reinit] lastclose completed
[  140.568733] [drm:drm_stub_open] 
[  140.568778] [drm:drm_open_helper] pid = 268, minor = 0
[  140.568837] [drm:drm_setup] 
[  140.568898] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  140.568937] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  140.568989] [drm:drm_release] open_count = 1
[  140.569041] [drm:drm_release] pid = 268, device = 0xe200, open_count = 1
[  140.569099] [drm:drm_lastclose] 
[  140.569123] [drm:drm_lastclose] driver lastclose completed
[  140.569153] [drm:drm_legacy_dev_reinit] lastclose completed
[  140.569382] [drm:drm_stub_open] 
[  140.569426] [drm:drm_open_helper] pid = 268, minor = 1
[  140.569483] [drm:drm_setup] 
[  140.569541] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_VERSION
[  140.569580] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_VERSION
[  140.569624] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
[  140.569665] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
[  140.569708] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_SET_CLIENT_CAP
[  140.569794] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[  140.570021] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[  140.570138] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  140.570274] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  140.570341] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  140.570402] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  140.570465] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
[  140.570513] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
[  140.570559] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  140.570625] [drm:_object_find] OBJ ID: 34 (5)
[  140.570656] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1]
[  140.571998] [drm:drm_assign_hdmi_deep_color_info] HDMI-A-1: No deep color support on this HDMI sink.
[  140.572032] [drm:drm_edid_to_eld] ELD monitor SyncMaster
[  140.572065] [drm:parse_hdmi_vsdb] HDMI: DVI dual 0, max TMDS clock 0, latency present 0 0, video latency 0 0, audio latency 0 0
[  140.572091] [drm:drm_edid_to_eld] ELD size 36, SAD count 1
[  140.572747] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1] probed modes :
[  140.572786] [drm:drm_mode_debug_printmodeline] Modeline 38:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
[  140.572820] [drm:drm_mode_debug_printmodeline] Modeline 39:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
[...]
[  140.573849] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
[  140.573897] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  140.573932] [drm:_object_find] OBJ ID: 34 (5)
[  140.574001] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
[  140.574080] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  140.574118] [drm:_object_find] OBJ ID: 36 (5)
[  140.574148] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1]
[  140.574221] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] probed modes :
[  140.574259] [drm:drm_mode_debug_printmodeline] Modeline 63:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
[  140.574292] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
[  140.574332] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  140.574366] [drm:_object_find] OBJ ID: 36 (5)
[  140.574405] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
[  140.574566] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.574784] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585074] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585184] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585290] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585390] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585492] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585593] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585694] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585761] [drm:_object_find] OBJ ID: 34 (5)
[  140.585792] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
[  140.585853] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.585918] [drm:_object_find] OBJ ID: 34 (5)
[  140.585951] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
[  140.586020] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.586122] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.586226] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.586329] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.586440] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.586506] [drm:_object_find] OBJ ID: 36 (5)
[  140.586538] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
[  140.586599] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.586665] [drm:_object_find] OBJ ID: 36 (5)
[  140.586698] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
[  140.586762] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.586860] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.586963] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.587065] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.587177] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
[  140.587213] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
[  140.587252] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587298] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587347] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587391] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587438] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587482] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587530] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587573] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587620] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587663] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587710] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587752] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  140.587799] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.587901] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.588009] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.588111] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.588222] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.588324] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.588431] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.588533] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.588644] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.588746] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.588850] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.588952] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.589061] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.589164] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.589270] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.589372] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.589481] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.589583] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.589688] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.589790] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.589900] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.590003] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  140.590108] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.590210] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  140.601683] [drm:drm_release] open_count = 1
[  140.601737] [drm:drm_release] pid = 268, device = 0xe201, open_count = 1
[  140.601800] [drm:drm_lastclose] 
[  140.602003] [drm:drm_crtc_helper_set_config] 
[  140.602038] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
[  140.602085] [drm:drm_mode_object_reference] OBJ ID: 34 (5)
[  140.602117] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[  140.602145] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[  140.602171] [drm:drm_mode_object_unreference] OBJ ID: 34 (5)
[  140.602195] [drm:drm_mode_object_unreference] OBJ ID: 36 (5)
[  140.602337] [drm:drm_crtc_helper_set_config] 
[  140.602364] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
[  140.602400] [drm:drm_mode_object_reference] OBJ ID: 36 (5)
[  140.602429] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[  140.602456] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[  140.602480] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
[  140.602512] [drm:drm_mode_object_unreference] OBJ ID: 36 (5)
[  140.602640] [drm:drm_crtc_helper_set_config] 
[  140.602664] [drm:drm_crtc_helper_set_config] [CRTC:29:crtc-2] [NOFB]
[  140.602785] [drm:drm_crtc_helper_set_config] 
[  140.602820] [drm:drm_crtc_helper_set_config] [CRTC:32:crtc-3] [NOFB]
[  140.602971] [drm:drm_lastclose] driver lastclose completed

$ modetest -M imx-drm -f

[  186.620993] [drm:drm_stub_open] 
[  186.621047] [drm:drm_open_helper] pid = 274, minor = 0
[  186.621111] [drm:drm_setup] 
[  186.621760] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  186.621804] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  186.621903] [drm:drm_release] open_count = 1
[  186.621962] [drm:drm_release] pid = 274, device = 0xe200, open_count = 1
[  186.622025] [drm:drm_lastclose] 
[  186.622051] [drm:drm_lastclose] driver lastclose completed
[  186.622082] [drm:drm_legacy_dev_reinit] lastclose completed
[  186.622311] [drm:drm_stub_open] 
[  186.622354] [drm:drm_open_helper] pid = 274, minor = 0
[  186.622411] [drm:drm_setup] 
[  186.622470] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  186.622509] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[  186.622560] [drm:drm_release] open_count = 1
[  186.622611] [drm:drm_release] pid = 274, device = 0xe200, open_count = 1
[  186.622668] [drm:drm_lastclose] 
[  186.622693] [drm:drm_lastclose] driver lastclose completed
[  186.622721] [drm:drm_legacy_dev_reinit] lastclose completed
[  186.622936] [drm:drm_stub_open] 
[  186.622980] [drm:drm_open_helper] pid = 274, minor = 1
[  186.623038] [drm:drm_setup] 
[  186.623095] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_VERSION
[  186.623134] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_VERSION
[  186.623176] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
[  186.623218] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
[  186.623261] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_SET_CLIENT_CAP
[  186.623338] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[  186.623393] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[  186.623487] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  186.623567] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  186.623635] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  186.623698] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
[  186.623759] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
[  186.623807] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
[  186.623852] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  186.623885] [drm:_object_find] OBJ ID: 34 (6)
[  186.623916] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1]
[  186.625441] [drm:drm_assign_hdmi_deep_color_info] HDMI-A-1: No deep color support on this HDMI sink.
[  186.625486] [drm:drm_edid_to_eld] ELD monitor SyncMaster
[  186.625519] [drm:parse_hdmi_vsdb] HDMI: DVI dual 0, max TMDS clock 0, latency present 0 0, video latency 0 0, audio latency 0 0
[  186.625545] [drm:drm_edid_to_eld] ELD size 36, SAD count 1
[  186.626192] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1] probed modes :
[  186.626233] [drm:drm_mode_debug_printmodeline] Modeline 38:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
[  186.626277] [drm:drm_mode_debug_printmodeline] Modeline 39:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
[...]
[  186.627279] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
[  186.627327] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  186.627363] [drm:_object_find] OBJ ID: 34 (6)
[  186.627430] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
[  186.627512] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  186.627550] [drm:_object_find] OBJ ID: 36 (6)
[  186.627590] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1]
[  186.627663] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] probed modes :
[  186.627701] [drm:drm_mode_debug_printmodeline] Modeline 63:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
[  186.627735] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
[  186.627774] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
[  186.627809] [drm:_object_find] OBJ ID: 36 (6)
[  186.627847] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
[  186.628001] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628118] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628226] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628327] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628431] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628536] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628640] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628739] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628841] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.628908] [drm:_object_find] OBJ ID: 34 (6)
[  186.628939] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
[  186.629007] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.629073] [drm:_object_find] OBJ ID: 34 (6)
[  186.629105] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
[  186.629170] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.629281] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.629386] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.629490] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.629602] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.629669] [drm:_object_find] OBJ ID: 36 (6)
[  186.629708] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
[  186.629772] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.629838] [drm:_object_find] OBJ ID: 36 (6)
[  186.629871] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
[  186.629942] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.630042] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.630145] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.630250] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.630361] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
[  186.630399] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
[  186.630439] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630484] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630533] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630576] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630624] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630666] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630720] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630763] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630811] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630856] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630904] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630947] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
[  186.630995] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.631098] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.631206] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.631319] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.631431] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.631536] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.631644] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.631747] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.631864] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.631968] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.632074] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.632176] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.632289] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.632392] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.632500] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.632603] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.632714] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.632818] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.632925] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.633027] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.633147] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.633251] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
[  186.633357] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.633460] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[  186.635240] [drm:drm_release] open_count = 1
[  186.635287] [drm:drm_release] pid = 274, device = 0xe201, open_count = 1
[  186.635344] [drm:drm_lastclose] 
[  186.635427] [drm:drm_crtc_helper_set_config] 
[  186.635460] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
[  186.635502] [drm:drm_mode_object_reference] OBJ ID: 34 (6)
[  186.635535] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[  186.635563] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[  186.635589] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
[  186.635613] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
[  186.635742] [drm:drm_crtc_helper_set_config] 
[  186.635769] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
[  186.635803] [drm:drm_mode_object_reference] OBJ ID: 36 (6)
[  186.635831] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
[  186.635857] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
[  186.635881] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
[  186.635914] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
[  186.636040] [drm:drm_crtc_helper_set_config] 
[  186.636064] [drm:drm_crtc_helper_set_config] [CRTC:29:crtc-2] [NOFB]
[  186.636193] [drm:drm_crtc_helper_set_config] 
[  186.636217] [drm:drm_crtc_helper_set_config] [CRTC:32:crtc-3] [NOFB]
[  186.636367] [drm:drm_lastclose] driver lastclose completed

... and so on.
With my patches applied, I see steady state refcounts of 3/4 with FBDEV_EMULATION enabled:

[  126.584377] [drm:_object_find] OBJ ID: 34 (3)
[  126.588587] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
[  126.588696] [drm:_object_find] OBJ ID: 34 (3)
[  126.588795] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
[  126.588951] [drm:_object_find] OBJ ID: 36 (3)
[  126.589177] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
[  126.589272] [drm:_object_find] OBJ ID: 36 (3)
[  126.589322] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
[...]

and 1/2 without:

[   92.965302] [drm:_object_find] OBJ ID: 36 (1)
[   92.973203] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
[   92.977927] [drm:_object_find] OBJ ID: 36 (1)
[   92.977986] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
[   92.981723] [drm:_object_find] OBJ ID: 34 (1)
[   92.981765] [drm:drm_mode_object_unreference] OBJ ID: 34 (2)
[   92.982496] [drm:_object_find] OBJ ID: 34 (1)
[   92.982542] [drm:drm_mode_object_unreference] OBJ ID: 34 (2)
[...]

regards
Philipp



More information about the dri-devel mailing list