From mboxrd@z Thu Jan 1 00:00:00 1970 From: Damien Lespiau Subject: [PATCH 61/89 v4] drm/i915/skl: Determine enabled PLL and its linkrate/pixel clock Date: Tue, 4 Nov 2014 16:17:43 +0000 Message-ID: <1415117863-24444-1-git-send-email-damien.lespiau@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C0AC6E519 for ; Tue, 4 Nov 2014 08:23:32 -0800 (PST) In-Reply-To: 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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU2F0aGVlc2hha3Jpc2huYSBNIDxzYXRoZWVzaGFrcmlzaG5hLm1AaW50ZWwuY29tPgoK djI6IEZpeHVwIGNvbXBpbGF0aW9uIGR1ZSB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgaW50ZWxfZGRp X2RwbGxfaWQgZW51bS4KQW5kIGFkZCBhIGZpeG1lIGFib3V0IHRoZSBhYnVzZSBvZiBwaXBlX2Nv bmZpZyBoZXJlLgoKdjM6IFJlYmFzZSBvbiB0b3Agb2YgdGhlIGhzd19kZGlfY2xvY2tfZ2V0KCkg cmVuYW1lIChEYW1pZW4pCgp2NDogTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21tZW50cyBmcm9t IFBhdWxvCgpTaWduZWQtb2ZmLWJ5OiBTYXRoZWVzaGFrcmlzaG5hIE0gPHNhdGhlZXNoYWtyaXNo bmEubUBpbnRlbC5jb20+ICh2MSkKU2lnbmVkLW9mZi1ieTogRGFtaWVuIExlc3BpYXUgPGRhbWll bi5sZXNwaWF1QGludGVsLmNvbT4gKHYzKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPiAodjIpClNpZ25lZC1vZmYtYnk6IERhbWllbiBMZXNwaWF1 IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgfCAgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgMTE1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2Vk LCAxMTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o CmluZGV4IGViMzVkMDUuLjNlZjAzMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNjQ1 Nyw2ICs2NDU3LDcgQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKICNkZWZpbmUgIERQTExfQ1RS TDFfSERNSV9NT0RFKGlkKQkJKDE8PCgoaWQpKjYrNSkpCiAjZGVmaW5lICBEUExMX0NUUkwxX1NT QyhpZCkJCQkoMTw8KChpZCkqNis0KSkKICNkZWZpbmUgIERQTExfQ1JUTDFfTElOS19SQVRFX01B U0soaWQpCQkoNzw8KChpZCkqNisxKSkKKyNkZWZpbmUgIERQTExfQ1JUTDFfTElOS19SQVRFX1NI SUZUKGlkKQkJKChpZCkqNisxKQogI2RlZmluZSAgRFBMTF9DUlRMMV9MSU5LX1JBVEUobGlua3Jh dGUsIGlkKQkoKGxpbmtyYXRlKTw8KChpZCkqNisxKSkKICNkZWZpbmUgIERQTExfQ1RSTDFfT1ZF UlJJREUoaWQpCQkoMTw8KChpZCkqNikpCiAjZGVmaW5lICBEUExMX0NSVEwxX0xJTktfUkFURV8y NzAwCQkwCkBAIC02NDcwLDYgKzY0NzEsNyBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2Rl ZmluZSBEUExMX0NUUkwyCQkJCTB4NkMwNUMKICNkZWZpbmUgIERQTExfQ1RSTDJfRERJX0NMS19P RkYocG9ydCkJCSgxPDwocG9ydCsxNSkpCiAjZGVmaW5lICBEUExMX0NUUkwyX0RESV9DTEtfU0VM X01BU0socG9ydCkJKDM8PCgocG9ydCkqMysxKSkKKyNkZWZpbmUgIERQTExfQ1RSTDJfRERJX0NM S19TRUxfU0hJRlQocG9ydCkgICAgKChwb3J0KSozKzEpCiAjZGVmaW5lICBEUExMX0NUUkwyX0RE SV9DTEtfU0VMKGNsaywgcG9ydCkJKGNsazw8KChwb3J0KSozKzEpKQogI2RlZmluZSAgRFBMTF9D VFJMMl9ERElfU0VMX09WRVJSSURFKHBvcnQpICAgICAoMTw8KChwb3J0KSozKSkKIApAQCAtNjUw Niw2ICs2NTA4LDkgQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKICNkZWZpbmUgIERQTExfQ0ZH Q1IyX1BESVZfNyAoNDw8MikKICNkZWZpbmUgIERQTExfQ0ZHQ1IyX0NFTlRSQUxfRlJFUV9NQVNL CSgzKQogCisjZGVmaW5lIEdFVF9DRkdfQ1IxX1JFRyhpZCkgKERQTEwxX0NGR0NSMSArIChpZCAt IFNLTF9EUExMMSkgKiA4KQorI2RlZmluZSBHRVRfQ0ZHX0NSMl9SRUcoaWQpIChEUExMMV9DRkdD UjIgKyAoaWQgLSBTS0xfRFBMTDEpICogOCkKKwogLyogUGxlYXNlIHNlZSBoc3dfcmVhZF9kY29t cCgpIGFuZCBoc3dfd3JpdGVfZGNvbXAoKSBiZWZvcmUgdXNpbmcgdGhpcyByZWdpc3RlciwKICAq IHNpbmNlIG9uIEhTVyB3ZSBjYW4ndCB3cml0ZSB0byBpdCB1c2luZyBJOTE1X1dSSVRFLiAqLwog I2RlZmluZSBEX0NPTVBfSFNXCQkJKE1DSEJBUl9NSVJST1JfQkFTRV9TTkIgKyAweDVGMEMpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDcyNjkxZWMuLmY1ZGQ0ZDMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCkBAIC02ODcsNiArNjg3LDExNSBAQCBzdGF0aWMgaW50IGludGVsX2Rk aV9jYWxjX3dycGxsX2xpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJl dHVybiAocmVmY2xrICogbiAqIDEwMCkgLyAocCAqIHIpOwogfQogCitzdGF0aWMgaW50IHNrbF9j YWxjX3dycGxsX2xpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAg ICAgIHVpbnQzMl90IGRwbGwpCit7CisJdWludDMyX3QgY2ZnY3IxX3JlZywgY2ZnY3IyX3JlZzsK Kwl1aW50MzJfdCBjZmdjcjFfdmFsLCBjZmdjcjJfdmFsOworCXVpbnQzMl90IHAwLCBwMSwgcDIs IGRjb19mcmVxOworCisJY2ZnY3IxX3JlZyA9IEdFVF9DRkdfQ1IxX1JFRyhkcGxsKTsKKwljZmdj cjJfcmVnID0gR0VUX0NGR19DUjJfUkVHKGRwbGwpOworCisJY2ZnY3IxX3ZhbCA9IEk5MTVfUkVB RChjZmdjcjFfcmVnKTsKKwljZmdjcjJfdmFsID0gSTkxNV9SRUFEKGNmZ2NyMl9yZWcpOworCisJ cDAgPSBjZmdjcjJfdmFsICYgRFBMTF9DRkdDUjJfUERJVl9NQVNLOworCXAyID0gY2ZnY3IyX3Zh bCAmIERQTExfQ0ZHQ1IyX0tESVZfTUFTSzsKKworCWlmIChjZmdjcjJfdmFsICYgIERQTExfQ0ZH Q1IyX1FESVZfTU9ERSgxKSkKKwkJcDEgPSAoY2ZnY3IyX3ZhbCAmIERQTExfQ0ZHQ1IyX1FESVZf UkFUSU9fTUFTSykgPj4gODsKKwllbHNlCisJCXAxID0gMTsKKworCisJc3dpdGNoIChwMCkgewor CWNhc2UgRFBMTF9DRkdDUjJfUERJVl8xOgorCQlwMCA9IDE7CisJCWJyZWFrOworCWNhc2UgRFBM TF9DRkdDUjJfUERJVl8yOgorCQlwMCA9IDI7CisJCWJyZWFrOworCWNhc2UgRFBMTF9DRkdDUjJf UERJVl8zOgorCQlwMCA9IDM7CisJCWJyZWFrOworCWNhc2UgRFBMTF9DRkdDUjJfUERJVl83Ogor CQlwMCA9IDc7CisJCWJyZWFrOworCX0KKworCXN3aXRjaCAocDIpIHsKKwljYXNlIERQTExfQ0ZH Q1IyX0tESVZfNToKKwkJcDIgPSA1OworCQlicmVhazsKKwljYXNlIERQTExfQ0ZHQ1IyX0tESVZf MjoKKwkJcDIgPSAyOworCQlicmVhazsKKwljYXNlIERQTExfQ0ZHQ1IyX0tESVZfMzoKKwkJcDIg PSAzOworCQlicmVhazsKKwljYXNlIERQTExfQ0ZHQ1IyX0tESVZfMToKKwkJcDIgPSAxOworCQli cmVhazsKKwl9CisKKwlkY29fZnJlcSA9IChjZmdjcjFfdmFsICYgRFBMTF9DRkdDUjFfRENPX0lO VEVHRVJfTUFTSykgKiAyNCAqIDEwMDA7CisKKwlkY29fZnJlcSArPSAoKChjZmdjcjFfdmFsICYg RFBMTF9DRkdDUjFfRENPX0ZSQUNUSU9OX01BU0spID4+IDkpICogMjQgKgorCQkxMDAwKSAvIDB4 ODAwMDsKKworCXJldHVybiBkY29fZnJlcSAvIChwMCAqIHAxICogcDIgKiA1KTsKK30KKworCitz dGF0aWMgdm9pZCBza2xfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19jb25maWcgKnBpcGVfY29uZmlnKQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJp dmF0ZTsKKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29k ZXIpOworCWludCBsaW5rX2Nsb2NrID0gMDsKKwl1aW50MzJfdCBkcGxsX2N0bDEsIGRwbGw7CisK KwkvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHJhY2tlZCBpbiB0aGUgcGlwZSBjb25maWcuICov CisJZHBsbCA9IEk5MTVfUkVBRChEUExMX0NUUkwyKTsKKwlkcGxsICY9IERQTExfQ1RSTDJfRERJ X0NMS19TRUxfTUFTSyhwb3J0KTsKKwlkcGxsID4+PSBEUExMX0NUUkwyX0RESV9DTEtfU0VMX1NI SUZUKHBvcnQpOworCisJZHBsbF9jdGwxID0gSTkxNV9SRUFEKERQTExfQ1RSTDEpOworCisJaWYg KGRwbGxfY3RsMSAmIERQTExfQ1RSTDFfSERNSV9NT0RFKGRwbGwpKSB7CisJCWxpbmtfY2xvY2sg PSBza2xfY2FsY193cnBsbF9saW5rKGRldl9wcml2LCBkcGxsKTsKKwl9IGVsc2UgeworCQlsaW5r X2Nsb2NrID0gZHBsbF9jdGwxICYgRFBMTF9DUlRMMV9MSU5LX1JBVEVfTUFTSyhkcGxsKTsKKwkJ bGlua19jbG9jayA+Pj0gRFBMTF9DUlRMMV9MSU5LX1JBVEVfU0hJRlQoZHBsbCk7CisKKwkJc3dp dGNoIChsaW5rX2Nsb2NrKSB7CisJCWNhc2UgRFBMTF9DUlRMMV9MSU5LX1JBVEVfODEwOgorCQkJ bGlua19jbG9jayA9IDgxMDAwOworCQkJYnJlYWs7CisJCWNhc2UgRFBMTF9DUlRMMV9MSU5LX1JB VEVfMTM1MDoKKwkJCWxpbmtfY2xvY2sgPSAxMzUwMDA7CisJCQlicmVhazsKKwkJY2FzZSBEUExM X0NSVEwxX0xJTktfUkFURV8yNzAwOgorCQkJbGlua19jbG9jayA9IDI3MDAwMDsKKwkJCWJyZWFr OworCQlkZWZhdWx0OgorCQkJV0FSTigxLCAiVW5zdXBwb3J0ZWQgbGluayByYXRlXG4iKTsKKwkJ CWJyZWFrOworCQl9CisJCWxpbmtfY2xvY2sgKj0gMjsKKwl9CisKKwlwaXBlX2NvbmZpZy0+cG9y dF9jbG9jayA9IGxpbmtfY2xvY2s7CisKKwlpZiAocGlwZV9jb25maWctPmhhc19kcF9lbmNvZGVy KQorCQlwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0KKwkJCWludGVsX2Rv dGNsb2NrX2NhbGN1bGF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCQkJCSAmcGlwZV9j b25maWctPmRwX21fbik7CisJZWxzZQorCQlwaXBlX2NvbmZpZy0+YWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7Cit9CisKIHN0YXRpYyB2b2lkIGhzd19k ZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgc3Ry dWN0IGludGVsX2NydGNfY29uZmlnICpwaXBlX2NvbmZpZykKIHsKQEAgLTE1NTAsNiArMTY1OSw3 IEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29k ZXItPmJhc2UuY3J0Yyk7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxf Y3J0Yy0+Y29uZmlnLmNwdV90cmFuc2NvZGVyOwogCXUzMiB0ZW1wLCBmbGFncyA9IDA7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7CiAKIAl0ZW1wID0gSTkxNV9SRUFE KFRSQU5TX0RESV9GVU5DX0NUTChjcHVfdHJhbnNjb2RlcikpOwogCWlmICh0ZW1wICYgVFJBTlNf RERJX1BIU1lOQykKQEAgLTE2MjEsNyArMTczMSwxMCBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlkZXZfcHJpdi0+dmJ0LmVkcF9i cHAgPSBwaXBlX2NvbmZpZy0+cGlwZV9icHA7CiAJfQogCi0JaHN3X2RkaV9jbG9ja19nZXQoZW5j b2RlciwgcGlwZV9jb25maWcpOworCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA4KQorCQlo c3dfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CisJZWxzZQorCQlza2xfZGRp X2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVs X2RkaV9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKLS0gCjEuOC4zLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==