From: Daniel Vetter <daniel@ffwll.ch> To: ville.syrjala@linux.intel.com Cc: dri-devel@lists.freedesktop.org, stable@vger.kernel.org Subject: Re: [PATCH 1/7] drm: Don't overwrite UNVERFIED mode status to OK Date: Fri, 4 Dec 2015 09:17:28 +0100 [thread overview] Message-ID: <20151204081728.GX10243@phenom.ffwll.local> (raw) In-Reply-To: <1449177255-9515-2-git-send-email-ville.syrjala@linux.intel.com> On Thu, Dec 03, 2015 at 11:14:09PM +0200, ville.syrjala@linux.intel.com wrote: > From: Ville Syrj�l� <ville.syrjala@linux.intel.com> > > The way the mode probing works is this: > 1. All modes currently on the mode list are marked as UNVERIFIED > 2. New modes are on the probed_modes list (they start with > status OK) > 3. Modes are moved from the probed_modes list to the actual > mode list. If a mode already on the mode list is deemed > to match one of the probed modes, the duplicate is dropped > and the mode status updated to OK. After this the > probed_modes list will be empty. > 4. All modes on the mode list are verified to not violate any > constraints. Any that do are marked as such. > 5. Any mode left with a non-OK status is pruned from the list, > with an appropriate debug message. This would look really pretty as a kerneldoc addition to probe_single_connector(). And with asciidoc we can even do pretty ordered lists like these. Can you please follow-up with a patch for that? > > What all this means is that any mode on the original list that > didn't have a duplicate on the probed_modes list, should be left > with status UNVERFIED (or previously could have been left with > some other status, but never OK). > > I broke that in > commit 05acaec334fc ("drm: Reorganize probed mode validation") > by always assigning something to the mode->status during the validation > step. So any mode from the old list that still passed the validation > would be left on the list with status OK in the end. > > Fix this by not doing the basic mode validation unless the mode > already has status OK (meaning it came from the probed_modes list, > or at least a duplicate of it was on that list). This way we will > correctly prune away any mode from the old mode list that didn't > appear on the probed_modes list. > > Cc: stable@vger.kernel.org > Cc: Adam Jackson <ajax@redhat.com> > Fixes: 05acaec334fc ("drm: Reorganize probed mode validation") > Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_probe_helper.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > index 94ba39e34299..b9b3bd9349ff 100644 > --- a/drivers/gpu/drm/drm_probe_helper.c > +++ b/drivers/gpu/drm/drm_probe_helper.c > @@ -229,7 +229,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); > -- > 2.4.10 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch> To: ville.syrjala@linux.intel.com Cc: dri-devel@lists.freedesktop.org, stable@vger.kernel.org Subject: Re: [PATCH 1/7] drm: Don't overwrite UNVERFIED mode status to OK Date: Fri, 4 Dec 2015 09:17:28 +0100 [thread overview] Message-ID: <20151204081728.GX10243@phenom.ffwll.local> (raw) In-Reply-To: <1449177255-9515-2-git-send-email-ville.syrjala@linux.intel.com> On Thu, Dec 03, 2015 at 11:14:09PM +0200, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > The way the mode probing works is this: > 1. All modes currently on the mode list are marked as UNVERIFIED > 2. New modes are on the probed_modes list (they start with > status OK) > 3. Modes are moved from the probed_modes list to the actual > mode list. If a mode already on the mode list is deemed > to match one of the probed modes, the duplicate is dropped > and the mode status updated to OK. After this the > probed_modes list will be empty. > 4. All modes on the mode list are verified to not violate any > constraints. Any that do are marked as such. > 5. Any mode left with a non-OK status is pruned from the list, > with an appropriate debug message. This would look really pretty as a kerneldoc addition to probe_single_connector(). And with asciidoc we can even do pretty ordered lists like these. Can you please follow-up with a patch for that? > > What all this means is that any mode on the original list that > didn't have a duplicate on the probed_modes list, should be left > with status UNVERFIED (or previously could have been left with > some other status, but never OK). > > I broke that in > commit 05acaec334fc ("drm: Reorganize probed mode validation") > by always assigning something to the mode->status during the validation > step. So any mode from the old list that still passed the validation > would be left on the list with status OK in the end. > > Fix this by not doing the basic mode validation unless the mode > already has status OK (meaning it came from the probed_modes list, > or at least a duplicate of it was on that list). This way we will > correctly prune away any mode from the old mode list that didn't > appear on the probed_modes list. > > Cc: stable@vger.kernel.org > Cc: Adam Jackson <ajax@redhat.com> > Fixes: 05acaec334fc ("drm: Reorganize probed mode validation") > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_probe_helper.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > index 94ba39e34299..b9b3bd9349ff 100644 > --- a/drivers/gpu/drm/drm_probe_helper.c > +++ b/drivers/gpu/drm/drm_probe_helper.c > @@ -229,7 +229,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); > -- > 2.4.10 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
next prev parent reply other threads:[~2015-12-04 8:17 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-12-03 21:14 [PATCH 0/7] drm: Fix mode pruning ville.syrjala 2015-12-03 21:14 ` [PATCH 1/7] drm: Don't overwrite UNVERFIED mode status to OK ville.syrjala 2015-12-04 8:17 ` Daniel Vetter [this message] 2015-12-04 8:17 ` Daniel Vetter 2015-12-04 12:23 ` Ville Syrjälä 2015-12-04 12:23 ` Ville Syrjälä 2015-12-10 21:07 ` Ville Syrjälä 2015-12-10 21:07 ` Ville Syrjälä 2015-12-03 21:14 ` [PATCH 2/7] drm: Rename MODE_UNVERIFIED to MODE_STALE ville.syrjala 2015-12-04 8:18 ` Daniel Vetter 2015-12-10 20:39 ` [PATCH v2 " ville.syrjala 2015-12-03 21:14 ` [PATCH 3/7] drm: Reindent enum drm_mode_status ville.syrjala 2015-12-04 8:18 ` Daniel Vetter 2015-12-04 9:15 ` Ville Syrjälä 2015-12-03 21:14 ` [PATCH 4/7] drm: Flatten drm_mode_connector_list_update() a bit ville.syrjala 2015-12-04 8:19 ` Daniel Vetter 2015-12-03 21:14 ` [PATCH 5/7] drm: Only merge mode type bits between new probed modes ville.syrjala 2015-12-04 8:29 ` Daniel Vetter 2015-12-04 13:13 ` [PATCH v2 " ville.syrjala 2015-12-03 21:14 ` [PATCH 6/7] drm: Drop drm_helper_probe_single_connector_modes_nomerge() ville.syrjala 2015-12-04 8:30 ` Daniel Vetter 2015-12-03 21:14 ` [PATCH 7/7] drm/sti: Drop bogus drm_mode_sort() call ville.syrjala 2015-12-04 8:31 ` Daniel Vetter 2015-12-11 8:34 ` [PATCH 0/7] drm: Fix mode pruning 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=20151204081728.GX10243@phenom.ffwll.local \ --to=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --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: linkBe 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.