All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris@chris-wilson.co.uk>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org,
	"Radek Dostál" <rd@radekdostal.com>,
	"Jesse Barnes" <jbarnes@virtuousgeek.org>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Julia Lemire" <jlemire@matrox.com>,
	"Dave Airlie" <airlied@redhat.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH v3] drm: Only create a cmdline mode if no probed modes match
Date: Wed, 1 Jun 2016 10:47:51 +0100	[thread overview]
Message-ID: <20160601094751.GD10319@nuc-i3427.alporthouse.com> (raw)
In-Reply-To: <20160601094353.GC4329@intel.com>

On Wed, Jun 01, 2016 at 12:43:53PM +0300, Ville Syrj�l� wrote:
> On Wed, Jun 01, 2016 at 10:34:36AM +0100, 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
> > new 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
> > mode rather the native mode during fb_helper->inital_config() and so
> > if the fake mode is invalid 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, or similarly for
> > CVT.
> > 
> > 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).
> > 
> > v2: Explicitly delete our earlier cmdline mode
> > v3: Mode pruning should now be sufficient to delete stale cmdline modes
> > 
> > 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
> > ---
> >  drivers/gpu/drm/drm_probe_helper.c | 19 +++++++++++++++++--
> >  1 file changed, 17 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> > index 0329080d7f7c..a705ed12c062 100644
> > --- a/drivers/gpu/drm/drm_probe_helper.c
> > +++ b/drivers/gpu/drm/drm_probe_helper.c
> > @@ -82,13 +82,28 @@ 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 &&
> > +		    mode->vrefresh != cmdline_mode->refresh)
> 
> I think we might not have .vrefresh populated for the probed modes.
> We update .vrefresh only for the modes left on the real mode list in the
> end.

Or drm_mode_vrefresh() ?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

WARNING: multiple messages have this Message-ID (diff)
From: Chris Wilson <chris@chris-wilson.co.uk>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org,
	"Radek Dostál" <rd@radekdostal.com>,
	"Jesse Barnes" <jbarnes@virtuousgeek.org>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Julia Lemire" <jlemire@matrox.com>,
	"Dave Airlie" <airlied@redhat.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH v3] drm: Only create a cmdline mode if no probed modes match
Date: Wed, 1 Jun 2016 10:47:51 +0100	[thread overview]
Message-ID: <20160601094751.GD10319@nuc-i3427.alporthouse.com> (raw)
In-Reply-To: <20160601094353.GC4329@intel.com>

On Wed, Jun 01, 2016 at 12:43:53PM +0300, Ville Syrjälä wrote:
> On Wed, Jun 01, 2016 at 10:34:36AM +0100, 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
> > new 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
> > mode rather the native mode during fb_helper->inital_config() and so
> > if the fake mode is invalid 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, or similarly for
> > CVT.
> > 
> > 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).
> > 
> > v2: Explicitly delete our earlier cmdline mode
> > v3: Mode pruning should now be sufficient to delete stale cmdline modes
> > 
> > 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
> > ---
> >  drivers/gpu/drm/drm_probe_helper.c | 19 +++++++++++++++++--
> >  1 file changed, 17 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> > index 0329080d7f7c..a705ed12c062 100644
> > --- a/drivers/gpu/drm/drm_probe_helper.c
> > +++ b/drivers/gpu/drm/drm_probe_helper.c
> > @@ -82,13 +82,28 @@ 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 &&
> > +		    mode->vrefresh != cmdline_mode->refresh)
> 
> I think we might not have .vrefresh populated for the probed modes.
> We update .vrefresh only for the modes left on the real mode list in the
> end.

Or drm_mode_vrefresh() ?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

  parent reply	other threads:[~2016-06-01  9:47 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
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 [this message]
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=20160601094751.GD10319@nuc-i3427.alporthouse.com \
    --to=chris@chris-wilson.co.uk \
    --cc=airlied@redhat.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jbarnes@virtuousgeek.org \
    --cc=jlemire@matrox.com \
    --cc=rd@radekdostal.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.