From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3] drm/i915/ilk: Don't disable SSC source if it's in use Date: Tue, 24 May 2016 21:59:24 +0300 Message-ID: <20160524185924.GI4329@intel.com> References: <20160524131414.GE4329@intel.com> <1464100023-18479-1-git-send-email-cpaul@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: <1464100023-18479-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Cc: David Airlie , intel-gfx@lists.freedesktop.org, "open list:INTEL DRM DRIVERS (excluding Poulsbo, Moorestow...), linux-kernel@vger.kernel.org (open list)" , Daniel Vetter , stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXkgMjQsIDIwMTYgYXQgMTA6Mjc6MDNBTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g VGhhbmtzIHRvIFZpbGxlIFN5cmrDpGzDpCBmb3IgcG9pbnRpbmcgbWUgdG93YXJkcyB0aGUgY2F1 c2Ugb2YgdGhpcyBpc3N1ZS4KPiAKPiBVbmZvcnR1bmF0ZWx5IG9uZSBvZiB0aGUgc2lkZWFmZmVj dHMgb2YgaGF2aW5nIHRoZSByZWZjbGsgZm9yIGEgRFBMTCBzZXQKPiB0byBTU0MgaXMgdGhhdCBh cyBsb25nIGFzIGl0J3Mgc2V0IHRvIFNTQywgdGhlIEdQVSB3aWxsIHByZXZlbnQgdXMgZnJvbQo+ IHBvd2VyaW5nIGRvd24gYW55IG9mIHRoZSBwaXBlcyBvciB0cmFuc2NvZGVycyB1c2luZyBpdC4g QSBjb3VwbGUgb2YKPiBCSU9TZXMgZW5hYmxlIFNTQyBpbiBib3RoIFBDSF9EUkVGX0NPTlRST0wg YW5kIGluIHRoZSBEUExMCj4gY29uZmlndXJhdGlvbnMuIFRoaXMgY2F1c2VzIGlzc3VlcyBvbiB0 aGUgZmlyc3QgbW9kZXNldCwgc2luY2Ugd2UgZG9uJ3QKPiBleHBlY3QgU1NDIHRvIGJlIGxlZnQg b24gYW5kIGFzIGEgcmVzdWx0LCBjYW4ndCBzdWNjZXNzZnVsbHkgcG93ZXIgZG93bgo+IHRoZSBw aXBlcyBvciB0aGUgdHJhbnNjb2RlcnMgdXNpbmcgaXQuIEhlcmUncyBhbiBleGFtcGxlIGZyb20g dGhpcyBEZWxsCj4gT3B0aVBsZXggOTkwOgo+IAo+IFtkcm06aW50ZWxfbW9kZXNldF9pbml0XSBT U0MgZW5hYmxlZCBieSBCSU9TLCBvdmVycmlkaW5nIFZCVCB3aGljaCBzYXlzIGRpc2FibGVkCj4g W2RybTppbnRlbF9tb2Rlc2V0X2luaXRdIDIgZGlzcGxheSBwaXBlcyBhdmFpbGFibGUuCj4gW2Ry bTppbnRlbF91cGRhdGVfY2RjbGtdIEN1cnJlbnQgQ0QgY2xvY2sgcmF0ZTogNDAwMDAwIGtIego+ IFtkcm06aW50ZWxfdXBkYXRlX21heF9jZGNsa10gTWF4IENEIGNsb2NrIHJhdGU6IDQwMDAwMCBr SHoKPiBbZHJtOmludGVsX3VwZGF0ZV9tYXhfY2RjbGtdIE1heCBkb3RjbG9jayByYXRlOiAzNjAw MDAga0h6Cj4gdmdhYXJiOiBkZXZpY2UgY2hhbmdlZCBkZWNvZGVzOiBQQ0k6MDAwMDowMDowMi4w LG9sZGRlY29kZXM9aW8rbWVtLGRlY29kZXM9aW8rbWVtOm93bnM9aW8rbWVtCj4gW2RybTppbnRl bF9jcnRfcmVzZXRdIGNydCBhZHBhIHNldCB0byAweGY0MDAwMAo+IFtkcm06aW50ZWxfZHBfaW5p dF9jb25uZWN0b3JdIEFkZGluZyBEUCBjb25uZWN0b3Igb24gcG9ydCBDCj4gW2RybTppbnRlbF9k cF9hdXhfaW5pdF0gcmVnaXN0ZXJpbmcgRFBEREMtQyBidXMgZm9yIGNhcmQwLURQLTEKPiBbZHJt Omlyb25sYWtlX2luaXRfcGNoX3JlZmNsa10gaGFzX3BhbmVsIDAgaGFzX2x2ZHMgMCBoYXNfY2s1 MDUgMAo+IFtkcm06aXJvbmxha2VfaW5pdF9wY2hfcmVmY2xrXSBEaXNhYmxpbmcgU1NDIGVudGly ZWx5Cj4g4oCmIGxhdGVyIHdlIHRyeSBjb21taXR0aW5nIHRoZSBmaXJzdCBtb2Rlc2V0IOKApgo+ IFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gW0NSVEM6MjZdW21vZGVzZXRdIGNvbmZpZyBm ZmZmODgwNDFiMDJlODAwIGZvciBwaXBlIEEKPiBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWdd IGNwdV90cmFuc2NvZGVyOiBBCj4g4oCmCj4gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBk cGxsX2h3X3N0YXRlOiBkcGxsOiAweGM0MDE2MDAxLCBkcGxsX21kOiAweDAsIGZwMDogMHgyMGUw OCwgZnAxOiAweDMwZDA3Cj4gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBwbGFuZXMgb24g dGhpcyBjcnRjCj4gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBTVEFOREFSRCBQTEFORToy MyBwbGFuZTogMC4wIGlkeDogMCBlbmFibGVkCj4gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmln XSAgICAgRkI6NDIsIGZiID0gODAweDYwMCBmb3JtYXQgPSAweDM0MzI1MjU4Cj4gW2RybTppbnRl bF9kdW1wX3BpcGVfY29uZmlnXSAgICAgc2NhbGVyOjAgc3JjICgwLCAwKSA4MDB4NjAwIGRzdCAo MCwgMCkgODAweDYwMAo+IFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gQ1VSU09SIFBMQU5F OjI1IHBsYW5lOiAwLjEgaWR4OiAxIGRpc2FibGVkLCBzY2FsZXJfaWQgPSAwCj4gW2RybTppbnRl bF9kdW1wX3BpcGVfY29uZmlnXSBTVEFOREFSRCBQTEFORToyNyBwbGFuZTogMC4xIGlkeDogMiBk aXNhYmxlZCwgc2NhbGVyX2lkID0gMAo+IFtkcm06aW50ZWxfZ2V0X3NoYXJlZF9kcGxsXSBDUlRD OjI2IGFsbG9jYXRlZCBQQ0ggRFBMTCBBCj4gW2RybTppbnRlbF9nZXRfc2hhcmVkX2RwbGxdIHVz aW5nIFBDSCBEUExMIEEgZm9yIHBpcGUgQQo+IFtkcm06aWxrX2F1ZGlvX2NvZGVjX2Rpc2FibGVd IERpc2FibGUgYXVkaW8gY29kZWMgb24gcG9ydCBDLCBwaXBlIEEKPiBbZHJtOmludGVsX2Rpc2Fi bGVfcGlwZV0gZGlzYWJsaW5nIHBpcGUgQQo+IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0t LS0tLS0tLQo+IFdBUk5JTkc6IENQVTogMSBQSUQ6IDEzMCBhdCBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmM6MTE0NiBpbnRlbF9kaXNhYmxlX3BpcGUrMHgyOTcvMHgyZDAgW2k5 MTVdCj4gcGlwZV9vZmYgd2FpdCB0aW1lZCBvdXQKPiDigKYKPiAtLS1bIGVuZCB0cmFjZSA5NGZj OGFhMDNhZTEzOWU4IF0tLS0KPiBbZHJtOmludGVsX2RwX2xpbmtfZG93bl0KPiBbZHJtOmlyb25s YWtlX2NydGNfZGlzYWJsZSBbaTkxNV1dICpFUlJPUiogZmFpbGVkIHRvIGRpc2FibGUgdHJhbnNj b2RlciBBCj4gCj4gTGF0ZXIgbW9kZXNldHMgc3VjY2VlZCBzaW5jZSB0aGV5IHJlc2V0IHRoZSBE UExMJ3MgY29uZmlndXJhdGlvbiBhbnl3YXksCj4gYnV0IHRoaXMgaXMgZW5vdWdoIHRvIGdldCBz dHVjayB3aXRoIGEgYmlnIGZhdCB3YXJuaW5nIGluIGRtZXNnLgo+IAo+IEEgYmV0dGVyIHNvbHV0 aW9uIHdvdWxkIGJlIHRvIGFkZCByZWZjb3VudHMgZm9yIHRoZSBTU0Mgc291cmNlLCBidXQgZm9y Cj4gbm93IGxlYXZpbmcgdGhlIHNvdXJjZSBjbG9jayBvbiBzaG91bGQgc3VmZmljZS4KPiAKPiBD aGFuZ2VzIHNpbmNlIHYyOgo+ICAtIEZpeCBkZWJ1ZyBvdXRwdXQgZm9yIHdoZW4gd2UgZGlzYWJs ZSB0aGUgQ1BVIHNvdXJjZQo+IENoYW5nZXMgc2luY2UgdjE6Cj4gIC0gTGVhdmUgdGhlIFNTQyBz b3VyY2UgY2xvY2sgb24gaW5zdGVhZCBvZiBqdXN0IHNodXR0aW5nIGl0IG9mZiBvbiBhbGwKPiAg ICBvZiB0aGUgRFBMTCBjb25maWd1cmF0aW9ucy4KPiAKPiBDYzogc3RhYmxlQHZnZXIua2VybmVs Lm9yZwo+IFNpZ25lZC1vZmYtYnk6IEx5dWRlIDxjcGF1bEByZWRoYXQuY29tPgo+IC0tLQo+IEFz IGZvciB0aGUgZGlhZ3JhbSB5b3UgbWVudGlvbmVkIGZlZWwgZnJlZSB0byBhZGQgdGhhdCBzaW5j ZSB5b3UgcHJvYmFibHkgaGF2ZQo+IGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoYXQg d29ya3MgdGhlbiBJIGRvIDspCj4gCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICAxIGZpbGUg Y2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGQ1MDBlNmYuLjQ5MzdiNjggMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTgyMzAsMTIgKzgyMzAsMTQgQEAg c3RhdGljIHZvaWQgaXJvbmxha2VfaW5pdF9wY2hfcmVmY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiAtCXUzMiB2YWws IGZpbmFsOwo+ICsJaW50IGk7Cj4gKwl1MzIgdmFsLCB0ZW1wLCBmaW5hbDsKCid0ZW1wJyBpcyBu b3QgbmVlZGVkIG91dHNpZGUgdGhlIGxvb3AsIHNvIGNhbiBiZSBtb3ZlZCB0aGVyZS4KCj4gIAli b29sIGhhc19sdmRzID0gZmFsc2U7Cj4gIAlib29sIGhhc19jcHVfZWRwID0gZmFsc2U7Cj4gIAli b29sIGhhc19wYW5lbCA9IGZhbHNlOwo+ICAJYm9vbCBoYXNfY2s1MDUgPSBmYWxzZTsKPiAgCWJv b2wgY2FuX3NzYyA9IGZhbHNlOwo+ICsJYm9vbCB1c2luZ19zc2Nfc291cmNlID0gZmFsc2U7Cj4g IAo+ICAJLyogV2UgbmVlZCB0byB0YWtlIHRoZSBnbG9iYWwgY29uZmlnIGludG8gYWNjb3VudCAq Lwo+ICAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIpIHsKPiBAQCAtODI4Myw5 ICs4Mjg1LDI2IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2luaXRfcGNoX3JlZmNsayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAJZWxzZQo+ICAJCWZpbmFsIHw9IERSRUZfTk9OU1BSRUFEX1NP VVJDRV9FTkFCTEU7Cj4gIAo+IC0JZmluYWwgJj0gfkRSRUZfU1NDX1NPVVJDRV9NQVNLOwo+ICAJ ZmluYWwgJj0gfkRSRUZfQ1BVX1NPVVJDRV9PVVRQVVRfTUFTSzsKPiAtCWZpbmFsICY9IH5EUkVG X1NTQzFfRU5BQkxFOwo+ICsKPiArCS8qIENoZWNrIGlmIGFueSBEUExMcyBhcmUgdXNpbmcgdGhl IFNTQyBzb3VyY2UgKi8KPiArCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+bnVtX3NoYXJlZF9k cGxsOyBpKyspIHsKPiArCQl0ZW1wID0gSTkxNV9SRUFEKFBDSF9EUExMKGkpKTsKPiArCj4gKwkJ aWYgKCEodGVtcCAmIERQTExfVkNPX0VOQUJMRSkpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlp ZiAoKHRlbXAgJiBQTExfUkVGX0lOUFVUX01BU0spID09Cj4gKwkJICAgIFBMTEJfUkVGX0lOUFVU X1NQUkVBRFNQRUNUUlVNSU4pIHsKPiArCQkJdXNpbmdfc3NjX3NvdXJjZSA9IHRydWU7Cj4gKwkJ CWJyZWFrOwo+ICsJCX0KPiArCX0KCkNhbiB5b3UgbW92ZSB0aGlzIGNvZGUgYSBiaXQgZWFybGll ciBzbyB0aGF0IGl0J3Mgbm90IG1peGVkIGluIHdpdGggdGhlCmNvZGUgdGhhdCBmaWd1cmVzIG91 dCAnZmluYWwnLiBJJ2Qgc3VnZ2VzdCBkb2luZyBpdCByaWdodCBhZnRlciBmaWd1cmluZwpvdXQg aGFzX2NrNTA1L2Nhbl9zc2MuIE1pZ2h0IGV2ZW4gYWR2ZXJ0aXplICd1c2luZ19zc2Nfc291cmNl JyBhbG9uZ3NpZGUKdGhlIG90aGVyIGJvb2xzIGluIHRoZSBkZWJ1ZyBwcmludC4KCldpdGggdGhv c2UgdGhpcyBpcwpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KCj4gKwo+ICsJaWYgKCF1c2luZ19zc2Nfc291cmNlKSB7Cj4gKwkJZmlu YWwgJj0gfkRSRUZfU1NDX1NPVVJDRV9NQVNLOwo+ICsJCWZpbmFsICY9IH5EUkVGX1NTQzFfRU5B QkxFOwo+ICsJfQo+ICAKPiAgCWlmIChoYXNfcGFuZWwpIHsKPiAgCQlmaW5hbCB8PSBEUkVGX1NT Q19TT1VSQ0VfRU5BQkxFOwo+IEBAIC04MzQ4LDcgKzgzNjcsNyBAQCBzdGF0aWMgdm9pZCBpcm9u bGFrZV9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlQT1NUSU5H X1JFQUQoUENIX0RSRUZfQ09OVFJPTCk7Cj4gIAkJdWRlbGF5KDIwMCk7Cj4gIAl9IGVsc2Ugewo+ IC0JCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBTU0MgZW50aXJlbHlcbiIpOwo+ICsJCURSTV9E RUJVR19LTVMoIkRpc2FibGluZyBDUFUgc291cmNlIG91dHB1dFxuIik7Cj4gIAo+ICAJCXZhbCAm PSB+RFJFRl9DUFVfU09VUkNFX09VVFBVVF9NQVNLOwo+ICAKPiBAQCAtODM1OSwxNiArODM3OCwy MCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCQlQT1NUSU5HX1JFQUQoUENIX0RSRUZfQ09OVFJPTCk7Cj4gIAkJdWRlbGF5 KDIwMCk7Cj4gIAo+IC0JCS8qIFR1cm4gb2ZmIHRoZSBTU0Mgc291cmNlICovCj4gLQkJdmFsICY9 IH5EUkVGX1NTQ19TT1VSQ0VfTUFTSzsKPiAtCQl2YWwgfD0gRFJFRl9TU0NfU09VUkNFX0RJU0FC TEU7Cj4gKwkJaWYgKCF1c2luZ19zc2Nfc291cmNlKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkRp c2FibGluZyBTU0Mgc291cmNlXG4iKTsKPiAgCj4gLQkJLyogVHVybiBvZmYgU1NDMSAqLwo+IC0J CXZhbCAmPSB+RFJFRl9TU0MxX0VOQUJMRTsKPiArCQkJLyogVHVybiBvZmYgdGhlIFNTQyBzb3Vy Y2UgKi8KPiArCQkJdmFsICY9IH5EUkVGX1NTQ19TT1VSQ0VfTUFTSzsKPiArCQkJdmFsIHw9IERS RUZfU1NDX1NPVVJDRV9ESVNBQkxFOwo+ICAKPiAtCQlJOTE1X1dSSVRFKFBDSF9EUkVGX0NPTlRS T0wsIHZhbCk7Cj4gLQkJUE9TVElOR19SRUFEKFBDSF9EUkVGX0NPTlRST0wpOwo+IC0JCXVkZWxh eSgyMDApOwo+ICsJCQkvKiBUdXJuIG9mZiBTU0MxICovCj4gKwkJCXZhbCAmPSB+RFJFRl9TU0Mx X0VOQUJMRTsKPiArCj4gKwkJCUk5MTVfV1JJVEUoUENIX0RSRUZfQ09OVFJPTCwgdmFsKTsKPiAr CQkJUE9TVElOR19SRUFEKFBDSF9EUkVGX0NPTlRST0wpOwo+ICsJCQl1ZGVsYXkoMjAwKTsKPiAr CQl9Cj4gIAl9Cj4gIAo+ICAJQlVHX09OKHZhbCAhPSBmaW5hbCk7Cj4gLS0gCj4gMi41LjUKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com ([134.134.136.20]:29964 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751284AbcEXS7a (ORCPT ); Tue, 24 May 2016 14:59:30 -0400 Date: Tue, 24 May 2016 21:59:24 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Lyude Cc: intel-gfx@lists.freedesktop.org, stable@vger.kernel.org, Daniel Vetter , Jani Nikula , David Airlie , "open list:INTEL DRM DRIVERS (excluding Poulsbo, Moorestow...), linux-kernel@vger.kernel.org (open list)" Subject: Re: [PATCH v3] drm/i915/ilk: Don't disable SSC source if it's in use Message-ID: <20160524185924.GI4329@intel.com> References: <20160524131414.GE4329@intel.com> <1464100023-18479-1-git-send-email-cpaul@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1464100023-18479-1-git-send-email-cpaul@redhat.com> Sender: stable-owner@vger.kernel.org List-ID: On Tue, May 24, 2016 at 10:27:03AM -0400, Lyude wrote: > Thanks to Ville Syrjälä for pointing me towards the cause of this issue. > > Unfortunately one of the sideaffects of having the refclk for a DPLL set > to SSC is that as long as it's set to SSC, the GPU will prevent us from > powering down any of the pipes or transcoders using it. A couple of > BIOSes enable SSC in both PCH_DREF_CONTROL and in the DPLL > configurations. This causes issues on the first modeset, since we don't > expect SSC to be left on and as a result, can't successfully power down > the pipes or the transcoders using it. Here's an example from this Dell > OptiPlex 990: > > [drm:intel_modeset_init] SSC enabled by BIOS, overriding VBT which says disabled > [drm:intel_modeset_init] 2 display pipes available. > [drm:intel_update_cdclk] Current CD clock rate: 400000 kHz > [drm:intel_update_max_cdclk] Max CD clock rate: 400000 kHz > [drm:intel_update_max_cdclk] Max dotclock rate: 360000 kHz > vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem > [drm:intel_crt_reset] crt adpa set to 0xf40000 > [drm:intel_dp_init_connector] Adding DP connector on port C > [drm:intel_dp_aux_init] registering DPDDC-C bus for card0-DP-1 > [drm:ironlake_init_pch_refclk] has_panel 0 has_lvds 0 has_ck505 0 > [drm:ironlake_init_pch_refclk] Disabling SSC entirely > … later we try committing the first modeset … > [drm:intel_dump_pipe_config] [CRTC:26][modeset] config ffff88041b02e800 for pipe A > [drm:intel_dump_pipe_config] cpu_transcoder: A > … > [drm:intel_dump_pipe_config] dpll_hw_state: dpll: 0xc4016001, dpll_md: 0x0, fp0: 0x20e08, fp1: 0x30d07 > [drm:intel_dump_pipe_config] planes on this crtc > [drm:intel_dump_pipe_config] STANDARD PLANE:23 plane: 0.0 idx: 0 enabled > [drm:intel_dump_pipe_config] FB:42, fb = 800x600 format = 0x34325258 > [drm:intel_dump_pipe_config] scaler:0 src (0, 0) 800x600 dst (0, 0) 800x600 > [drm:intel_dump_pipe_config] CURSOR PLANE:25 plane: 0.1 idx: 1 disabled, scaler_id = 0 > [drm:intel_dump_pipe_config] STANDARD PLANE:27 plane: 0.1 idx: 2 disabled, scaler_id = 0 > [drm:intel_get_shared_dpll] CRTC:26 allocated PCH DPLL A > [drm:intel_get_shared_dpll] using PCH DPLL A for pipe A > [drm:ilk_audio_codec_disable] Disable audio codec on port C, pipe A > [drm:intel_disable_pipe] disabling pipe A > ------------[ cut here ]------------ > WARNING: CPU: 1 PID: 130 at drivers/gpu/drm/i915/intel_display.c:1146 intel_disable_pipe+0x297/0x2d0 [i915] > pipe_off wait timed out > … > ---[ end trace 94fc8aa03ae139e8 ]--- > [drm:intel_dp_link_down] > [drm:ironlake_crtc_disable [i915]] *ERROR* failed to disable transcoder A > > Later modesets succeed since they reset the DPLL's configuration anyway, > but this is enough to get stuck with a big fat warning in dmesg. > > A better solution would be to add refcounts for the SSC source, but for > now leaving the source clock on should suffice. > > Changes since v2: > - Fix debug output for when we disable the CPU source > Changes since v1: > - Leave the SSC source clock on instead of just shutting it off on all > of the DPLL configurations. > > Cc: stable@vger.kernel.org > Signed-off-by: Lyude > --- > As for the diagram you mentioned feel free to add that since you probably have > a better understanding of how that works then I do ;) > > drivers/gpu/drm/i915/intel_display.c | 47 +++++++++++++++++++++++++++--------- > 1 file changed, 35 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index d500e6f..4937b68 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -8230,12 +8230,14 @@ static void ironlake_init_pch_refclk(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > struct intel_encoder *encoder; > - u32 val, final; > + int i; > + u32 val, temp, final; 'temp' is not needed outside the loop, so can be moved there. > bool has_lvds = false; > bool has_cpu_edp = false; > bool has_panel = false; > bool has_ck505 = false; > bool can_ssc = false; > + bool using_ssc_source = false; > > /* We need to take the global config into account */ > for_each_intel_encoder(dev, encoder) { > @@ -8283,9 +8285,26 @@ static void ironlake_init_pch_refclk(struct drm_device *dev) > else > final |= DREF_NONSPREAD_SOURCE_ENABLE; > > - final &= ~DREF_SSC_SOURCE_MASK; > final &= ~DREF_CPU_SOURCE_OUTPUT_MASK; > - final &= ~DREF_SSC1_ENABLE; > + > + /* Check if any DPLLs are using the SSC source */ > + for (i = 0; i < dev_priv->num_shared_dpll; i++) { > + temp = I915_READ(PCH_DPLL(i)); > + > + if (!(temp & DPLL_VCO_ENABLE)) > + continue; > + > + if ((temp & PLL_REF_INPUT_MASK) == > + PLLB_REF_INPUT_SPREADSPECTRUMIN) { > + using_ssc_source = true; > + break; > + } > + } Can you move this code a bit earlier so that it's not mixed in with the code that figures out 'final'. I'd suggest doing it right after figuring out has_ck505/can_ssc. Might even advertize 'using_ssc_source' alongside the other bools in the debug print. With those this is Reviewed-by: Ville Syrjälä > + > + if (!using_ssc_source) { > + final &= ~DREF_SSC_SOURCE_MASK; > + final &= ~DREF_SSC1_ENABLE; > + } > > if (has_panel) { > final |= DREF_SSC_SOURCE_ENABLE; > @@ -8348,7 +8367,7 @@ static void ironlake_init_pch_refclk(struct drm_device *dev) > POSTING_READ(PCH_DREF_CONTROL); > udelay(200); > } else { > - DRM_DEBUG_KMS("Disabling SSC entirely\n"); > + DRM_DEBUG_KMS("Disabling CPU source output\n"); > > val &= ~DREF_CPU_SOURCE_OUTPUT_MASK; > > @@ -8359,16 +8378,20 @@ static void ironlake_init_pch_refclk(struct drm_device *dev) > POSTING_READ(PCH_DREF_CONTROL); > udelay(200); > > - /* Turn off the SSC source */ > - val &= ~DREF_SSC_SOURCE_MASK; > - val |= DREF_SSC_SOURCE_DISABLE; > + if (!using_ssc_source) { > + DRM_DEBUG_KMS("Disabling SSC source\n"); > > - /* Turn off SSC1 */ > - val &= ~DREF_SSC1_ENABLE; > + /* Turn off the SSC source */ > + val &= ~DREF_SSC_SOURCE_MASK; > + val |= DREF_SSC_SOURCE_DISABLE; > > - I915_WRITE(PCH_DREF_CONTROL, val); > - POSTING_READ(PCH_DREF_CONTROL); > - udelay(200); > + /* Turn off SSC1 */ > + val &= ~DREF_SSC1_ENABLE; > + > + I915_WRITE(PCH_DREF_CONTROL, val); > + POSTING_READ(PCH_DREF_CONTROL); > + udelay(200); > + } > } > > BUG_ON(val != final); > -- > 2.5.5 -- Ville Syrjälä Intel OTC