From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/dsi: Do not clear DPOUNIT_CLOCK_GATE_DISABLE from vlv_init_display_clock_gating Date: Fri, 2 Dec 2016 15:35:50 +0200 Message-ID: <20161202133550.GX31595@intel.com> References: <20161201153957.13390-1-hdegoede@redhat.com> <20161202124054.GU31595@intel.com> <267c1873-d135-7b27-e9f6-c8e8663cd011@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: <267c1873-d135-7b27-e9f6-c8e8663cd011@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans de Goede Cc: intel-gfx , dri-devel@lists.freedesktop.org, stable@vger.kernel.org, Dave Airlie , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBEZWMgMDIsIDIwMTYgYXQgMDI6Mjc6NDNQTSArMDEwMCwgSGFucyBkZSBHb2VkZSB3 cm90ZToKPiBIaSwKPiAKPiBPbiAwMi0xMi0xNiAxMzo0MCwgVmlsbGUgU3lyasOkbMOkIHdyb3Rl Ogo+ID4gT24gVGh1LCBEZWMgMDEsIDIwMTYgYXQgMDQ6Mzk6NTdQTSArMDEwMCwgSGFucyBkZSBH b2VkZSB3cm90ZToKPiA+PiBPbiBteSBDaGVycnl0cmFpbCBDVUJFIGl3b3JrOCBBaXIgdGFibGV0 IFBJUEUtQSB3b3VsZCBnZXQgc3R1Y2sgb24gbG9hZGluZwo+ID4+IGk5MTUgYXQgYm9vdCAxIG91 dCBvZiBldmVyeSAzIGJvb3RzLCByZXN1bHRpbmcgaW4gYSBub24gZnVuY3Rpb25hbCBMQ0QuCj4g Pj4gT25jZSB0aGUgaTkxNSBkcml2ZXIgaGFzIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHRoZSBwYW5l bCBjYW4gYmUgZGlzYWJsZWQgLwo+ID4+IGVuYWJsZWQgd2l0aG91dCBoaXR0aW5nIHRoaXMgaXNz dWUuCj4gPj4KPiA+PiBUaGUgZ2V0dGluZyBzdHVjayBpcyBjYXVzZWQgYnkgdmx2X2luaXRfZGlz cGxheV9jbG9ja19nYXRpbmcoKSBjbGVhcmluZwo+ID4+IHRoZSBEUE9VTklUX0NMT0NLX0dBVEVf RElTQUJMRSBiaXQgaW4gRFNQQ0xLX0dBVEVfRCB3aGVuIGNhbGxlZCBmcm9tCj4gPj4gY2h2X3Bp cGVfcG93ZXJfd2VsbF9vcHMuZW5hYmxlKCkgb24gZHJpdmVyIGxvYWQsIHdoaWxlIFBJUEUtQSBp cyBlbmFibGVkCj4gPj4gZHJpdmluZyB0aGUgRFNJIExDRCBieSB0aGUgQklPUy4KPiA+Pgo+ID4+ IENsZWFyaW5nIHRoaXMgYml0IHdoaWxlIERTSSBpcyBpbiB1c2UgaXMgYSBrbm93biBpc3N1ZSBh bmQKPiA+PiBpbnRlbF9kc2lfcHJlX2VuYWJsZSgpIC8gaW50ZWxfZHNpX3Bvc3RfZGlzYWJsZSgp IGFscmVhZHkgc2V0IC8gY2xlYXIgaXQKPiA+PiBhcyBhcHByb3ByaWF0ZS4KPiA+Pgo+ID4+IFRo aXMgY29tbWl0IG1vZGlmaWVzIHZsdl9pbml0X2Rpc3BsYXlfY2xvY2tfZ2F0aW5nKCkgdG8gbGVh dmUgdGhlCj4gPj4gRFBPVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUgYml0IGFsb25lIGZpeGluZyBQ SVBFLUEgZ2V0dGluZyBzdHVjay4KPiA+Pgo+ID4+IEJ1Z0xpbms6IGh0dHBzOi8vYnVncy5mcmVl ZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MzMwCj4gPj4gQ2M6IHN0YWJsZUB2Z2VyLmtl cm5lbC5vcmcKPiA+PiBTaWduZWQtb2ZmLWJ5OiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRo YXQuY29tPgo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgfCAxMyArKysrKysrKysrKystCj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jCj4gPj4gaW5kZXggMzU2YzY2Mi4uYjVjZTdjYiAxMDA2NDQKPiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiA+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiA+PiBAQCAtMTAzOSw3ICsxMDM5 LDE4IEBAIHN0YXRpYyBib29sIHZsdl9wb3dlcl93ZWxsX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+Cj4gPj4gIHN0YXRpYyB2b2lkIHZsdl9pbml0X2Rpc3Bs YXlfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+PiAg ewo+ID4+IC0JSTkxNV9XUklURShEU1BDTEtfR0FURV9ELCBWUkhVTklUX0NMT0NLX0dBVEVfRElT QUJMRSk7Cj4gPj4gKwl1MzIgdmFsOwo+ID4+ICsKPiA+PiArCS8qCj4gPj4gKwkgKiBXaGVuIG9u IGRyaXZlciBsb2FkLCBQSVBFIEEgbWF5IGJlIGFjdGl2ZSBhbmQgZHJpdmluZyBhIERTSSBkaXNw bGF5Lgo+ID4+ICsJICogUHJlc2VydmUgRFBPVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUgdG8gYXZv aWQgUElQRSBBIGdldHRpbmcgc3R1Y2sKPiA+PiArCSAqIChhbmQgbmV2ZXIgcmVjb3ZlcmluZykg aW4gdGhpcyBjYXNlLiBpbnRlbF9kc2lfcG9zdF9kaXNhYmxlKCkgd2lsbAo+ID4+ICsJICogY2xl YXIgaXQgd2hlbiB3ZSB0dXJuIG9mZiB0aGUgZGlzcGxheS4KPiA+Cj4gPiBXaHkgYXJlIHlvdSB0 YWxraW5nIG9ubHkgYWJvdXQgcGlwZSBBIGhlcmU/Cj4gCj4gQmVjYXVzZSB0aGF0IGlzIHRoZSBw aXBlIHdoaWNoIHdhcyBnZXR0aW5nIHN0dWNrIG9uIG15IHRhYmxldC4gSSBzZWUgdGhhdAo+IHRo ZSBjb21tZW50IGZvciB0aGUgc2FtZSB3b3JrYXJvdW5kIGluIGludGVsX2RzaS5jIGp1c3Qgc2F5 czoKPiAiIERpc2FibGUgRFBPdW5pdCBjbG9jayBnYXRpbmcsIGNhbiBzdGFsbCBwaXBlIiBzbyBJ IGd1ZXNzIEkgc2hvdWxkCj4gdXBkYXRlIHRoZSBjb21tZW50IHMvUElQRSBBL3BpcGUocykvLiBB bnkgb3RoZXIgcmVtYXJrcyBiZWZvcmUgSSBzZW5kIGEgdjIgPwoKTm9wZS4gV2l0aCB0aGF0IHRo aXMgaXMKClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgoKCj4gCj4gUmVnYXJkcywKPiAKPiBIYW5zCj4gCj4gCj4gCj4gPgo+ID4+ICsJ ICovCj4gPj4gKwl2YWwgPSBJOTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7Cj4gPj4gKwl2YWwgJj0g RFBPVU5JVF9DTE9DS19HQVRFX0RJU0FCTEU7Cj4gPj4gKwl2YWwgfD0gVlJIVU5JVF9DTE9DS19H QVRFX0RJU0FCTEU7Cj4gPj4gKwlJOTE1X1dSSVRFKERTUENMS19HQVRFX0QsIHZhbCk7Cj4gPj4K PiA+PiAgCS8qCj4gPj4gIAkgKiBEaXNhYmxlIHRyaWNrbGUgZmVlZCBhbmQgZW5hYmxlIHBuZCBk ZWFkbGluZSBjYWxjdWxhdGlvbgo+ID4+IC0tCj4gPj4gMi45LjMKPiA+Pgo+ID4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+ID4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+PiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+ID4K Ci0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com ([134.134.136.100]:23174 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754747AbcLBNf7 (ORCPT ); Fri, 2 Dec 2016 08:35:59 -0500 Date: Fri, 2 Dec 2016 15:35:50 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Hans de Goede Cc: Daniel Vetter , Jani Nikula , Dave Airlie , intel-gfx , stable@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drm/i915/dsi: Do not clear DPOUNIT_CLOCK_GATE_DISABLE from vlv_init_display_clock_gating Message-ID: <20161202133550.GX31595@intel.com> References: <20161201153957.13390-1-hdegoede@redhat.com> <20161202124054.GU31595@intel.com> <267c1873-d135-7b27-e9f6-c8e8663cd011@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <267c1873-d135-7b27-e9f6-c8e8663cd011@redhat.com> Sender: stable-owner@vger.kernel.org List-ID: On Fri, Dec 02, 2016 at 02:27:43PM +0100, Hans de Goede wrote: > Hi, > > On 02-12-16 13:40, Ville Syrj�l� wrote: > > On Thu, Dec 01, 2016 at 04:39:57PM +0100, Hans de Goede wrote: > >> On my Cherrytrail CUBE iwork8 Air tablet PIPE-A would get stuck on loading > >> i915 at boot 1 out of every 3 boots, resulting in a non functional LCD. > >> Once the i915 driver has successfully loaded, the panel can be disabled / > >> enabled without hitting this issue. > >> > >> The getting stuck is caused by vlv_init_display_clock_gating() clearing > >> the DPOUNIT_CLOCK_GATE_DISABLE bit in DSPCLK_GATE_D when called from > >> chv_pipe_power_well_ops.enable() on driver load, while PIPE-A is enabled > >> driving the DSI LCD by the BIOS. > >> > >> Clearing this bit while DSI is in use is a known issue and > >> intel_dsi_pre_enable() / intel_dsi_post_disable() already set / clear it > >> as appropriate. > >> > >> This commit modifies vlv_init_display_clock_gating() to leave the > >> DPOUNIT_CLOCK_GATE_DISABLE bit alone fixing PIPE-A getting stuck. > >> > >> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=97330 > >> Cc: stable@vger.kernel.org > >> Signed-off-by: Hans de Goede > >> --- > >> drivers/gpu/drm/i915/intel_runtime_pm.c | 13 ++++++++++++- > >> 1 file changed, 12 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c > >> index 356c662..b5ce7cb 100644 > >> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > >> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > >> @@ -1039,7 +1039,18 @@ static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv, > >> > >> static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv) > >> { > >> - I915_WRITE(DSPCLK_GATE_D, VRHUNIT_CLOCK_GATE_DISABLE); > >> + u32 val; > >> + > >> + /* > >> + * When on driver load, PIPE A may be active and driving a DSI display. > >> + * Preserve DPOUNIT_CLOCK_GATE_DISABLE to avoid PIPE A getting stuck > >> + * (and never recovering) in this case. intel_dsi_post_disable() will > >> + * clear it when we turn off the display. > > > > Why are you talking only about pipe A here? > > Because that is the pipe which was getting stuck on my tablet. I see that > the comment for the same workaround in intel_dsi.c just says: > " Disable DPOunit clock gating, can stall pipe" so I guess I should > update the comment s/PIPE A/pipe(s)/. Any other remarks before I send a v2 ? Nope. With that this is Reviewed-by: Ville Syrj�l� > > Regards, > > Hans > > > > > > >> + */ > >> + val = I915_READ(DSPCLK_GATE_D); > >> + val &= DPOUNIT_CLOCK_GATE_DISABLE; > >> + val |= VRHUNIT_CLOCK_GATE_DISABLE; > >> + I915_WRITE(DSPCLK_GATE_D, val); > >> > >> /* > >> * Disable trickle feed and enable pnd deadline calculation > >> -- > >> 2.9.3 > >> > >> _______________________________________________ > >> dri-devel mailing list > >> dri-devel@lists.freedesktop.org > >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- Ville Syrj�l� Intel OTC