On Mon, Apr 20, 2015 at 01:20:05PM +0200, Radek Dostál wrote:
Hi Chris,
On 04/20/2015 01:00 PM, Chris Wilson wrote:
Can you do a WARN_ON(list_empty(&connector->modes)) here to see at what point we set up the invalid GTF mode?
sure please see attached patch adding WARN_ON and corresponding output of dmesg. As mentioned in the original commit, the mode is indeed added in drm_helper_probe_add_cmdline_mode.
Ah, maybe this on top of the previous try:
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c index 88f5a74..5d22ca0 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c @@ -87,7 +87,7 @@ static int drm_helper_probe_add_cmdline_mode(struct drm_connector *connector) return 0;
/* Only add a GTF mode if we find no matching probed modes */ - list_for_each_entry(mode, &connector->modes, head) { + list_for_each_entry(mode, &connector->probed_modes, head) { if (mode->hdisplay != cmdline_mode->xres || mode->vdisplay != cmdline_mode->yres) continue; @@ -211,7 +211,8 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect mode_flags |= DRM_MODE_FLAG_3D_MASK;
list_for_each_entry(mode, &connector->modes, head) { - mode->status = drm_mode_validate_basic(mode); + if (mode->status == MODE_OK) + mode->status = drm_mode_validate_basic(mode);
if (mode->status == MODE_OK) mode->status = drm_mode_validate_size(mode, maxX, maxY