[PATCH] drm: Only create a cmdline mode if no probed modes match

Chris Wilson chris at chris-wilson.co.uk
Mon Apr 20 06:16:02 PDT 2015


On Mon, Apr 20, 2015 at 03:06:30PM +0200, Radek Dostál wrote:
> 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 at 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 at radekdostal.com>
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: Radek Dostál <rd at radekdostal.com>
> > Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> > Cc: dri-devel at lists.freedesktop.org
> > Cc: Julia Lemire <jlemire at matrox.com>
> > Cc: Dave Airlie <airlied at redhat.com>
> > Cc: stable at vger.kernel.org
> 
> NAKed-by: Radek Dostál <rd at 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 :(

The original patch relied on the MODE_UNVERIFIED being retained by the
unwanted cmdline mode. This patch relies on overwriting the existing
unwanted mode->status with MODE_BAD by drm_mode_connector_list_update().
I made that change because the first version would have deleted all user
modes and not just our fake cmdline mode.

Alternatively we could do a loop over the old modes, remove the fake
then loops over probed modes and only add if it we don't match. Let's
try that...
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the dri-devel mailing list