From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com ([134.134.136.24]:3156 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751613AbbLJVHg (ORCPT ); Thu, 10 Dec 2015 16:07:36 -0500 Date: Thu, 10 Dec 2015 23:07:32 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Daniel Vetter Cc: dri-devel@lists.freedesktop.org, stable@vger.kernel.org Subject: Re: [PATCH 1/7] drm: Don't overwrite UNVERFIED mode status to OK Message-ID: <20151210210732.GD4437@intel.com> References: <1449177255-9515-1-git-send-email-ville.syrjala@linux.intel.com> <1449177255-9515-2-git-send-email-ville.syrjala@linux.intel.com> <20151204081728.GX10243@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20151204081728.GX10243@phenom.ffwll.local> Sender: stable-owner@vger.kernel.org List-ID: On Fri, Dec 04, 2015 at 09:17:28AM +0100, Daniel Vetter wrote: > On Thu, Dec 03, 2015 at 11:14:09PM +0200, ville.syrjala@linux.intel.com wrote: > > From: Ville Syrj�l� > > > > 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 > > Fixes: 05acaec334fc ("drm: Reorganize probed mode validation") > > Signed-off-by: Ville Syrj�l� > > Reviewed-by: Daniel Vetter Testcase: igt/kms_force_connector_basic/prune-stale-modes Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93332 > > > --- > > 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 -- Ville Syrj�l� Intel OTC From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/7] drm: Don't overwrite UNVERFIED mode status to OK Date: Thu, 10 Dec 2015 23:07:32 +0200 Message-ID: <20151210210732.GD4437@intel.com> References: <1449177255-9515-1-git-send-email-ville.syrjala@linux.intel.com> <1449177255-9515-2-git-send-email-ville.syrjala@linux.intel.com> <20151204081728.GX10243@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 598066EC5B for ; Thu, 10 Dec 2015 13:07:35 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151204081728.GX10243@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: stable@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBEZWMgMDQsIDIwMTUgYXQgMDk6MTc6MjhBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIERlYyAwMywgMjAxNSBhdCAxMToxNDowOVBNICswMjAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IFRoZSB3YXkgdGhlIG1vZGUg cHJvYmluZyB3b3JrcyBpcyB0aGlzOgo+ID4gMS4gQWxsIG1vZGVzIGN1cnJlbnRseSBvbiB0aGUg bW9kZSBsaXN0IGFyZSBtYXJrZWQgYXMgVU5WRVJJRklFRAo+ID4gMi4gTmV3IG1vZGVzIGFyZSBv biB0aGUgcHJvYmVkX21vZGVzIGxpc3QgKHRoZXkgc3RhcnQgd2l0aAo+ID4gICAgc3RhdHVzIE9L KQo+ID4gMy4gTW9kZXMgYXJlIG1vdmVkIGZyb20gdGhlIHByb2JlZF9tb2RlcyBsaXN0IHRvIHRo ZSBhY3R1YWwKPiA+ICAgIG1vZGUgbGlzdC4gSWYgYSBtb2RlIGFscmVhZHkgb24gdGhlIG1vZGUg bGlzdCBpcyBkZWVtZWQKPiA+ICAgIHRvIG1hdGNoIG9uZSBvZiB0aGUgcHJvYmVkIG1vZGVzLCB0 aGUgZHVwbGljYXRlIGlzIGRyb3BwZWQKPiA+ICAgIGFuZCB0aGUgbW9kZSBzdGF0dXMgdXBkYXRl ZCB0byBPSy4gQWZ0ZXIgdGhpcyB0aGUKPiA+ICAgIHByb2JlZF9tb2RlcyBsaXN0IHdpbGwgYmUg ZW1wdHkuCj4gPiA0LiBBbGwgbW9kZXMgb24gdGhlIG1vZGUgbGlzdCBhcmUgdmVyaWZpZWQgdG8g bm90IHZpb2xhdGUgYW55Cj4gPiAgICBjb25zdHJhaW50cy4gQW55IHRoYXQgZG8gYXJlIG1hcmtl ZCBhcyBzdWNoLgo+ID4gNS4gQW55IG1vZGUgbGVmdCB3aXRoIGEgbm9uLU9LIHN0YXR1cyBpcyBw cnVuZWQgZnJvbSB0aGUgbGlzdCwKPiA+ICAgIHdpdGggYW4gYXBwcm9wcmlhdGUgZGVidWcgbWVz c2FnZS4KPiAKPiBUaGlzIHdvdWxkIGxvb2sgcmVhbGx5IHByZXR0eSBhcyBhIGtlcm5lbGRvYyBh ZGRpdGlvbiB0bwo+IHByb2JlX3NpbmdsZV9jb25uZWN0b3IoKS4gQW5kIHdpdGggYXNjaWlkb2Mg d2UgY2FuIGV2ZW4gZG8gcHJldHR5IG9yZGVyZWQKPiBsaXN0cyBsaWtlIHRoZXNlLiBDYW4geW91 IHBsZWFzZSBmb2xsb3ctdXAgd2l0aCBhIHBhdGNoIGZvciB0aGF0Pwo+IAo+ID4gCj4gPiBXaGF0 IGFsbCB0aGlzIG1lYW5zIGlzIHRoYXQgYW55IG1vZGUgb24gdGhlIG9yaWdpbmFsIGxpc3QgdGhh dAo+ID4gZGlkbid0IGhhdmUgYSBkdXBsaWNhdGUgb24gdGhlIHByb2JlZF9tb2RlcyBsaXN0LCBz aG91bGQgYmUgbGVmdAo+ID4gd2l0aCBzdGF0dXMgVU5WRVJGSUVEIChvciBwcmV2aW91c2x5IGNv dWxkIGhhdmUgYmVlbiBsZWZ0IHdpdGgKPiA+IHNvbWUgb3RoZXIgc3RhdHVzLCBidXQgbmV2ZXIg T0spLgo+ID4gCj4gPiBJIGJyb2tlIHRoYXQgaW4KPiA+IGNvbW1pdCAwNWFjYWVjMzM0ZmMgKCJk cm06IFJlb3JnYW5pemUgcHJvYmVkIG1vZGUgdmFsaWRhdGlvbiIpCj4gPiBieSBhbHdheXMgYXNz aWduaW5nIHNvbWV0aGluZyB0byB0aGUgbW9kZS0+c3RhdHVzIGR1cmluZyB0aGUgdmFsaWRhdGlv bgo+ID4gc3RlcC4gU28gYW55IG1vZGUgZnJvbSB0aGUgb2xkIGxpc3QgdGhhdCBzdGlsbCBwYXNz ZWQgdGhlIHZhbGlkYXRpb24KPiA+IHdvdWxkIGJlIGxlZnQgb24gdGhlIGxpc3Qgd2l0aCBzdGF0 dXMgT0sgaW4gdGhlIGVuZC4KPiA+IAo+ID4gRml4IHRoaXMgYnkgbm90IGRvaW5nIHRoZSBiYXNp YyBtb2RlIHZhbGlkYXRpb24gdW5sZXNzIHRoZSBtb2RlCj4gPiBhbHJlYWR5IGhhcyBzdGF0dXMg T0sgKG1lYW5pbmcgaXQgY2FtZSBmcm9tIHRoZSBwcm9iZWRfbW9kZXMgbGlzdCwKPiA+IG9yIGF0 IGxlYXN0IGEgZHVwbGljYXRlIG9mIGl0IHdhcyBvbiB0aGF0IGxpc3QpLiBUaGlzIHdheSB3ZSB3 aWxsCj4gPiBjb3JyZWN0bHkgcHJ1bmUgYXdheSBhbnkgbW9kZSBmcm9tIHRoZSBvbGQgbW9kZSBs aXN0IHRoYXQgZGlkbid0Cj4gPiBhcHBlYXIgb24gdGhlIHByb2JlZF9tb2RlcyBsaXN0Lgo+ID4g Cj4gPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+ID4gQ2M6IEFkYW0gSmFja3NvbiA8YWph eEByZWRoYXQuY29tPgo+ID4gRml4ZXM6IDA1YWNhZWMzMzRmYyAoImRybTogUmVvcmdhbml6ZSBw cm9iZWQgbW9kZSB2YWxpZGF0aW9uIikKPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gUmV2aWV3ZWQtYnk6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpUZXN0Y2FzZTogaWd0L2ttc19mb3Jj ZV9jb25uZWN0b3JfYmFzaWMvcHJ1bmUtc3RhbGUtbW9kZXMKQnVnemlsbGE6IGh0dHBzOi8vYnVn cy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMzMyCgo+IAo+ID4gLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyB8IDMgKystCj4gPiAgMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJvYmVfaGVscGVyLmMKPiA+IGluZGV4IDk0YmEzOWUzNDI5OS4uYjliM2JkOTM0OWZmIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ID4gQEAgLTIyOSw3ICsyMjks OCBAQCBzdGF0aWMgaW50IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc19t ZXJnZV9iaXRzKHN0cnVjdCBkcm1fY29ubmVjdAo+ID4gIAkJbW9kZV9mbGFncyB8PSBEUk1fTU9E RV9GTEFHXzNEX01BU0s7Cj4gPiAgCj4gPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkobW9kZSwgJmNv bm5lY3Rvci0+bW9kZXMsIGhlYWQpIHsKPiA+IC0JCW1vZGUtPnN0YXR1cyA9IGRybV9tb2RlX3Zh bGlkYXRlX2Jhc2ljKG1vZGUpOwo+ID4gKwkJaWYgKG1vZGUtPnN0YXR1cyA9PSBNT0RFX09LKQo+ ID4gKwkJCW1vZGUtPnN0YXR1cyA9IGRybV9tb2RlX3ZhbGlkYXRlX2Jhc2ljKG1vZGUpOwo+ID4g IAo+ID4gIAkJaWYgKG1vZGUtPnN0YXR1cyA9PSBNT0RFX09LKQo+ID4gIAkJCW1vZGUtPnN0YXR1 cyA9IGRybV9tb2RlX3ZhbGlkYXRlX3NpemUobW9kZSwgbWF4WCwgbWF4WSk7Cj4gPiAtLSAKPiA+ IDIuNC4xMAo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gClZpbGxl IFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK