From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [stable:v4.15] drm/i915/dp: Write to SET_POWER dpcd to enable MST hub. Date: Tue, 03 Apr 2018 10:27:16 +0300 Message-ID: <878ta4bvhn.fsf@intel.com> References: <20180329195150.26186-1-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 32C5E89341 for ; Tue, 3 Apr 2018 07:26:27 +0000 (UTC) In-Reply-To: <20180329195150.26186-1-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: stable@vger.kernel.org, Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org CkRLLCBwbGVhc2Ugc3RhcnQgc3RhYmxlIGJhY2twb3J0IGNvbW1pdCBtZXNzYWdlcyB3aXRoOgoK Y29tbWl0IGIxZTMxNDQ2MmJiYTc2NjYwZWVjNjI3NjBiYjJlODdmMjhmNTg4NjYgdXBzdHJlYW0u CgpSZWZlcmVuY2luZyB0aGUgdXBzdHJlYW0gY29tbWl0LgoKQlIsCkphbmkuCgoKT24gVGh1LCAy OSBNYXIgMjAxOCwgRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRl bC5jb20+IHdyb3RlOgo+IElmIGJpb3Mgc2V0cyB1cCBhbiBNU1Qgb3V0cHV0IGFuZCBoYXJkd2Fy ZSBzdGF0ZSByZWFkb3V0IGNvZGUgc2VlcyB0aGlzIGlzCj4gYW4gU1NUIGNvbmZpZ3VyYXRpb24s IHdoZW4gZGlzYWJsaW5nIHRoZSBlbmNvZGVyIHdlIGVuZCB1cCBjYWxsaW5nCj4gLT5wb3N0X2Rp c2FibGVfZHAoKSBob29rIGluc3RlYWQgb2YgdGhlIE1TVCB2ZXJzaW9uLiBDb25zZXF1ZW50bHks IHdlIHdyaXRlCj4gdG8gdGhlIERQX1NFVF9QT1dFUiBkcGNkIHRvIHNldCBpdCBEMyBzdGF0ZS4g RnVydGhlciBhbG9uZyB3aGVuIHdlIHRyeQo+IGVuYWJsZSB0aGUgZW5jb2RlciBpbiBNU1QgbW9k ZSwgUE9XRVJfVVBfUEhZIHRyYW5zYWN0aW9uIGZhaWxzIHRvIHBvd2VyIHVwCj4gdGhlIE1TVCBo dWIuIFRoaXMgcmVzdWx0cyBpbiBjb250aW51b3VzIGxpbmsgdHJhaW5pbmcgZmFpbHVyZXMgd2hp Y2gga2VlcAo+IHRoZSBzeXN0ZW0gYnVzeSBkZWxheWluZyBib290LiBXZSBjb3VsZCBpZGVudGlm eSBiaW9zIE1TVCBib290IGRpc2NyZXBhbmN5Cj4gYW5kIGhhbmRsZSBpdCBhY2NvcmRpbmdseSBi dXQgYSBzaW1wbGUgd2F5IHRvIHNvbHZlIHRoaXMgaXMgdG8gd3JpdGUgdG8gdGhlCj4gRFBfU0VU X1BPV0VSIGRwY2QgZm9yIE1TVCB0b28uCj4KPiB2MjogUmViYXNlZCBvbiBzdGFibGUvbGludXgt NC4xNS55IGFuZCBmaXhlZCBtaW5vciBjb25mbGljdC4KPgo+IEJ1Z3ppbGxhOiBodHRwczovL2J1 Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzAKPiBDYzogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBSZXBvcnRlZC1ieTogTGF1cmEgQWJib3R0 IDxsYWJib3R0QHJlZGhhdC5jb20+Cj4gQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAjIDQu MTUrCj4gRml4ZXM6IDVlYTIzNTVhMTAwYSAoImRybS9pOTE1L21zdDogVXNlIE1TVCBzaWRlYmFu ZCBtZXNzYWdlIHRyYW5zYWN0aW9ucyBmb3IgZHBtcyBjb250cm9sIikKPiBUZXN0ZWQtYnk6IExh dXJhIEFiYm90dCA8bGFiYm90dEByZWRoYXQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERoaW5ha2Fy YW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYt Ynk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gTGluazogaHR0cHM6Ly9w YXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMTgwMzE0MDU0ODI1LjE3MTgt MS1kaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbQo+IChjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IGFkMjYwYWIzMmE0ZDk0ZmE5NzRmNTgyNjJmODAwMDQ3MmQzNGZkNWIpCj4gU2lnbmVkLW9m Zi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgMTIgKystLS0tLS0t LS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA1OGEzNzU1NTQ0YjIuLjM4ZTUzZDZi ODEyNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTIyMDgsOCArMjIwOCw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAJCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7 Cj4gIAo+ICAJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhlbmNvZGVyKTsKPiAtCWlmICghaXNf bXN0KQo+IC0JCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7 Cj4gKwlpbnRlbF9kcF9zaW5rX2RwbXMoaW50ZWxfZHAsIERSTV9NT0RFX0RQTVNfT04pOwo+ICAJ aW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gIAlpZiAocG9ydCAhPSBQT1JU X0EgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ICAJCWludGVsX2RwX3N0b3BfbGlua190 cmFpbihpbnRlbF9kcCk7Cj4gQEAgLTIyOTQsMTkgKzIyOTMsMTIgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGRpX3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9f ZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 ICZkaWdfcG9ydC0+ZHA7Cj4gLQkvKgo+IC0JICogb2xkX2NydGNfc3RhdGUgYW5kIG9sZF9jb25u X3N0YXRlIGFyZSBOVUxMIHdoZW4gY2FsbGVkIGZyb20KPiAtCSAqIERQX01TVC4gVGhlIG1haW4g Y29ubmVjdG9yIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBvcnQgaXMgbmV2ZXIKPiAtCSAqIGJvdW5k IHRvIGEgY3J0YyBmb3IgTVNULgo+IC0JICovCj4gLQlib29sIGlzX21zdCA9ICFvbGRfY3J0Y19z dGF0ZTsKPiAgCj4gIAkvKgo+ICAJICogUG93ZXIgZG93biBzaW5rIGJlZm9yZSBkaXNhYmxpbmcg dGhlIHBvcnQsIG90aGVyd2lzZSB3ZSBlbmQKPiAgCSAqIHVwIGdldHRpbmcgaW50ZXJydXB0cyBm cm9tIHRoZSBzaW5rIG9uIGRldGVjdGluZyBsaW5rIGxvc3MuCj4gIAkgKi8KPiAtCWlmICghaXNf bXN0KQo+IC0JCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PRkYp Owo+ICsJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4g IAo+ICAJaW50ZWxfZGlzYWJsZV9kZGlfYnVmKGVuY29kZXIpOwoKLS0gCkphbmkgTmlrdWxhLCBJ bnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com ([192.55.52.120]:1667 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754272AbeDCH01 (ORCPT ); Tue, 3 Apr 2018 03:26:27 -0400 From: Jani Nikula To: Dhinakaran Pandiyan , intel-gfx@lists.freedesktop.org Cc: Dhinakaran Pandiyan , Ville =?utf-8?B?U3lyasOkbMOk?= , stable@vger.kernel.org Subject: Re: [stable:v4.15] drm/i915/dp: Write to SET_POWER dpcd to enable MST hub. In-Reply-To: <20180329195150.26186-1-dhinakaran.pandiyan@intel.com> References: <20180329195150.26186-1-dhinakaran.pandiyan@intel.com> Date: Tue, 03 Apr 2018 10:27:16 +0300 Message-ID: <878ta4bvhn.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org List-ID: DK, please start stable backport commit messages with: commit b1e314462bba76660eec62760bb2e87f28f58866 upstream. Referencing the upstream commit. BR, Jani. On Thu, 29 Mar 2018, Dhinakaran Pandiyan wrote: > If bios sets up an MST output and hardware state readout code sees this is > an SST configuration, when disabling the encoder we end up calling > ->post_disable_dp() hook instead of the MST version. Consequently, we write > to the DP_SET_POWER dpcd to set it D3 state. Further along when we try > enable the encoder in MST mode, POWER_UP_PHY transaction fails to power up > the MST hub. This results in continuous link training failures which keep > the system busy delaying boot. We could identify bios MST boot discrepancy > and handle it accordingly but a simple way to solve this is to write to the > DP_SET_POWER dpcd for MST too. > > v2: Rebased on stable/linux-4.15.y and fixed minor conflict. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105470 > Cc: Ville Syrjälä > Cc: Jani Nikula > Reviewed-by: Ville Syrjälä > Reported-by: Laura Abbott > Cc: # 4.15+ > Fixes: 5ea2355a100a ("drm/i915/mst: Use MST sideband message transactions for dpms control") > Tested-by: Laura Abbott > Signed-off-by: Dhinakaran Pandiyan > Signed-off-by: Jani Nikula > Link: https://patchwork.freedesktop.org/patch/msgid/20180314054825.1718-1-dhinakaran.pandiyan@intel.com > (cherry picked from commit ad260ab32a4d94fa974f58262f8000472d34fd5b) > Signed-off-by: Dhinakaran Pandiyan > --- > drivers/gpu/drm/i915/intel_ddi.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c > index 58a3755544b2..38e53d6b8127 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -2208,8 +2208,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder, > intel_prepare_dp_ddi_buffers(encoder); > > intel_ddi_init_dp_buf_reg(encoder); > - if (!is_mst) > - intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); > + intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); > intel_dp_start_link_train(intel_dp); > if (port != PORT_A || INTEL_GEN(dev_priv) >= 9) > intel_dp_stop_link_train(intel_dp); > @@ -2294,19 +2293,12 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder, > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); > struct intel_dp *intel_dp = &dig_port->dp; > - /* > - * old_crtc_state and old_conn_state are NULL when called from > - * DP_MST. The main connector associated with this port is never > - * bound to a crtc for MST. > - */ > - bool is_mst = !old_crtc_state; > > /* > * Power down sink before disabling the port, otherwise we end > * up getting interrupts from the sink on detecting link loss. > */ > - if (!is_mst) > - intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); > + intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); > > intel_disable_ddi_buf(encoder); -- Jani Nikula, Intel Open Source Technology Center