From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 2/6] drm/i915: Move DP modeset retry work into intel_dp Date: Thu, 8 Mar 2018 23:25:35 -0800 Message-ID: <20180309072535.GB2374@intel.com> References: <20180308232421.14049-3-lyude@redhat.com> <20180308234122.16641-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180308234122.16641-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lyude Paul Cc: David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXIgMDgsIDIwMTggYXQgMDY6NDE6MjJQTSAtMDUwMCwgTHl1ZGUgUGF1bCB3cm90 ZToKPiBXaGlsZSBoYXZpbmcgdGhlIG1vZGVzZXRfcmV0cnlfd29yayBpbiBpbnRlbF9jb25uZWN0 b3IgbWFrZXMgc2Vuc2Ugd2l0aAo+IFNTVCwgdGhpcyBwYXJhZGlnbSBkb2Vzbid0IG1ha2UgYSB3 aG9sZSB0b24gb2Ygc2Vuc2Ugd2hlbiBpdCBjb21lcyB0bwo+IE1TVCBzaW5jZSB3ZSBoYXZlIHRv IGRlYWwgd2l0aCBtdWx0aXBsZSBjb25uZWN0b3JzLiBJbiBtb3N0IGNhc2VzLCBpdCdzCj4gbW9y ZSB1c2VmdWwgdG8ganVzdCB1c2UgdGhlIGludGVsX2RwIHN0cnVjdCBzaW5jZSBpdCBpbmRpY2F0 ZXMgd2hldGhlcgo+IG9yIG5vdCB3ZSdyZSBkZWFsaW5nIHdpdGggYW4gTVNUIGRldmljZSwgYWxv bmcgd2l0aCBiZWluZyBhYmxlIHRvIGVhc2lseQo+IHRyYWNlIHRoZSBpbnRlbF9kcCBzdHJ1Y3Qg YmFjayB0byBpdCdzIHJlc3BlY3RpdmUgY29ubmVjdG9yIChpZiB0aGVyZSBpcwo+IGFueSkuIFNv LCBtb3ZlIHRoZSBtb2Rlc2V0X3JldHJ5X3dvcmsgZnVuY3Rpb24gb3V0IG9mIHRoZQo+IGludGVs X2Nvbm5lY3RvciBzdHJ1Y3QgYW5kIGludG8gaW50ZWxfZHAuCj4gCj4gVjI6Cj4gIC0gUmVtb3Zl IGFjY2lkZW50YWwgZHVwbGljYXRlIG1vZGVzZXRfcmV0cnlfd29yayBpbiBpbnRlbF9jb25uZWN0 b3IKPiAKPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgo+IENj OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IENjOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgICAgfCAyMyArKysrKysrKysrKysr KysrKysrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgICAg ICAgfCAxMCArKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtf dHJhaW5pbmcuYyB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg ICAgICAgICAgICB8ICA2ICsrKy0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMo KyksIDEyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiBpbmRleCBmNDI0ZmZmNDc3ZjYuLjg1ZDVhZjRlNGY1YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTUzOTQsMTYgKzE1Mzk0LDM1IEBAIHN0YXRpYyB2b2lk IGludGVsX2hwZF9wb2xsX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jf bGlzdF9pdGVyIGNvbm5faXRlcjsKPiArCXN0cnVjdCB3b3JrX3N0cnVjdCAqd29yazsKPiAgCj4g IAkvKiBLaWxsIGFsbCB0aGUgd29yayB0aGF0IG1heSBoYXZlIGJlZW4gcXVldWVkIGJ5IGhwZC4g Ki8KPiAgCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7Cj4g IAlmb3JfZWFjaF9pbnRlbF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsK PiAtCQlpZiAoY29ubmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmsuZnVuYykKPiAtCQkJY2FuY2Vs X3dvcmtfc3luYygmY29ubmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmspOwo+ICAJCWlmIChjb25u ZWN0b3ItPmhkY3Bfc2hpbSkgewo+ICAJCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmNvbm5l Y3Rvci0+aGRjcF9jaGVja193b3JrKTsKPiAgCQkJY2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9y LT5oZGNwX3Byb3Bfd29yayk7Cj4gIAkJfQo+ICsKPiArCQlpZiAoY29ubmVjdG9yLT5iYXNlLmNv bm5lY3Rvcl90eXBlICE9Cj4gKwkJICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkK Ckkga25vdyB3ZSBkb250IGZhbGxiYWNrIG9uIGVEUCBub3cgYnV0IHNpbmNlIGxpbmsgdHJhaW5p bmcgaXMgYSBjb21tb24gY29kZSBiZXR3ZWVuCmVEUCBhbmQgRFAsIHRoaXMgbW9kZXNldCByZXRy eSBjYW4gYWxzbyBiZSBjYWxsZWQgZnJvbSBlRFAuIFNvIHdlIHNob3VsZCBjaGVjayBhZ2FpbnN0 CkRSTV9NT0RFX0NPTk5FQ1RPUl9lRFAgdHlwZSBhcyB3ZWxsLgoKT3RoZXIgdGhhbiB0aGF0LCBJ IGFncmVlIHRoYXQgaXQgaXMgYmV0dGVyIGZvciB0aGlzIHdvcmsgZnVuY3Rpb24gdG8gYmUgcGFy dCBvZiBpbnRlbF9kcCBzdHJ1Y3QKYXMgb3Bwb3NlZCB0byBpbnRlbF9jb25uZWN0b3IuIAoKU28g YWZ0ZXIgdGhpcyBjaGFuZ2UsCgpSZXZpZXdlZC1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQu bmF2YXJlQGludGVsLmNvbT4KCk1hbmFzaQoKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmIChj b25uZWN0b3ItPm1zdF9wb3J0KSB7Cj4gKwkJCXdvcmsgPSAmY29ubmVjdG9yLT5tc3RfcG9ydC0+ bW9kZXNldF9yZXRyeV93b3JrOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyID0KPiArCQkJCWNvbm5lY3Rvci0+ZW5jb2RlcjsKPiArCQkJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcDsKPiArCj4gKwkJCWlmICghaW50ZWxfZW5jb2RlcikKPiAr CQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmludGVs X2VuY29kZXItPmJhc2UpOwo+ICsJCQl3b3JrID0gJmludGVsX2RwLT5tb2Rlc2V0X3JldHJ5X3dv cms7Cj4gKwkJfQo+ICsKPiArCQljYW5jZWxfd29ya19zeW5jKHdvcmspOwo+ICAJfQo+ICAJZHJt X2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwo+ICB9Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gaW5kZXggNGRkMWIyMjg3ZGQ2Li41YWJmMGM5NTcyNWEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNjI2MSwxMiArNjI2MSwxMCBAQCBzdGF0aWMgYm9vbCBp bnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCj4g IHN0YXRpYyB2b2lkIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29ya19mbihzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3RvcjsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqaW50ZWxfZHApLAo+ ICsJCQkJCQkgbW9kZXNldF9yZXRyeV93b3JrKTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IgPSAmaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFzZTsKPiAgCj4gLQlp bnRlbF9jb25uZWN0b3IgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCppbnRlbF9jb25uZWN0 b3IpLAo+IC0JCQkJICAgICAgIG1vZGVzZXRfcmV0cnlfd29yayk7Cj4gLQljb25uZWN0b3IgPSAm aW50ZWxfY29ubmVjdG9yLT5iYXNlOwo+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDol c11cbiIsIGNvbm5lY3Rvci0+YmFzZS5pZCwKPiAgCQkgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+ ICAKPiBAQCAtNjI5NSw3ICs2MjkzLDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAlpbnQgdHlwZTsKPiAgCj4g IAkvKiBJbml0aWFsaXplIHRoZSB3b3JrIGZvciBtb2Rlc2V0IGluIGNhc2Ugb2YgbGluayB0cmFp biBmYWlsdXJlICovCj4gLQlJTklUX1dPUksoJmludGVsX2Nvbm5lY3Rvci0+bW9kZXNldF9yZXRy eV93b3JrLAo+ICsJSU5JVF9XT1JLKCZpbnRlbF9kcC0+bW9kZXNldF9yZXRyeV93b3JrLAo+ICAJ CSAgaW50ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKTsKPiAgCj4gIAlpZiAoV0FSTihpbnRl bF9kaWdfcG9ydC0+bWF4X2xhbmVzIDwgMSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBfbGlua190cmFpbmluZy5jCj4gaW5kZXggZjU5YjU5YmIwYTIxLi4yY2ZhNThjZTFmOTUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmlu Zy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5j Cj4gQEAgLTM0MCw3ICszNDAsNyBAQCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gIAkJCQkJCQkgICAgIGludGVsX2RwLT5saW5rX3JhdGUsCj4g IAkJCQkJCQkgICAgIGludGVsX2RwLT5sYW5lX2NvdW50KSkKPiAgCQkJLyogU2NoZWR1bGUgYSBI b3RwbHVnIFVldmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+IC0JCQlzY2hl ZHVsZV93b3JrKCZpbnRlbF9jb25uZWN0b3ItPm1vZGVzZXRfcmV0cnlfd29yayk7Cj4gKwkJCXNj aGVkdWxlX3dvcmsoJmludGVsX2RwLT5tb2Rlc2V0X3JldHJ5X3dvcmspOwo+ICAJfSBlbHNlIHsK PiAgCQlEUk1fRVJST1IoIltDT05ORUNUT1I6JWQ6JXNdIExpbmsgVHJhaW5pbmcgZmFpbGVkIGF0 IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50ID0gJWQiLAo+ICAJCQkgIGludGVsX2Nvbm5lY3Rv ci0+YmFzZS5iYXNlLmlkLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggODNlNWNh ODg5ZDljLi4zZjE5ZGM4MDk5N2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBA IC00MDYsOSArNDA2LDYgQEAgc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4gIAo+ICAJc3RydWN0 IGludGVsX2RwICptc3RfcG9ydDsKPiAgCj4gLQkvKiBXb3JrIHN0cnVjdCB0byBzY2hlZHVsZSBh IHVldmVudCBvbiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KPiAtCXN0cnVjdCB3b3JrX3N0cnVjdCBt b2Rlc2V0X3JldHJ5X3dvcms7Cj4gLQo+ICAJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAq aGRjcF9zaGltOwo+ICAJc3RydWN0IG11dGV4IGhkY3BfbXV0ZXg7Cj4gIAl1aW50NjRfdCBoZGNw X3ZhbHVlOyAvKiBwcm90ZWN0ZWQgYnkgaGRjcF9tdXRleCAqLwo+IEBAIC0xMTM1LDYgKzExMzIs OSBAQCBzdHJ1Y3QgaW50ZWxfZHAgewo+ICAKPiAgCS8qIERpc3BsYXlwb3J0IGNvbXBsaWFuY2Ug dGVzdGluZyAqLwo+ICAJc3RydWN0IGludGVsX2RwX2NvbXBsaWFuY2UgY29tcGxpYW5jZTsKPiAr Cj4gKwkvKiBXb3JrIHN0cnVjdCB0byBzY2hlZHVsZSBhIHVldmVudCBvbiBsaW5rIHRyYWluIGZh aWx1cmUgKi8KPiArCXN0cnVjdCB3b3JrX3N0cnVjdCBtb2Rlc2V0X3JldHJ5X3dvcms7Cj4gIH07 Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfbHNwY29uIHsKPiAtLSAKPiAyLjE0LjMKPiAKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751242AbeCIH30 (ORCPT ); Fri, 9 Mar 2018 02:29:26 -0500 Received: from mga12.intel.com ([192.55.52.136]:28851 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750880AbeCIH3Y (ORCPT ); Fri, 9 Mar 2018 02:29:24 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,444,1515484800"; d="scan'208";a="210085341" Date: Thu, 8 Mar 2018 23:25:35 -0800 From: Manasi Navare To: Lyude Paul Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , David Airlie , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/6] drm/i915: Move DP modeset retry work into intel_dp Message-ID: <20180309072535.GB2374@intel.com> References: <20180308232421.14049-3-lyude@redhat.com> <20180308234122.16641-1-lyude@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180308234122.16641-1-lyude@redhat.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 08, 2018 at 06:41:22PM -0500, Lyude Paul wrote: > While having the modeset_retry_work in intel_connector makes sense with > SST, this paradigm doesn't make a whole ton of sense when it comes to > MST since we have to deal with multiple connectors. In most cases, it's > more useful to just use the intel_dp struct since it indicates whether > or not we're dealing with an MST device, along with being able to easily > trace the intel_dp struct back to it's respective connector (if there is > any). So, move the modeset_retry_work function out of the > intel_connector struct and into intel_dp. > > V2: > - Remove accidental duplicate modeset_retry_work in intel_connector > > Signed-off-by: Lyude Paul > Cc: Manasi Navare > Cc: Ville Syrjälä > --- > drivers/gpu/drm/i915/intel_display.c | 23 +++++++++++++++++++++-- > drivers/gpu/drm/i915/intel_dp.c | 10 ++++------ > drivers/gpu/drm/i915/intel_dp_link_training.c | 2 +- > drivers/gpu/drm/i915/intel_drv.h | 6 +++--- > 4 files changed, 29 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index f424fff477f6..85d5af4e4f5b 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -15394,16 +15394,35 @@ static void intel_hpd_poll_fini(struct drm_device *dev) > { > struct intel_connector *connector; > struct drm_connector_list_iter conn_iter; > + struct work_struct *work; > > /* Kill all the work that may have been queued by hpd. */ > drm_connector_list_iter_begin(dev, &conn_iter); > for_each_intel_connector_iter(connector, &conn_iter) { > - if (connector->modeset_retry_work.func) > - cancel_work_sync(&connector->modeset_retry_work); > if (connector->hdcp_shim) { > cancel_delayed_work_sync(&connector->hdcp_check_work); > cancel_work_sync(&connector->hdcp_prop_work); > } > + > + if (connector->base.connector_type != > + DRM_MODE_CONNECTOR_DisplayPort) I know we dont fallback on eDP now but since link training is a common code between eDP and DP, this modeset retry can also be called from eDP. So we should check against DRM_MODE_CONNECTOR_eDP type as well. Other than that, I agree that it is better for this work function to be part of intel_dp struct as opposed to intel_connector. So after this change, Reviewed-by: Manasi Navare Manasi > + continue; > + > + if (connector->mst_port) { > + work = &connector->mst_port->modeset_retry_work; > + } else { > + struct intel_encoder *intel_encoder = > + connector->encoder; > + struct intel_dp *intel_dp; > + > + if (!intel_encoder) > + continue; > + > + intel_dp = enc_to_intel_dp(&intel_encoder->base); > + work = &intel_dp->modeset_retry_work; > + } > + > + cancel_work_sync(work); > } > drm_connector_list_iter_end(&conn_iter); > } > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 4dd1b2287dd6..5abf0c95725a 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -6261,12 +6261,10 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, > > static void intel_dp_modeset_retry_work_fn(struct work_struct *work) > { > - struct intel_connector *intel_connector; > - struct drm_connector *connector; > + struct intel_dp *intel_dp = container_of(work, typeof(*intel_dp), > + modeset_retry_work); > + struct drm_connector *connector = &intel_dp->attached_connector->base; > > - intel_connector = container_of(work, typeof(*intel_connector), > - modeset_retry_work); > - connector = &intel_connector->base; > DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, > connector->name); > > @@ -6295,7 +6293,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, > int type; > > /* Initialize the work for modeset in case of link train failure */ > - INIT_WORK(&intel_connector->modeset_retry_work, > + INIT_WORK(&intel_dp->modeset_retry_work, > intel_dp_modeset_retry_work_fn); > > if (WARN(intel_dig_port->max_lanes < 1, > diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c > index f59b59bb0a21..2cfa58ce1f95 100644 > --- a/drivers/gpu/drm/i915/intel_dp_link_training.c > +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c > @@ -340,7 +340,7 @@ intel_dp_start_link_train(struct intel_dp *intel_dp) > intel_dp->link_rate, > intel_dp->lane_count)) > /* Schedule a Hotplug Uevent to userspace to start modeset */ > - schedule_work(&intel_connector->modeset_retry_work); > + schedule_work(&intel_dp->modeset_retry_work); > } else { > DRM_ERROR("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", > intel_connector->base.base.id, > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 83e5ca889d9c..3f19dc80997f 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -406,9 +406,6 @@ struct intel_connector { > > struct intel_dp *mst_port; > > - /* Work struct to schedule a uevent on link train failure */ > - struct work_struct modeset_retry_work; > - > const struct intel_hdcp_shim *hdcp_shim; > struct mutex hdcp_mutex; > uint64_t hdcp_value; /* protected by hdcp_mutex */ > @@ -1135,6 +1132,9 @@ struct intel_dp { > > /* Displayport compliance testing */ > struct intel_dp_compliance compliance; > + > + /* Work struct to schedule a uevent on link train failure */ > + struct work_struct modeset_retry_work; > }; > > struct intel_lspcon { > -- > 2.14.3 >