From: "Radek Dostál" <rd@radekdostal.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, dri-devel@lists.freedesktop.org
Cc: "Jesse Barnes" <jbarnes@virtuousgeek.org>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
"Julia Lemire" <jlemire@matrox.com>,
"Dave Airlie" <airlied@redhat.com>,
stable@vger.kernel.org
Subject: Re: [PATCH] drm: Only create a cmdline mode if no probed modes match
Date: Mon, 20 Apr 2015 15:06:30 +0200 [thread overview]
Message-ID: <5534F9D6.4080908@radekdostal.com> (raw)
In-Reply-To: <1429532795-3922-1-git-send-email-chris@chris-wilson.co.uk>
[-- Attachment #1: Type: text/plain, Size: 2238 bytes --]
Hi Chris,
On 04/20/2015 02:26 PM, Chris Wilson wrote:
> The intention of using video=<connector>:<mode: is primarily to select
> the user's preferred resolution at startup. Currently we always create a
> GTF mode irrespective of whether the monitor has a native mode at the
> desired resolution. This has the issue that we may then select the fake
> GTF mode rather the native mode during fb_helper->inital_config() and so
> on a non-GTF monitor we then end up with a loss of signal. Oops. This
> invalid fake mode would also be exported to userspace, who potentially
> may make the same mistake.
>
> To avoid this issue, we filter out the added command line mode if we
> detect the desired resolution (and clock if specified) amongst the
> probed modes. This fixes the immediate problem of adding a duplicate
> mode, but perhaps more generically we should avoid adding a GTF mode if
> the monitor has an EDID that is not GTF-compatible...
>
> A second issue sneaked into this patch is to add the cmdline mode mode
> ahead of the absolute fallback 1024x768 mode. That is if the user has
> specified a mode that we create as a fallback, we do not need to add a
> second unused fallback mode.
>
> Fixes regression from
>
> commit eaf99c749d43ae74ac7ffece5512f3c73f01dfd2
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date: Wed Aug 6 10:08:32 2014 +0200
>
> drm: Perform cmdline mode parsing during connector initialisation
>
> that breaks HDMI output on BeagleBone Black with LG TV (model 19LS4R-ZA).
>
> Reported-by: Radek Dostál <rd@radekdostal.com>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Radek Dostál <rd@radekdostal.com>
> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: dri-devel@lists.freedesktop.org
> Cc: Julia Lemire <jlemire@matrox.com>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: stable@vger.kernel.org
NAKed-by: Radek Dostál <rd@radekdostal.com>
sorry to let you know, but this patch does NOT work :( Attached is the
original.patch which you provided previously and it did work, but one of
the last minute changes had to break it :(
I hope you will find the issue soon,
Radek
[-- Attachment #2: original.patch --]
[-- Type: text/x-patch, Size: 1709 bytes --]
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
index 6350387..2168be0 100644
--- a/drivers/gpu/drm/drm_probe_helper.c
+++ b/drivers/gpu/drm/drm_probe_helper.c
@@ -79,13 +79,30 @@ drm_mode_validate_flag(const struct drm_display_mode *mode,
static int drm_helper_probe_add_cmdline_mode(struct drm_connector *connector)
{
+ struct drm_cmdline_mode *cmdline_mode;
struct drm_display_mode *mode;
- if (!connector->cmdline_mode.specified)
+ cmdline_mode = &connector->cmdline_mode;
+ if (!cmdline_mode->specified)
return 0;
+ /* Only add a GTF mode if we find no matching probed modes */
+ list_for_each_entry(mode, &connector->probed_modes, head) {
+ if (mode->hdisplay != cmdline_mode->xres ||
+ mode->vdisplay != cmdline_mode->yres)
+ continue;
+
+ if (cmdline_mode->refresh_specified) {
+ if (mode->vrefresh != cmdline_mode->refresh)
+ continue;
+ }
+
+ return 0;
+ }
+
+
mode = drm_mode_create_from_cmdline_mode(connector->dev,
- &connector->cmdline_mode);
+ cmdline_mode);
if (mode == NULL)
return 0;
@@ -195,7 +212,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);
next prev parent reply other threads:[~2015-04-20 13:06 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-19 21:05 [PATCH] drm: fb_helper: prefer to use mode, which is not DRM_MODE_TYPE_USERDEF Radek Dostal
2015-04-20 5:26 ` [PATCHv2] " Radek Dostal
2015-04-20 9:09 ` Chris Wilson
2015-04-20 9:09 ` Chris Wilson
2015-04-20 9:36 ` Radek Dostál
2015-04-20 9:46 ` Chris Wilson
2015-04-20 9:58 ` Chris Wilson
2015-04-20 9:58 ` Chris Wilson
2015-04-20 10:38 ` Radek Dostál
2015-04-20 10:48 ` Chris Wilson
2015-04-20 10:48 ` Chris Wilson
2015-04-20 10:57 ` Radek Dostál
2015-04-20 11:00 ` Chris Wilson
2015-04-20 11:20 ` Radek Dostál
2015-04-20 11:44 ` Chris Wilson
2015-04-20 12:00 ` Radek Dostál
2015-04-20 12:26 ` [PATCH] drm: Only create a cmdline mode if no probed modes match Chris Wilson
2015-04-20 13:06 ` Radek Dostál [this message]
2015-04-20 13:16 ` Chris Wilson
2015-04-20 13:28 ` [PATCH v2] " Chris Wilson
2015-04-20 13:41 ` Radek Dostál
2015-05-21 15:36 ` Chris Wilson
2015-05-21 15:36 ` Chris Wilson
2015-05-22 6:22 ` Jani Nikula
2015-05-22 6:22 ` Jani Nikula
2015-05-22 9:03 ` Ville Syrjälä
2015-05-22 9:03 ` Ville Syrjälä
2015-05-22 9:54 ` Chris Wilson
2015-05-22 9:54 ` Chris Wilson
2015-05-22 11:30 ` Ville Syrjälä
2015-05-22 11:30 ` Ville Syrjälä
2016-06-01 9:34 ` [PATCH v3] " Chris Wilson
2016-06-01 9:34 ` Chris Wilson
2016-06-01 9:43 ` Ville Syrjälä
2016-06-01 9:43 ` Ville Syrjälä
2016-06-01 9:46 ` Chris Wilson
2016-06-01 9:46 ` Chris Wilson
2016-06-01 9:47 ` Chris Wilson
2016-06-01 9:47 ` Chris Wilson
2016-06-01 9:56 ` Ville Syrjälä
2016-06-01 9:56 ` Ville Syrjälä
2016-06-01 9:50 ` [PATCH v4] " Chris Wilson
2016-06-01 9:50 ` Chris Wilson
2016-06-01 13:19 ` Alex Deucher
2016-06-01 13:19 ` Alex Deucher
2016-06-02 9:38 ` Radek Dostál
2016-06-02 10:52 ` Chris Wilson
2016-06-02 10:52 ` Chris Wilson
2016-06-02 11:30 ` Ville Syrjälä
2016-06-02 11:30 ` Ville Syrjälä
2016-06-02 11:35 ` Radek Dostál
2016-06-02 11:35 ` Radek Dostál
2016-06-02 13:12 ` Daniel Vetter
2016-06-02 13:12 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5534F9D6.4080908@radekdostal.com \
--to=rd@radekdostal.com \
--cc=airlied@redhat.com \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=jbarnes@virtuousgeek.org \
--cc=jlemire@matrox.com \
--cc=stable@vger.kernel.org \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.