From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v3] drm/i915/dp: Do not reset detect_done flag in intel_dp_detect Date: Thu, 19 Jan 2017 11:38:56 -0800 Message-ID: <20170119193855.GA30684@intel.com> References: <1483082068-5833-1-git-send-email-dhinakaran.pandiyan@intel.com> <20170117174041.GB15796@intel.com> <20170119134234.GY31595@intel.com> <20170119190101.GA30494@intel.com> <20170119192636.GZ31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C71B6E104 for ; Thu, 19 Jan 2017 19:40:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170119192636.GZ31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Ander Conselvande Oliveira , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMTksIDIwMTcgYXQgMDk6MjY6MzZQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgSmFuIDE5LCAyMDE3IGF0IDExOjAxOjAxQU0gLTA4MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBPbiBUaHUsIEphbiAxOSwgMjAxNyBhdCAwMzo0MjozNFBNICsw MjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFR1ZSwgSmFuIDE3LCAyMDE3IGF0 IDA5OjQwOjQyQU0gLTA4MDAsIE1hbmFzaSBOYXZhcmUgd3JvdGU6Cj4gPiA+ID4gSSBoYXZlIHZl cmlmaWVkIHRoaXMgcGF0Y2ggd2l0aCB0aGUgbGF0ZXN0IGRybS10aXAgYW5kIGl0IGlzIGFsc28K PiA+ID4gPiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhlIGxpbmsgZ2V0cyBwcm9w ZXJseSByZXRyYWluZWQKPiA+ID4gPiBhZnRlciBsaW5rLXN0YXR1cyBpcyBCQUQgYW5kIGFmdGVy IGFuZXcgbW9kZXNldCBpcyB0cmlnZ2VyZWQgYnkKPiA+ID4gPiB1c2Vyc3BhY2UuIFdpdGhvdXQg dGhpcyBwYXRjaCwgc2luY2UgaW50ZWxfZHBfbG9uZ19wdWxzZSBnZXRzIGNhbGxlZAo+ID4gPiA+ IGl0IHJlc2V0cyB0aGUgbGluayBmYWlsdXJlIHZhbHVlcyBhbmQgbGluayByZXRyYWluaW5nIGRv ZXMgbm90IGhhcHBlbgo+ID4gPiA+IGF0IGxvd2VyIGxpbmsgcmF0ZXMuCj4gPiA+IAo+ID4gPiBX aHkgYXJlIHlvdSByZXNldHRpbmcgdGhlIGZhaWx1cmUgdmFsdWVzIGluIHRoaXMgZnVuY3Rpb24/ IFlvdSBzaG91bGQKPiA+ID4gb25seSBkbyB0aGF0IHdoZW4gYSBsb25nIHB1bHNlIGlzIGFjdHVh bGx5IGRldGVjdGVkIElNTyAoYW5kIHllcywgCj4gPiA+IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIGlu dGVsX2RwX2xvbmdfcHVsc2UoKSBuYW1lIGlzIHByZXR0eSBtdWNoIHdyb25nCj4gPiA+IG5vdyku Cj4gPiA+Cj4gPiAKPiA+IFllcyB0aGUgdmFsdWVzIGZvciBsaW5rIHJhdGUgbmQgbGFuZSBjb3Vu dCBnZXQgc2V0IHRvIHRoZSBpbnRlbF9kcF9tYXhfbGlua19idygpCj4gPiBhbmQgZHJtX2RwX21h eF9sYW5lX2NvdW50KCkgaW4gaW50ZWxfZHBfbG9uZ19wdWxzZSgpIGFzc3VtaW5nIHRoYXQgdGhp cyBmdW5jdGlvbiB3b3VsZAo+ID4gZ2V0IGNhbGxlZCBvbiBob3RwbHVnIGFuZCB0aGF0IHdlIG5l ZWQgcmVyZWFkIHRoZSBkcGNkIHJlZ2lzdGVycy4gU28gc2V0dGluZyB0aGVzZSB0byBtYXggdmFs dWVzCj4gPiBtZWFuIHRoYXQgd2UgaGF2ZSBsb3N0IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUg bGluayByYXRlIGFuZCBsYW5lIGNvdW50IGF0IHdoaWNoIGxpbmsgdHJhaW5pbmcgZmFpbGVkLgo+ ID4gCj4gPiBJZiBkZXRlY3RfZG9uZSBpcyByZXNldCBpbiBpbnRlbF9kcF9kZXRlY3QoKSByaWdo dCBhZnRlciBjYWxsaW5nIGludGVsX2RwX2xvbmdfcHVsc2UoKSB3aGljaCBpcyBjbGVhcmx5IGEg YnVnCj4gPiB0aGVuIGl0IGNhbGxzIHRoZSBpbnRlbF9kcF9sb25nX3B1bHNlKCkgZHVyaW5nIG1v ZGUgZW51bWVyYXRpb24gYmVmb3JlIHRoZSBtb2Rlc2V0IGFuZCBpdCBuZXZlciByZXRyYWlucyBh dCB0aGUgCj4gPiBsb3dlciB2YWx1ZXMgc2luY2UgdGhlIG1heCBsaW5rIHJhdGUvbGFuZSBjb3Vu dCBnZXQgb3ZlcndyaXR0ZW4gaW4gaW50ZWxfZHBfbG9uZ19wdWxzZSgpLgo+ID4gU28gaXQgaXMg YWJzb2x1dGVseSBuZWNlc3NhcnkgdG8gbm90IHJlc2V0IGRldGVjdF9kb25lIGZsYWcgaGVyZSBp biBpbnRlbF9kcF9kZXRlY3QoKQo+IAo+IE5vLiBXaGF0IHlvdSdyZSBhc2tpbmcgZm9yIGlzIGEg Y2hhbmdlIGluIGJlaGF2aW91ciAodG8gY2FsbAo+IGludGVsX2RwX2xvbmdfcHVsc2UoKSBmcm9t IC0+ZGV0ZWN0KCkgb25seSBpZiBpdCB3YXMganVzdCBwcmVjZWRlZCBieSBhbgo+IGFjdHVhbCBs b25nIHB1bHNlKS4gVGhhdCB3YXMgbmV2ZXIgaG93IHRoaXMgY29kZSB3b3JrZWQuIFRoZSBwb2lu dCBvZgo+IHRoZSBmbGFnIHdhcyB0byBhdm9pZCBjYWxsaW5nIGl0IHR3aWNlIHdoZW4gcHJvY2Vz c2luZyB0aGUgSFBEIHNpbmNlIGl0Cj4gd2FzIGRpcmVjdGx5IGNhbGxlZCBmcm9tIGludGVsX2Rw X2hwZF9wdWxzZSgpIGFuZCB0aGVuIGFnYWluIGZyb20KPiAtPmRldGVjdCgpLiBTaW5jZSB3ZSBu byBsb25nZXIgY2FsbCBpdCBkaXJlY3RseSBmcm9tCj4gaW50ZWxfZHBfaHBkX3B1bHNlKCkgdGhl IGZsYWcgaXMgaW4gZmFjdCB1c2VsZXNzLgo+CgpObyBJIHRoaW5rIHRoZXJlIGlzIHNvbWUgY29u ZnVzaW9uLiBJIGFtIG5vdCBhc2tpbmcgdGhlIGNoYW5nZSBpbiBiZWhhdmlvdXIuIEkgZG9udAp3 YW50IHRvIGNhbGwgaW50ZWxfZHBfbG9uZ19wdWxzZSBmcm9tIC0+ZGV0ZWN0KCkgb25seSBpZiBp dCB3YXMganVzdCBwcmVjZWVkZWQgYnkgYW4gYWN0dWFsIGxvbmcgcHVsc2UuCkkgd2FudCB0byBh dm9pZCBjYWxsaW5nIGl0IHR3aWNlIGFuZCB3aGljaCBleGFjdGx5IHdhcyB0aGUgcG9pbnQgb2Yg YWRkaW5nIHRoYXQgZmxhZy4gVGhlIGxvbmcgcHVsc2Ugc2hvdWxkCmJlIGNhbGxlZCBvbmx5IHdo ZW4gdGhlIGZ1bGwgZGV0ZWN0IGlzIG5vdCBkb25lLCB3ZSBzaG91bGRudCBiZSBkb2luZyBmdWxs IGRldGVjdCB0d2ljZS4gSW4gaW50ZWxfZHBfaHBkX3B1bHNlKCkKd2UgZG8gc2V0IHRoZSBkZXRl Y3RfZG9uZSBmbGFnIHRvIGZhbHNlIGFuZCBpdCBkb2VzIGEgZnVsbCBkZXRlY3QgdGhyb3VnaCAt PmRldGVjdCgpLiBCdXQgdGhlbgpmb3IgbW9kZSBlbnVtZXJhdGlvbiwgd2UgZG8gbm90IG5lZWQg dG8gZG8gYSBmdWxsIGRldGVjdCBzbyB0aGF0IC0+ZGV0ZWN0KCkgY2FsbCBzaG91bGQgYWN0dWFs bHkgbm90CmNhbGwgaW50ZWxfZHBfbG9uZ19wdWxzZSBiZWNhdXNlIHRoYXQgaXMgZXhhY3RseSB0 aGUgYmVoYXZvdXIgd2Ugd2VyZSB0cnlpbmcgdG8gYXZvaWQgKGNhbGxpbmcgaXQgdHdpY2UpCgpN YW5hc2kgCj4gV2hpbGUgdGhlIGNoYW5nZSB5b3UgYXNrIGZvciBtYXkgYmUgZGVzaXJhYmxlLCBo aXN0b3J5IGhhcyBzaG93bgo+IHRoYXQgdGhlIERQIGNvZGUgaXMgdmVyeSBmcmFnaWxlLCBzbyBJ IGRvbid0IHRoaW5rIHdlIHNob3VsZCBtYWtlCj4gdGhlIGxpbmsgc3RhdGUgcHJvcGVydHkgZGVw ZW5kIG9uIHNvbWV0aGluZyB0aGF0IG1heSBuZWVkIHRvIGJlCj4gcmV2ZXJ0ZWQgaWYgYSByZWdy ZXNzaW9uIGNyb3BzIHVwLiBBbmQgc28gSSB0aGluayB5b3Ugc2hvdWxkIGp1c3QKPiBjaGFuZ2Ug eW91ciBuZXcgY29kZSB0byB3b3JrIHdpdGggdGhlIGV4aXN0aW5nIHNjaGVtZS4gV2UgY2FuIHB1 c2gKPiB0aGUgZGV0ZWN0X2RvbmUgb3B0aW1pemF0aW9uIGluIGFmdGVyd2FyZHMgc2luY2Ugd2Ug c2hvdWxkIHRoZW4gYmUKPiBhYmxlIHRvIHJldmVydCBpdCB3aXRob3V0IGhhdmluZyB0byByZXZl cnQgZXZlcnl0aGluZyByZWxhdGVkIHRvCj4gdGhlIGxpbmsgc3RhdHVzIHByb3BlcnR5Lgo+IAo+ ID4gCj4gPiBNYW5hc2kgCj4gPiA+ID4gCj4gPiA+ID4gVmlsbGUvSmFuaSBjb3VsZCB5b3UgcGxl YXNlIHJldmlldyB0aGlzIHBhdGNoPwo+ID4gPiA+IFRoaSBpcyBkZWZpbml0ZWx5IGEgYnVnIGlu IHRoZSBleGlzdGluZyBjb2RlYmFzZSBhbmQgd2UgbmVlZCB0byBnZXQgdGhpcyBtZXJnZWQKPiA+ ID4gPiBzb29uIHRvIGdldCBpdCBmaXhlZC4KPiA+ID4gPiAKPiA+ID4gPiBSZWdhcmRzCj4gPiA+ ID4gTWFuYXNpCj4gPiA+ID4gCj4gPiA+ID4gT24gVGh1LCBEZWMgMjksIDIwMTYgYXQgMTE6MTQ6 MjhQTSAtMDgwMCwgRGhpbmFrYXJhbiBQYW5kaXlhbiB3cm90ZToKPiA+ID4gPiA+IEZyb206ICJO YXZhcmUsIE1hbmFzaSBEIiA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+ID4gPiA+IAo+ ID4gPiA+ID4gVGhlIGRldGVjdF9kb25lIGZsYWcgd2FzIGludHJvZHVjZWQgaW4gdGhlICdjb21t aXQgN2QyM2UzYzM3YmIzCj4gPiA+ID4gPiAoImRybS9pOTE1OiBDbGVhbmluZyB1cCBpbnRlbF9k cF9ocGRfcHVsc2UiKScgaW4gb3JkZXIgdG8gYXZvaWQgbXVsdGlwbGUKPiA+ID4gPiA+IGRldGVj dHMgb24gaG90cGx1ZyB3aGVyZSBpbnRlbF9kcF9sb25nX3B1bHNlKCkgd2FzIGNhbGxlZCBmcm9t IEhQRCBoYW5kbGVyCj4gPiA+ID4gPiBhcyB3ZWxsIGFzIGludGVsX2RwX2RldGVjdCgpLiBMYXRl ciwgJ2NvbW1pdCAxMDE1ODExNjA5YzAKPiA+ID4gPiA+ICgiZHJtL2k5MTU6IE1vdmUgbG9uZyBo cGQgaGFuZGxpbmcgaW50byB0aGUgaG90cGx1ZyB3b3JrIiknIGRlZmVycmVkIGxvbmcKPiA+ID4g PiA+IGhwZCBoYW5kbGluZyB0byBob3RwbHVnIHdvcmsgdG8gYXZvaWQgaGFuZGxpbmcgaXQgdHdp Y2UuIEJ1dCwgcmVzZXR0aW5nIHRoZQo+ID4gPiA+ID4gZmxhZyBhZnRlciBsb25nIGhwZCBoYW5k bGluZyBsZWFkcyB0byB0aGUgY29kZSBiZWluZyBleGVjdXRlZCBhZ2FpbiBkdXJpbmcKPiA+ID4g PiA+IG1vZGUgZW51bWVyYXRpb24uCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNvLCBkbyBub3QgcmVz ZXQgdGhlIGRldGVjdF9kb25lIGZsYWcgdG8gRmFsc2UgaW4gaW50ZWxfZHBfZGV0ZWN0KCkuIFRo ZQo+ID4gPiA+ID4gZmxhZyBpcyByZXNldCBpbiBpbnRlbF9kcF9ocGRfcHVsc2UoKSB0byBhbGxv dyBhIGZ1bGwgZGV0ZWN0IGFuZCBzZXQgd2hlbgo+ID4gPiA+ID4gdGhlIGhvdHBsdWcgd29yayBk b2VzIGEgZnVsbCBEUENEIGRldGVjdC4gSG93ZXZlciBpZiAtPmRldGVjdCgpIGdldHMgY2FsbGVk Cj4gPiA+ID4gPiBkdXJpbmcgbW9kZSBlbnVtZXJhdGlvbiBhZnRlciBhIERQQ0QgZGV0ZWN0LCBy ZXR1cm4gdGhlIGNhY2hlZCBjb25uZWN0b3IKPiA+ID4gPiA+IHN0YXR1cy4KPiA+ID4gPiA+IAo+ ID4gPiA+ID4gUmVzZXR0aW5nIHRoZSBmbGFnIGluIHRoZSBlbmNvZGVyJ3MgcmVzZXQgY2FsbGJh Y2sgc2hvdWxkIHRha2UgY2FyZSBvZgo+ID4gPiA+ID4gaG90cGx1ZyBiZXR3ZWVuIHN1c3BlbmQv cmVzdW1lLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiB2MjoKPiA+ID4gPiA+IEFsbG93IGZ1bGwgZGV0 ZWN0IGFmdGVyIGVuY29kZXIgcmVzZXQuIChWaWxsZSkKPiA+ID4gPiA+IFNldCB0aGUgZGV0ZWN0 X2RvbmUgZmxhZyBmb3IgY29ubmVjdG9yIGRpc2Nvbm5lY3RlZCBjYXNlIHRvby4gKERLKQo+ID4g PiA+ID4gQ29tbWl0IG1lc3NhZ2UgY2hhbmdlcy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQ2M6IHN0 YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+IENjOiBBbmRlciBDb25zZWx2YW5kZSBP bGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT4KPiA+ID4gPiA+ IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4g Rml4ZXM6IGNvbW1pdCA3ZDIzZTNjMzdiYjMgKCJkcm0vaTkxNTogQ2xlYW5pbmcgdXAgaW50ZWxf ZHBfaHBkX3B1bHNlIikKPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1h bmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEaGluYWth cmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4gPiA+IC0t LQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgfCA5ICsrKysrLS0t LQo+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4g aW5kZXggZmIxMjg5Ni4uNjczMmMxNyAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+ID4gPiA+IEBAIC00NTE2LDcgKzQ1MTYsNiBAQCBpbnRlbF9kcF9sb25n X3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+ID4gPiA+ ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxfZHApOwo+ID4gPiA+ID4gIAlpZiAoaXNfZWRwKGlu dGVsX2RwKSB8fCBpbnRlbF9jb25uZWN0b3ItPmRldGVjdF9lZGlkKQo+ID4gPiA+ID4gIAkJc3Rh dHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gPiA+ID4gPiAtCWludGVsX2RwLT5k ZXRlY3RfZG9uZSA9IHRydWU7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCS8qIFRyeSB0byByZWFk IHRoZSBzb3VyY2Ugb2YgdGhlIGludGVycnVwdCAqLwo+ID4gPiA+ID4gIAlpZiAoaW50ZWxfZHAt PmRwY2RbRFBfRFBDRF9SRVZdID49IDB4MTEgJiYKPiA+ID4gPiA+IEBAIC00NTUxLDEwICs0NTUw LDEwIEBAIGludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBi b29sIGZvcmNlKQo+ID4gPiA+ID4gIAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0 b3ItPm5hbWUpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkvKiBJZiBmdWxsIGRldGVjdCBpcyBu b3QgcGVyZm9ybWVkIHlldCwgZG8gYSBmdWxsIGRldGVjdCAqLwo+ID4gPiA+ID4gLQlpZiAoIWlu dGVsX2RwLT5kZXRlY3RfZG9uZSkKPiA+ID4gPiA+ICsJaWYgKCFpbnRlbF9kcC0+ZGV0ZWN0X2Rv bmUpIHsKPiA+ID4gPiA+ICsJCWludGVsX2RwLT5kZXRlY3RfZG9uZSA9IHRydWU7Cj4gPiA+ID4g PiAgCQlzdGF0dXMgPSBpbnRlbF9kcF9sb25nX3B1bHNlKGludGVsX2RwLT5hdHRhY2hlZF9jb25u ZWN0b3IpOwo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gLQlpbnRlbF9kcC0+ZGV0ZWN0X2RvbmUgPSBm YWxzZTsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlyZXR1cm4gc3RhdHVz Owo+ID4gPiA+ICB9Cj4gPiA+ID4gPiBAQCAtNDg1OSw2ICs0ODU4LDggQEAgdm9pZCBpbnRlbF9k cF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gPiA+ICAJ aWYgKGxzcGNvbi0+YWN0aXZlKQo+ID4gPiA+ID4gIAkJbHNwY29uX3Jlc3VtZShsc3Bjb24pOwo+ ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlpbnRlbF9kcC0+ZGV0ZWN0X2RvbmUgPSBmYWxzZTsKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICAJcHBzX2xvY2soaW50ZWxfZHApOwo+ID4gPiA+ID4gIAo+ID4g PiA+ID4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+IDIuNy40Cj4gPiA+ID4gPiAKPiA+ID4gCj4g PiA+IC0tIAo+ID4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+ID4gSW50ZWwgT1RDCj4gCj4gLS0gCj4g VmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com ([134.134.136.65]:45261 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754251AbdASTpP (ORCPT ); Thu, 19 Jan 2017 14:45:15 -0500 Date: Thu, 19 Jan 2017 11:38:56 -0800 From: Manasi Navare To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: jani.nikula@linux.intel.com, intel-gfx@lists.freedesktop.org, stable@vger.kernel.org, Ander Conselvande Oliveira Subject: Re: [PATCH v3] drm/i915/dp: Do not reset detect_done flag in intel_dp_detect Message-ID: <20170119193855.GA30684@intel.com> References: <1483082068-5833-1-git-send-email-dhinakaran.pandiyan@intel.com> <20170117174041.GB15796@intel.com> <20170119134234.GY31595@intel.com> <20170119190101.GA30494@intel.com> <20170119192636.GZ31595@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170119192636.GZ31595@intel.com> Sender: stable-owner@vger.kernel.org List-ID: On Thu, Jan 19, 2017 at 09:26:36PM +0200, Ville Syrj�l� wrote: > On Thu, Jan 19, 2017 at 11:01:01AM -0800, Manasi Navare wrote: > > On Thu, Jan 19, 2017 at 03:42:34PM +0200, Ville Syrj�l� wrote: > > > On Tue, Jan 17, 2017 at 09:40:42AM -0800, Manasi Navare wrote: > > > > I have verified this patch with the latest drm-tip and it is also > > > > absolutely necessary to ensure the link gets properly retrained > > > > after link-status is BAD and after anew modeset is triggered by > > > > userspace. Without this patch, since intel_dp_long_pulse gets called > > > > it resets the link failure values and link retraining does not happen > > > > at lower link rates. > > > > > > Why are you resetting the failure values in this function? You should > > > only do that when a long pulse is actually detected IMO (and yes, > > > calling the function intel_dp_long_pulse() name is pretty much wrong > > > now). > > > > > > > Yes the values for link rate nd lane count get set to the intel_dp_max_link_bw() > > and drm_dp_max_lane_count() in intel_dp_long_pulse() assuming that this function would > > get called on hotplug and that we need reread the dpcd registers. So setting these to max values > > mean that we have lost the information about the link rate and lane count at which link training failed. > > > > If detect_done is reset in intel_dp_detect() right after calling intel_dp_long_pulse() which is clearly a bug > > then it calls the intel_dp_long_pulse() during mode enumeration before the modeset and it never retrains at the > > lower values since the max link rate/lane count get overwritten in intel_dp_long_pulse(). > > So it is absolutely necessary to not reset detect_done flag here in intel_dp_detect() > > No. What you're asking for is a change in behaviour (to call > intel_dp_long_pulse() from ->detect() only if it was just preceded by an > actual long pulse). That was never how this code worked. The point of > the flag was to avoid calling it twice when processing the HPD since it > was directly called from intel_dp_hpd_pulse() and then again from > ->detect(). Since we no longer call it directly from > intel_dp_hpd_pulse() the flag is in fact useless. > No I think there is some confusion. I am not asking the change in behaviour. I dont want to call intel_dp_long_pulse from ->detect() only if it was just preceeded by an actual long pulse. I want to avoid calling it twice and which exactly was the point of adding that flag. The long pulse should be called only when the full detect is not done, we shouldnt be doing full detect twice. In intel_dp_hpd_pulse() we do set the detect_done flag to false and it does a full detect through ->detect(). But then for mode enumeration, we do not need to do a full detect so that ->detect() call should actually not call intel_dp_long_pulse because that is exactly the behavour we were trying to avoid (calling it twice) Manasi > While the change you ask for may be desirable, history has shown > that the DP code is very fragile, so I don't think we should make > the link state property depend on something that may need to be > reverted if a regression crops up. And so I think you should just > change your new code to work with the existing scheme. We can push > the detect_done optimization in afterwards since we should then be > able to revert it without having to revert everything related to > the link status property. > > > > > Manasi > > > > > > > > Ville/Jani could you please review this patch? > > > > Thi is definitely a bug in the existing codebase and we need to get this merged > > > > soon to get it fixed. > > > > > > > > Regards > > > > Manasi > > > > > > > > On Thu, Dec 29, 2016 at 11:14:28PM -0800, Dhinakaran Pandiyan wrote: > > > > > From: "Navare, Manasi D" > > > > > > > > > > The detect_done flag was introduced in the 'commit 7d23e3c37bb3 > > > > > ("drm/i915: Cleaning up intel_dp_hpd_pulse")' in order to avoid multiple > > > > > detects on hotplug where intel_dp_long_pulse() was called from HPD handler > > > > > as well as intel_dp_detect(). Later, 'commit 1015811609c0 > > > > > ("drm/i915: Move long hpd handling into the hotplug work")' deferred long > > > > > hpd handling to hotplug work to avoid handling it twice. But, resetting the > > > > > flag after long hpd handling leads to the code being executed again during > > > > > mode enumeration. > > > > > > > > > > So, do not reset the detect_done flag to False in intel_dp_detect(). The > > > > > flag is reset in intel_dp_hpd_pulse() to allow a full detect and set when > > > > > the hotplug work does a full DPCD detect. However if ->detect() gets called > > > > > during mode enumeration after a DPCD detect, return the cached connector > > > > > status. > > > > > > > > > > Resetting the flag in the encoder's reset callback should take care of > > > > > hotplug between suspend/resume. > > > > > > > > > > v2: > > > > > Allow full detect after encoder reset. (Ville) > > > > > Set the detect_done flag for connector disconnected case too. (DK) > > > > > Commit message changes. > > > > > > > > > > Cc: stable@vger.kernel.org > > > > > Cc: Ville Syrjala > > > > > Cc: Ander Conselvande Oliveira > > > > > Cc: Jani Nikula > > > > > Fixes: commit 7d23e3c37bb3 ("drm/i915: Cleaning up intel_dp_hpd_pulse") > > > > > Signed-off-by: Manasi Navare > > > > > Signed-off-by: Dhinakaran Pandiyan > > > > > --- > > > > > drivers/gpu/drm/i915/intel_dp.c | 9 +++++---- > > > > > 1 file changed, 5 insertions(+), 4 deletions(-) > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > > > > > index fb12896..6732c17 100644 > > > > > --- a/drivers/gpu/drm/i915/intel_dp.c > > > > > +++ b/drivers/gpu/drm/i915/intel_dp.c > > > > > @@ -4516,7 +4516,6 @@ intel_dp_long_pulse(struct intel_connector *intel_connector) > > > > > intel_dp_set_edid(intel_dp); > > > > > if (is_edp(intel_dp) || intel_connector->detect_edid) > > > > > status = connector_status_connected; > > > > > - intel_dp->detect_done = true; > > > > > > > > > > /* Try to read the source of the interrupt */ > > > > > if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 && > > > > > @@ -4551,10 +4550,10 @@ intel_dp_detect(struct drm_connector *connector, bool force) > > > > > connector->base.id, connector->name); > > > > > > > > > > /* If full detect is not performed yet, do a full detect */ > > > > > - if (!intel_dp->detect_done) > > > > > + if (!intel_dp->detect_done) { > > > > > + intel_dp->detect_done = true; > > > > > status = intel_dp_long_pulse(intel_dp->attached_connector); > > > > > - > > > > > - intel_dp->detect_done = false; > > > > > + } > > > > > > > > > > return status; > > > > } > > > > > @@ -4859,6 +4858,8 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder) > > > > > if (lspcon->active) > > > > > lspcon_resume(lspcon); > > > > > > > > > > + intel_dp->detect_done = false; > > > > > + > > > > > pps_lock(intel_dp); > > > > > > > > > > if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) > > > > > -- > > > > > 2.7.4 > > > > > > > > > > > -- > > > Ville Syrj�l� > > > Intel OTC > > -- > Ville Syrj�l� > Intel OTC