EDID modes unavailable when no connector/crtc available at boot

Tony Prisk linux at prisktech.co.nz
Sat Aug 10 21:41:46 PDT 2013


I am working on the HDMI driver for the i.MX6 as part of the larger DRM 
driver written by Sascha Hauer and need a little advice. I seem to be 
missing one important part of the subsystem that I haven't been able to 
resolve.

In my testing, powering on the system with only a HDMI cable connected 
works perfectly. Resolution is set to 1920x1080 as requested (with the 
framebuffer console at the same resolution).

If I boot up the system without an HDMI cable connected (or any other 
cable), I get the expected:
[    1.470273] imx_hdmi_connector_detect
[    1.470276] returned cable DISCONNECTED
[    1.470289] imx-drm imx-drm: No connectors reported connected with modes
[    1.470297] [drm] Cannot find any crtc or sizes - going 1024x768

When I connect the cable at a later time, all EDID detected modes are 
'truncated' to '<= 1024x768', but because I have a video=xxx in 
bootargs, the driver still seems to initialize to 1920x1080, but with a 
framebuffer of 1024x768.

I assume this is a mistake on my part, but I don't know what I'm missing 
that would cause it.

I see in drm_crtc_helper.c:drm_helper_mode_fill_fb_struct that the 
width/height are set to the initialized mode.
Later in drm_fb_helper.c:drm_fb_helper_hotplug_event, max_width if set 
to fb->width.

This is what causes the modes to be truncated when the HDMI connector is 
finally connected (max_width is now limited to 1024).


Suggestions appreciated.

Regards
Tony Prisk


More information about the dri-devel mailing list