From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: [PATCH v6 7/8] drm/i915: BDW clock change support Date: Wed, 3 Jun 2015 15:45:13 +0300 Message-ID: <1433335514-4156-8-git-send-email-mika.kahola@intel.com> References: <1433335514-4156-1-git-send-email-mika.kahola@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 32FB372121 for ; Wed, 3 Jun 2015 05:44:31 -0700 (PDT) In-Reply-To: <1433335514-4156-1-git-send-email-mika.kahola@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBzdXBwb3J0IGZvciBjaGFuZ2luZyBjZGNsayBmcmVxdWVuY3kgZHVyaW5nIHJ1bnRpbWUgb24g QkRXLiBUaGUKcHJvY2VkdXJlIGlzIHF1aXRlIGEgYml0IGRpZmZlcmVudCBvbiBCRFcgZnJvbSB0 aGUgb25lIG9uIEhTVywgc28KYWRkIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIGl0LgoKQWxzbyB3 aXRoIElQUyBlbmFibGVkIHRoZSBhY3R1YWwgcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUg b2YgY2RjbGssCnNvIHRha2UgdGhhdCBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIG1h eCBwaXhlbCByYXRlLgoKdjI6IEdyYWIgcnBzLmh3X2xvY2sgYXJvdW5kIHNhbmR5YnJpZGdlX3Bj b2RlX3dyaXRlKCkKdjM6IFJlYmFzZSBkdWUgdG8gcG93ZXIgd2VsbCB2cy4gLmdsb2JhbF9yZXNv dXJjZXMoKSByZW9yZGVyaW5nCnY0OiBSZWJhc2VkIHRvIHRoZSBsYXRlc3QKdjU6IFJlYmFzZWQg dG8gdGhlIGxhdGVzdAp2NjogUGF0Y2ggb3JkZXIgc2h1ZmZsZSBzbyB0aGF0IEJyb2Fkd2VsbCBD RCBjbG9jayBjaGFuZ2UgaXMKICAgIGFwcGxpZWQgYmVmb3JlIHRoZSBwYXRjaCBmb3IgSGFzd2Vs bCBDRCBjbG9jayBjaGFuZ2UKdjc6IEZpeCBmb3IgcGF0Y2ggc3R5bGUgcHJvYmxlbXMKClNpZ25l ZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+CgpBdXRo b3I6ICAgIFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgICAyICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDIxNiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAyMDggaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggNzIxMzIyNC4uMGY3MmMwZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC02NzA1LDYgKzY3MDUsNyBAQCBlbnVtIHNrbF9k aXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUJICBHRU42X1BDT0RFX1JFQURfUkM2VklEUwkJMHg1 CiAjZGVmaW5lICAgICBHRU42X0VOQ09ERV9SQzZfVklEKG12KQkJKCgobXYpIC0gMjQ1KSAvIDUp CiAjZGVmaW5lICAgICBHRU42X0RFQ09ERV9SQzZfVklEKHZpZHMpCQkoKCh2aWRzKSAqIDUpICsg MjQ1KQorI2RlZmluZSAgIEJEV19QQ09ERV9ESVNQTEFZX0ZSRVFfQ0hBTkdFX1JFUQkweDE4CiAj ZGVmaW5lICAgR0VOOV9QQ09ERV9SRUFEX01FTV9MQVRFTkNZCQkweDYKICNkZWZpbmUgICAgIEdF TjlfTUVNX0xBVEVOQ1lfTEVWRUxfTUFTSwkJMHhGRgogI2RlZmluZSAgICAgR0VOOV9NRU1fTEFU RU5DWV9MRVZFTF8xXzVfU0hJRlQJOApAQCAtNzE3MCw2ICs3MTcxLDcgQEAgZW51bSBza2xfZGlz cF9wb3dlcl93ZWxscyB7CiAjZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV8zMzdfNV9CRFcJKDI8PDI2 KQogI2RlZmluZSAgTENQTExfQ0xLX0ZSRVFfNjc1X0JEVwkJKDM8PDI2KQogI2RlZmluZSAgTENQ TExfQ0RfQ0xPQ0tfRElTQUJMRQkJKDE8PDI1KQorI2RlZmluZSAgTENQTExfUk9PVF9DRF9DTE9D S19ESVNBQkxFCSgxPDwyNCkKICNkZWZpbmUgIExDUExMX0NEMlhfQ0xPQ0tfRElTQUJMRQkoMTw8 MjMpCiAjZGVmaW5lICBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9XCQkoMTw8MjIpCiAjZGVmaW5lICBM Q1BMTF9DRF9TT1VSQ0VfRkNMSwkJKDE8PDIxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCmluZGV4IGMzZjAxYWEuLmIxZTIwNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKQEAgLTU3NTEsNyArNTc1MSwyMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4 X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRl dikpIHsKKwlpZiAoSVNfQlJPQURXRUxMKGRldikpICB7CisJCS8qCisJCSAqIEZJWE1FIHdpdGgg ZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxsb3cKKwkJICogNTQwIE1IeiBmb3IgVUxYIGFuZCA2NzUg TWh6IGZvciBVTFQuCisJCSAqIEhvdyBjYW4gd2Uga25vdyBpZiBleHRyYSBjb29saW5nIGlzCisJ CSAqIGF2YWlsYWJsZT8gUENJIElELCBWVEIsIHNvbWV0aGluZyBlbHNlPworCQkgKi8KKwkJaWYg KEk5MTVfUkVBRChGVVNFX1NUUkFQKSAmIEhTV19DRENMS19MSU1JVCkKKwkJCWRldl9wcml2LT5t YXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKKwkJZWxzZSBpZiAoSVNfQkRXX1VMWChkZXYpKQorCQkJ ZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDUwMDAwOworCQllbHNlIGlmIChJU19CRFdfVUxU KGRldikpCisJCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA1NDAwMDA7CisJCWVsc2UKKwkJ CWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDY3NTAwMDsKKwl9IGVsc2UgaWYgKElTX1ZBTExF WVZJRVcoZGV2KSkgewogCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA0MDAwMDA7CiAJfSBl bHNlIHsKIAkJLyogb3RoZXJ3aXNlIGFzc3VtZSBjZGNsayBpcyBmaXhlZCAqLwpAQCAtNjYyMSwx MyArNjYzNiwxMSBAQCBzdGF0aWMgYm9vbCBwaXBlX2NvbmZpZ19zdXBwb3J0c19pcHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qCi0JICog RklYTUUgaWYgd2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3ZSBzaG91bGQgdGhlbgotCSAqIGluY3Jl YXNlIHRoZSBjZGNsayBmcmVxdWVuY3kgd2hlbiB0aGUgY3VycmVudAotCSAqIHZhbHVlIGlzIHRv byBsb3cuIFRoZSBvdGhlciBvcHRpb24gaXMgdG8gY29tcGFyZQotCSAqIGFnYWluc3QgdGhlIGNk Y2xrIGZyZXF1ZW5jeSB3ZSdyZSBnb2luZyBoYXZlIHBvc3QKLQkgKiBtb2Rlc2V0IChpZS4gb25l IHdlIGNvbXB1dGVkIHVzaW5nIG90aGVyIGNvbnN0cmFpbnRzKS4KLQkgKiBOZWVkIHRvIG1lYXN1 cmUgd2hldGhlciB1c2luZyBhIGxvd2VyIGNkY2xrIHcvbyBJUFMKLQkgKiBpcyBiZXR0ZXIgb3Ig d29yc2UgdGhhbiBhIGhpZ2hlciBjZGNsayB3LyBJUFMuCisJICogV2UgY29tcGFyZSBhZ2FpbnN0 IG1heCB3aGljaCBtZWFucyB3ZSBtdXN0IHRha2UKKwkgKiB0aGUgaW5jcmVhc2VkIGNkY2xrIHJl cXVpcmVtZW50IGludG8gYWNjb3VudCB3aGVuCisJICogY2FsY3VsYXRpbmcgdGhlIG5ldyBjZGNs ay4KKwkgKgorCSAqIFNob3VsZCBtZWFzdXJlIHdoZXRoZXIgdXNpbmcgYSBsb3dlciBjZGNsayB3 L28gSVBTCiAJICovCiAJcmV0dXJuIGlsa19waXBlX3BpeGVsX3JhdGUocGlwZV9jb25maWcpIDw9 CiAJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSAqIDk1IC8gMTAwOwpAQCAtOTYwOCw2ICs5NjIx LDE4MiBAQCBzdGF0aWMgdm9pZCBicm94dG9uX21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogCQlicm94dG9uX3NldF9jZGNsayhkZXYs IHJlcV9jZGNsayk7CiB9CiAKKy8qIGNvbXB1dGUgdGhlIG1heCByYXRlIGZvciBuZXcgY29uZmln dXJhdGlvbiAqLworc3RhdGljIGludCBpbGtfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJp di0+ZGV2OworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOworCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YzsKKwlpbnQgbWF4X3BpeGVsX3JhdGUgPSAwOworCWludCBwaXhlbF9yYXRlOworCisJ Zm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIHsKKwkJaWYgKCFjcnRjLT5zdGF0ZS0+ZW5hYmxlKQor CQkJY29udGludWU7CisKKwkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJCXBp eGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRlKGludGVsX2NydGMtPmNvbmZpZyk7CisKKwkJ LyogcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24gQkRX ICovCisJCWlmIChJU19CUk9BRFdFTEwoZGV2KSAmJiBpbnRlbF9jcnRjLT5jb25maWctPmlwc19l bmFibGVkKQorCQkJcGl4ZWxfcmF0ZSA9IERJVl9ST1VORF9VUChwaXhlbF9yYXRlICogMTAwLCA5 NSk7CisKKwkJbWF4X3BpeGVsX3JhdGUgPSBtYXgobWF4X3BpeGVsX3JhdGUsIHBpeGVsX3JhdGUp OworCX0KKworCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKK30KKworc3RhdGljIHZvaWQgYnJvYWR3 ZWxsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY2RjbGspCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1aW50 MzJfdCB2YWwsIGRhdGE7CisJaW50IHJldDsKKworCWlmIChXQVJOKChJOTE1X1JFQUQoTENQTExf Q1RMKSAmCisJCSAgKExDUExMX1BMTF9ESVNBQkxFIHwgTENQTExfUExMX0xPQ0sgfAorCQkgICBM Q1BMTF9DRF9DTE9DS19ESVNBQkxFIHwgTENQTExfUk9PVF9DRF9DTE9DS19ESVNBQkxFIHwKKwkJ ICAgTENQTExfQ0QyWF9DTE9DS19ESVNBQkxFIHwgTENQTExfUE9XRVJfRE9XTl9BTExPVyB8CisJ CSAgIExDUExMX0NEX1NPVVJDRV9GQ0xLKSkgIT0gTENQTExfUExMX0xPQ0ssCisJCSAidHJ5aW5n IHRvIGNoYW5nZSBjZGNsayBmcmVxdWVuY3kgd2l0aCBjZGNsayBub3QgZW5hYmxlZFxuIikpCisJ CXJldHVybjsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CisJcmV0ID0g c2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsCisJCQkJICAgICAgQkRXX1BDT0RFX0RJ U1BMQVlfRlJFUV9DSEFOR0VfUkVRLCAweDApOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJw cy5od19sb2NrKTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluZm9ybSBw Y29kZSBhYm91dCBjZGNsayBjaGFuZ2VcbiIpOworCQlyZXR1cm47CisJfQorCisJdmFsID0gSTkx NV9SRUFEKExDUExMX0NUTCk7CisJdmFsIHw9IExDUExMX0NEX1NPVVJDRV9GQ0xLOworCUk5MTVf V1JJVEUoTENQTExfQ1RMLCB2YWwpOworCisJaWYgKHdhaXRfZm9yX2F0b21pY191cyhJOTE1X1JF QUQoTENQTExfQ1RMKSAmCisJCQkgICAgICAgTENQTExfQ0RfU09VUkNFX0ZDTEtfRE9ORSwgMSkp CisJCURSTV9FUlJPUigiU3dpdGNoaW5nIHRvIEZDTEsgZmFpbGVkXG4iKTsKKworCXZhbCA9IEk5 MTVfUkVBRChMQ1BMTF9DVEwpOworCXZhbCAmPSB+TENQTExfQ0xLX0ZSRVFfTUFTSzsKKworCXN3 aXRjaCAoY2RjbGspIHsKKwljYXNlIDQ1MDAwMDoKKwkJdmFsIHw9IExDUExMX0NMS19GUkVRXzQ1 MDsKKwkJZGF0YSA9IDA7CisJCWJyZWFrOworCWNhc2UgNTQwMDAwOgorCQl2YWwgfD0gTENQTExf Q0xLX0ZSRVFfNTRPX0JEVzsKKwkJZGF0YSA9IDE7CisJCWJyZWFrOworCWNhc2UgMzM3NTAwOgor CQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFfMzM3XzVfQkRXOworCQlkYXRhID0gMjsKKwkJYnJlYWs7 CisJY2FzZSA2NzUwMDA6CisJCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV82NzVfQkRXOworCQlkYXRh ID0gMzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJV0FSTigxLCAiaW52YWxpZCBjZGNsayBmcmVx dWVuY3lcbiIpOworCQlyZXR1cm47CisJfQorCisJSTkxNV9XUklURShMQ1BMTF9DVEwsIHZhbCk7 CisKKwl2YWwgPSBJOTE1X1JFQUQoTENQTExfQ1RMKTsKKwl2YWwgJj0gfkxDUExMX0NEX1NPVVJD RV9GQ0xLOworCUk5MTVfV1JJVEUoTENQTExfQ1RMLCB2YWwpOworCisJaWYgKHdhaXRfZm9yX2F0 b21pY191cygoSTkxNV9SRUFEKExDUExMX0NUTCkgJgorCQkJCUxDUExMX0NEX1NPVVJDRV9GQ0xL X0RPTkUpID09IDAsIDEpKQorCQlEUk1fRVJST1IoIlN3aXRjaGluZyBiYWNrIHRvIExDUExMIGZh aWxlZFxuIik7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOworCXNhbmR5 YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEs IGRhdGEpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKKworCWludGVs X3VwZGF0ZV9jZGNsayhkZXYpOworCisJV0FSTihjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJl cSwKKwkgICAgICJjZGNsayByZXF1ZXN0ZWQgJWQga0h6IGJ1dCBnb3QgJWQga0h6XG4iLAorCSAg ICAgY2RjbGssIGRldl9wcml2LT5jZGNsa19mcmVxKTsKK30KKworc3RhdGljIGludCBicm9hZHdl bGxfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAg ICBpbnQgbWF4X3BpeGVsX3JhdGUpCit7CisJaW50IGNkY2xrOworCisJLyoKKwkgKiBGSVhNRSBz aG91bGQgYWxzbyBhY2NvdW50IGZvciBwbGFuZSByYXRpbworCSAqIG9uY2UgNjRicHAgcGl4ZWwg Zm9ybWF0cyBhcmUgc3VwcG9ydGVkLgorCSAqLworCWlmIChtYXhfcGl4ZWxfcmF0ZSA+IDU0MDAw MCkKKwkJY2RjbGsgPSA2NzUwMDA7CisJZWxzZSBpZiAobWF4X3BpeGVsX3JhdGUgPiA0NTAwMDAp CisJCWNkY2xrID0gNTQwMDAwOworCWVsc2UgaWYgKG1heF9waXhlbF9yYXRlID4gMzM3NTAwKQor CQljZGNsayA9IDQ1MDAwMDsKKwllbHNlCisJCWNkY2xrID0gMzM3NTAwOworCisJLyoKKwkgKiBG SVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bworCSAqIGNvbXB1dGVfY29uZmlnKCkg c28gd2UgY2FuIGZhaWwgZ3JhY2VndWxseS4KKwkgKi8KKwlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+ bWF4X2NkY2xrX2ZyZXEpIHsKKwkJRFJNX0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikg ZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCisJCQkgIGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xr X2ZyZXEpOworCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKKwl9CisKKwlyZXR1 cm4gY2RjbGs7Cit9CisKK3N0YXRpYyBpbnQgYnJvYWR3ZWxsX21vZGVzZXRfZ2xvYmFsX3BpcGVz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOworCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJaW50IG1heF9waXhj bGsgPSBpbGtfbWF4X3BpeGVsX3JhdGUoZGV2X3ByaXYpOworCWludCBjZGNsaywgaTsKKworCWNk Y2xrID0gYnJvYWR3ZWxsX2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1heF9waXhjbGspOworCisJaWYg KGNkY2xrID09IGRldl9wcml2LT5jZGNsa19mcmVxKQorCQlyZXR1cm4gMDsKKworCS8qIGFkZCBh bGwgYWN0aXZlIHBpcGVzIHRvIHRoZSBzdGF0ZSAqLworCWZvcl9lYWNoX2NydGMoc3RhdGUtPmRl diwgY3J0YykgeworCQlpZiAoIWNydGMtPnN0YXRlLT5lbmFibGUpCisJCQljb250aW51ZTsKKwor CQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJ CWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCisJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsK Kwl9CisKKwkvKiBkaXNhYmxlL2VuYWJsZSBhbGwgY3VycmVudGx5IGFjdGl2ZSBwaXBlcyB3aGls ZSB3ZSBjaGFuZ2UgY2RjbGsgKi8KKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRj LCBjcnRjX3N0YXRlLCBpKQorCQlpZiAoY3J0Y19zdGF0ZS0+ZW5hYmxlKQorCQkJY3J0Y19zdGF0 ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBi cm9hZHdlbGxfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBt YXhfcGl4ZWxfcmF0ZSA9IGlsa19tYXhfcGl4ZWxfcmF0ZShkZXZfcHJpdik7CisJaW50IHJlcV9j ZGNsayA9IGJyb2Fkd2VsbF9jYWxjX2NkY2xrKGRldl9wcml2LCBtYXhfcGl4ZWxfcmF0ZSk7CisK KwlpZiAocmVxX2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxKQorCQlicm9hZHdlbGxfc2V0 X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKK30KKwogc3RhdGljIGludCBoYXN3ZWxsX2NydGNfY29t cHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKQEAgLTEyNzg4LDggKzEyOTc3LDEyIEBAIHN0 YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQogCSAqIG1vZGUgc2V0IG9uIHRoaXMgY3J0Yy4gIEZvciBvdGhlciBjcnRjcyB3ZSBu ZWVkIHRvIHVzZSB0aGUKIAkgKiBhZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMgZGlyZWN0 bHkuCiAJICovCi0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpIHsK LQkJcmV0ID0gdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdGF0ZSk7CisJaWYgKElT X1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikp IHsKKwkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpCisJCQlyZXQg PSB2YWxsZXl2aWV3X21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0YXRlKTsKKwkJZWxzZQorCQkJcmV0 ID0gYnJvYWR3ZWxsX21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0YXRlKTsKKwogCQlpZiAocmV0KQog CQkJcmV0dXJuIHJldDsKIAl9CkBAIC0xNDY3Nyw2ICsxNDg3MCw5IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlkZXZfcHJpdi0+ZGlz cGxheS5mZGlfbGlua190cmFpbiA9IGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW47CiAJfSBlbHNl IGlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKIAkJZGV2X3ByaXYt PmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRpX2xpbmtfdHJhaW47CisJCWlmIChJU19C Uk9BRFdFTEwoZGV2KSkKKwkJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfZ2xvYmFsX3Jlc291 cmNlcyA9CisJCQkJYnJvYWR3ZWxsX21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlczsKIAl9IGVsc2Ug aWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewogCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2ds b2JhbF9yZXNvdXJjZXMgPQogCQkJdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7 Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK