From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 2/4] drm/i915: Pass dev_priv to vlv_gpu_freq() and vlv_freq_opcode() Date: Tue, 5 Nov 2013 22:42:29 +0200 Message-ID: <1383684151-595-3-git-send-email-ville.syrjala@linux.intel.com> References: <1383684151-595-1-git-send-email-ville.syrjala@linux.intel.com> 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 7EFDC10216A for ; Tue, 5 Nov 2013 12:42:52 -0800 (PST) In-Reply-To: <1383684151-595-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCldl J2xsIGJlIGxvb2tpbmcgYXQgbW9yZSB0aGFuIGp1c3QgbWVtX2ZyZXEgZnJvbSBkZXZfcHJpdiwg c28KanVzdCBwYXNzIHRoZSB3aG9sZSB0aGluZy4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAxNyArKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3N5c2ZzLmMgICB8IDEzICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgICAgIHwgMzggKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQog NCBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDcwMDhhYWMuLjk3NzBjMmYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC05NzQsMTUgKzk3NCwxNCBAQCBzdGF0aWMgaW50 IGk5MTVfY3VyX2RlbGF5aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAog CQl2YWwgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgUFVOSVRfRlVTRV9CVVMxKTsKIAkJc2Vx X3ByaW50ZihtLCAibWF4IEdQVSBmcmVxOiAlZCBNSHpcbiIsCi0JCQkgICB2bHZfZ3B1X2ZyZXEo ZGV2X3ByaXYtPm1lbV9mcmVxLCB2YWwpKTsKKwkJCSAgIHZsdl9ncHVfZnJlcShkZXZfcHJpdiwg dmFsKSk7CiAKIAkJdmFsID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JFR19HUFVf TEZNKTsKIAkJc2VxX3ByaW50ZihtLCAibWluIEdQVSBmcmVxOiAlZCBNSHpcbiIsCi0JCQkgICB2 bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLCB2YWwpKTsKKwkJCSAgIHZsdl9ncHVfZnJl cShkZXZfcHJpdiwgdmFsKSk7CiAKIAkJc2VxX3ByaW50ZihtLCAiY3VycmVudCBHUFUgZnJlcTog JWQgTUh6XG4iLAotCQkJICAgdmx2X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwKLQkJCQkJ KGZyZXFfc3RzID4+IDgpICYgMHhmZikpOworCQkJICAgdmx2X2dwdV9mcmVxKGRldl9wcml2LCAo ZnJlcV9zdHMgPj4gOCkgJiAweGZmKSk7CiAJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5o d19sb2NrKTsKIAl9IGVsc2UgewogCQlzZXFfcHV0cyhtLCAibm8gUC1zdGF0ZSBpbmZvIGF2YWls YWJsZVxuIik7CkBAIC0yNzI1LDggKzI3MjQsNyBAQCBpOTE1X21heF9mcmVxX2dldCh2b2lkICpk YXRhLCB1NjQgKnZhbCkKIAkJcmV0dXJuIHJldDsKIAogCWlmIChJU19WQUxMRVlWSUVXKGRldikp Ci0JCSp2YWwgPSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLAotCQkJCSAgICBkZXZf cHJpdi0+cnBzLm1heF9kZWxheSk7CisJCSp2YWwgPSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYsIGRl dl9wcml2LT5ycHMubWF4X2RlbGF5KTsKIAllbHNlCiAJCSp2YWwgPSBkZXZfcHJpdi0+cnBzLm1h eF9kZWxheSAqIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSOwogCW11dGV4X3VubG9jaygmZGV2X3By aXYtPnJwcy5od19sb2NrKTsKQEAgLTI3NTYsNyArMjc1NCw3IEBAIGk5MTVfbWF4X2ZyZXFfc2V0 KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAJICogVHVyYm8gd2lsbCBzdGlsbCBiZSBlbmFibGVkLCBi dXQgd29uJ3QgZ28gYWJvdmUgdGhlIHNldCB2YWx1ZS4KIAkgKi8KIAlpZiAoSVNfVkFMTEVZVklF VyhkZXYpKSB7Ci0JCXZhbCA9IHZsdl9mcmVxX29wY29kZShkZXZfcHJpdi0+bWVtX2ZyZXEsIHZh bCk7CisJCXZhbCA9IHZsdl9mcmVxX29wY29kZShkZXZfcHJpdiwgdmFsKTsKIAkJZGV2X3ByaXYt PnJwcy5tYXhfZGVsYXkgPSB2YWw7CiAJCWdlbjZfc2V0X3JwcyhkZXYsIHZhbCk7CiAJfSBlbHNl IHsKQEAgLTI3OTEsOCArMjc4OSw3IEBAIGk5MTVfbWluX2ZyZXFfZ2V0KHZvaWQgKmRhdGEsIHU2 NCAqdmFsKQogCQlyZXR1cm4gcmV0OwogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKLQkJKnZh bCA9IHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsCi0JCQkJICAgIGRldl9wcml2LT5y cHMubWluX2RlbGF5KTsKKwkJKnZhbCA9IHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgZGV2X3ByaXYt PnJwcy5taW5fZGVsYXkpOwogCWVsc2UKIAkJKnZhbCA9IGRldl9wcml2LT5ycHMubWluX2RlbGF5 ICogR1RfRlJFUVVFTkNZX01VTFRJUExJRVI7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBz Lmh3X2xvY2spOwpAQCAtMjgyMiw3ICsyODE5LDcgQEAgaTkxNV9taW5fZnJlcV9zZXQodm9pZCAq ZGF0YSwgdTY0IHZhbCkKIAkgKiBUdXJibyB3aWxsIHN0aWxsIGJlIGVuYWJsZWQsIGJ1dCB3b24n dCBnbyBiZWxvdyB0aGUgc2V0IHZhbHVlLgogCSAqLwogCWlmIChJU19WQUxMRVlWSUVXKGRldikp IHsKLQkJdmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LT5tZW1fZnJlcSwgdmFsKTsKKwkJ dmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LCB2YWwpOwogCQlkZXZfcHJpdi0+cnBzLm1p bl9kZWxheSA9IHZhbDsKIAkJdmFsbGV5dmlld19zZXRfcnBzKGRldiwgdmFsKTsKIAl9IGVsc2Ug ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMmFhNzA1My4uNGJhZTg3MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0yNDEyLDggKzI0MTIsOCBAQCB1MzIgaW50ZWxfc2JpX3JlYWQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVnLAogdm9pZCBpbnRlbF9z Ymlfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVnLCB1MzIg dmFsdWUsCiAJCSAgICAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24gZGVzdGluYXRpb24pOwog Ci1pbnQgdmx2X2dwdV9mcmVxKGludCBkZHJfZnJlcSwgaW50IHZhbCk7Ci1pbnQgdmx2X2ZyZXFf b3Bjb2RlKGludCBkZHJfZnJlcSwgaW50IHZhbCk7CitpbnQgdmx2X2dwdV9mcmVxKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7CitpbnQgdmx2X2ZyZXFfb3Bjb2Rl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7CiAKICNkZWZpbmUg STkxNV9SRUFEOChyZWcpCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZGIoZGV2X3By aXYsIChyZWcpLCB0cnVlKQogI2RlZmluZSBJOTE1X1dSSVRFOChyZWcsIHZhbCkJZGV2X3ByaXYt PnVuY29yZS5mdW5jcy5tbWlvX3dyaXRlYihkZXZfcHJpdiwgKHJlZyksICh2YWwpLCB0cnVlKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCmluZGV4IGNlZjM4ZmQuLjVlODFjZjEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3N5c2ZzLmMKQEAgLTI1OSw3ICsyNTksNyBAQCBzdGF0aWMgc3NpemVfdCBn dF9jdXJfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LAogCWlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2LT5kZXYpKSB7CiAJCXUzMiBmcmVxOwogCQlmcmVxID0gdmx2X3B1bml0X3Jl YWQoZGV2X3ByaXYsIFBVTklUX1JFR19HUFVfRlJFUV9TVFMpOwotCQlyZXQgPSB2bHZfZ3B1X2Zy ZXEoZGV2X3ByaXYtPm1lbV9mcmVxLCAoZnJlcSA+PiA4KSAmIDB4ZmYpOworCQlyZXQgPSB2bHZf Z3B1X2ZyZXEoZGV2X3ByaXYsIChmcmVxID4+IDgpICYgMHhmZik7CiAJfSBlbHNlIHsKIAkJcmV0 ID0gZGV2X3ByaXYtPnJwcy5jdXJfZGVsYXkgKiBHVF9GUkVRVUVOQ1lfTVVMVElQTElFUjsKIAl9 CkBAIC0yNzYsOCArMjc2LDcgQEAgc3RhdGljIHNzaXplX3Qgdmx2X3JwZV9mcmVxX21oel9zaG93 KHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAogCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwg IiVkXG4iLAotCQkJdmx2X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwKLQkJCQkgICAgIGRl dl9wcml2LT5ycHMucnBlX2RlbGF5KSk7CisJCQl2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYsIGRldl9w cml2LT5ycHMucnBlX2RlbGF5KSk7CiB9CiAKIHN0YXRpYyBzc2l6ZV90IGd0X21heF9mcmVxX21o el9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LCBjaGFyICpidWYpCkBAIC0yOTEsNyArMjkwLDcgQEAgc3RhdGljIHNzaXplX3QgZ3RfbWF4X2Zy ZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUK IAogCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CiAJaWYgKElTX1ZBTExFWVZJ RVcoZGV2X3ByaXYtPmRldikpCi0JCXJldCA9IHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2Zy ZXEsIGRldl9wcml2LT5ycHMubWF4X2RlbGF5KTsKKwkJcmV0ID0gdmx2X2dwdV9mcmVxKGRldl9w cml2LCBkZXZfcHJpdi0+cnBzLm1heF9kZWxheSk7CiAJZWxzZQogCQlyZXQgPSBkZXZfcHJpdi0+ cnBzLm1heF9kZWxheSAqIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSOwogCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKQEAgLTMxOCw3ICszMTcsNyBAQCBzdGF0aWMgc3NpemVf dCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmljZSAqa2RldiwKIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYt PmRldikpIHsKLQkJdmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LT5tZW1fZnJlcSwgdmFs KTsKKwkJdmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LCB2YWwpOwogCiAJCWh3X21heCA9 IHZhbGxleXZpZXdfcnBzX21heF9mcmVxKGRldl9wcml2KTsKIAkJaHdfbWluID0gdmFsbGV5dmll d19ycHNfbWluX2ZyZXEoZGV2X3ByaXYpOwpAQCAtMzY3LDcgKzM2Niw3IEBAIHN0YXRpYyBzc2l6 ZV90IGd0X21pbl9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlCiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwogCWlm IChJU19WQUxMRVlWSUVXKGRldl9wcml2LT5kZXYpKQotCQlyZXQgPSB2bHZfZ3B1X2ZyZXEoZGV2 X3ByaXYtPm1lbV9mcmVxLCBkZXZfcHJpdi0+cnBzLm1pbl9kZWxheSk7CisJCXJldCA9IHZsdl9n cHVfZnJlcShkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkpOwogCWVsc2UKIAkJcmV0 ID0gZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkgKiBHVF9GUkVRVUVOQ1lfTVVMVElQTElFUjsKIAlt dXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CkBAIC0zOTQsNyArMzkzLDcgQEAg c3RhdGljIHNzaXplX3QgZ3RfbWluX2ZyZXFfbWh6X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmtkZXYs CiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKIAogCWlmIChJU19WQUxMRVlW SUVXKGRldikpIHsKLQkJdmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LT5tZW1fZnJlcSwg dmFsKTsKKwkJdmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9wcml2LCB2YWwpOwogCiAJCWh3X21h eCA9IHZhbGxleXZpZXdfcnBzX21heF9mcmVxKGRldl9wcml2KTsKIAkJaHdfbWluID0gdmFsbGV5 dmlld19ycHNfbWluX2ZyZXEoZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXgg ODY1MDM1Yi4uZjViYjliMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0zNjA5LDkgKzM2 MDksOSBAQCBzdGF0aWMgdm9pZCB2bHZfdXBkYXRlX3Jwc19jdXJfZGVsYXkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJaWYgKHB2YWwgIT0gZGV2X3ByaXYtPnJwcy5jdXJf ZGVsYXkpCiAJCURSTV9ERUJVR19EUklWRVIoIlB1bml0IG92ZXJyb2RlIEdQVSBmcmVxOiAlZCBN SHogKCV1KSByZXF1ZXN0ZWQsIGJ1dCBnb3QgJWQgTWh6ICgldSlcbiIsCi0JCQkJIHZsdl9ncHVf ZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsIGRldl9wcml2LT5ycHMuY3VyX2RlbGF5KSwKKwkJCQkg dmx2X2dwdV9mcmVxKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLmN1cl9kZWxheSksCiAJCQkJIGRl dl9wcml2LT5ycHMuY3VyX2RlbGF5LAotCQkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9m cmVxLCBwdmFsKSwgcHZhbCk7CisJCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgcHZhbCksIHB2 YWwpOwogCiAJZGV2X3ByaXYtPnJwcy5jdXJfZGVsYXkgPSBwdmFsOwogfQpAQCAtMzYyOSwxMCAr MzYyOSw5IEBAIHZvaWQgdmFsbGV5dmlld19zZXRfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHU4IHZhbCkKIAl2bHZfdXBkYXRlX3Jwc19jdXJfZGVsYXkoZGV2X3ByaXYpOwogCiAJRFJNX0RF QlVHX0RSSVZFUigiR1BVIGZyZXEgcmVxdWVzdCBmcm9tICVkIE1IeiAoJXUpIHRvICVkIE1IeiAo JXUpXG4iLAotCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsCi0JCQkJICAgICAg ZGV2X3ByaXYtPnJwcy5jdXJfZGVsYXkpLAorCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgZGV2 X3ByaXYtPnJwcy5jdXJfZGVsYXkpLAogCQkJIGRldl9wcml2LT5ycHMuY3VyX2RlbGF5LAotCQkJ IHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsIHZhbCksIHZhbCk7CisJCQkgdmx2X2dw dV9mcmVxKGRldl9wcml2LCB2YWwpLCB2YWwpOwogCiAJaWYgKHZhbCA9PSBkZXZfcHJpdi0+cnBz LmN1cl9kZWxheSkKIAkJcmV0dXJuOwpAQCAtMzY0MSw3ICszNjQwLDcgQEAgdm9pZCB2YWxsZXl2 aWV3X3NldF9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTggdmFsKQogCiAJZGV2X3ByaXYt PnJwcy5jdXJfZGVsYXkgPSB2YWw7CiAKLQl0cmFjZV9pbnRlbF9ncHVfZnJlcV9jaGFuZ2Uodmx2 X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwgdmFsKSk7CisJdHJhY2VfaW50ZWxfZ3B1X2Zy ZXFfY2hhbmdlKHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgdmFsKSk7CiB9CiAKIHN0YXRpYyB2b2lk IGdlbjZfZGlzYWJsZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAt NDA3MCwzMiArNDA2OSwyNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAogCWRldl9wcml2LT5ycHMuY3VyX2RlbGF5ID0gKHZhbCA+ PiA4KSAmIDB4ZmY7CiAJRFJNX0RFQlVHX0RSSVZFUigiY3VycmVudCBHUFUgZnJlcTogJWQgTUh6 ICgldSlcbiIsCi0JCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwKLQkJCQkgICAg ICBkZXZfcHJpdi0+cnBzLmN1cl9kZWxheSksCisJCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2LCBk ZXZfcHJpdi0+cnBzLmN1cl9kZWxheSksCiAJCQkgZGV2X3ByaXYtPnJwcy5jdXJfZGVsYXkpOwog CiAJZGV2X3ByaXYtPnJwcy5tYXhfZGVsYXkgPSB2YWxsZXl2aWV3X3Jwc19tYXhfZnJlcShkZXZf cHJpdik7CiAJZGV2X3ByaXYtPnJwcy5od19tYXggPSBkZXZfcHJpdi0+cnBzLm1heF9kZWxheTsK IAlEUk1fREVCVUdfRFJJVkVSKCJtYXggR1BVIGZyZXE6ICVkIE1IeiAoJXUpXG4iLAotCQkJIHZs dl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsCi0JCQkJICAgICAgZGV2X3ByaXYtPnJwcy5t YXhfZGVsYXkpLAorCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5tYXhf ZGVsYXkpLAogCQkJIGRldl9wcml2LT5ycHMubWF4X2RlbGF5KTsKIAogCWRldl9wcml2LT5ycHMu cnBlX2RlbGF5ID0gdmFsbGV5dmlld19ycHNfcnBlX2ZyZXEoZGV2X3ByaXYpOwogCURSTV9ERUJV R19EUklWRVIoIlJQZSBHUFUgZnJlcTogJWQgTUh6ICgldSlcbiIsCi0JCQkgdmx2X2dwdV9mcmVx KGRldl9wcml2LT5tZW1fZnJlcSwKLQkJCQkgICAgICBkZXZfcHJpdi0+cnBzLnJwZV9kZWxheSks CisJCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLnJwZV9kZWxheSksCiAJ CQkgZGV2X3ByaXYtPnJwcy5ycGVfZGVsYXkpOwogCiAJZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkg PSB2YWxsZXl2aWV3X3Jwc19taW5fZnJlcShkZXZfcHJpdik7CiAJRFJNX0RFQlVHX0RSSVZFUigi bWluIEdQVSBmcmVxOiAlZCBNSHogKCV1KVxuIiwKLQkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYt Pm1lbV9mcmVxLAotCQkJCSAgICAgIGRldl9wcml2LT5ycHMubWluX2RlbGF5KSwKKwkJCSB2bHZf Z3B1X2ZyZXEoZGV2X3ByaXYsIGRldl9wcml2LT5ycHMubWluX2RlbGF5KSwKIAkJCSBkZXZfcHJp di0+cnBzLm1pbl9kZWxheSk7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJzZXR0aW5nIEdQVSBmcmVx IHRvICVkIE1IeiAoJXUpXG4iLAotCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEs Ci0JCQkJICAgICAgZGV2X3ByaXYtPnJwcy5ycGVfZGVsYXkpLAorCQkJIHZsdl9ncHVfZnJlcShk ZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5ycGVfZGVsYXkpLAogCQkJIGRldl9wcml2LT5ycHMucnBl X2RlbGF5KTsKIAogCXZhbGxleXZpZXdfc2V0X3JwcyhkZXZfcHJpdi0+ZGV2LCBkZXZfcHJpdi0+ cnBzLnJwZV9kZWxheSk7CkBAIC01OTQ1LDEyICs1OTM5LDEyIEBAIGludCBzYW5keWJyaWRnZV9w Y29kZV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IG1ib3gsIHUz MiB2YWwpCiAJcmV0dXJuIDA7CiB9CiAKLWludCB2bHZfZ3B1X2ZyZXEoaW50IGRkcl9mcmVxLCBp bnQgdmFsKQoraW50IHZsdl9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGludCB2YWwpCiB7CiAJaW50IGRpdjsKIAogCS8qIDQgeCBjemNsayAqLwotCXN3aXRjaCAo ZGRyX2ZyZXEpIHsKKwlzd2l0Y2ggKGRldl9wcml2LT5tZW1fZnJlcSkgewogCWNhc2UgODAwOgog CQlkaXYgPSAxMDsKIAkJYnJlYWs7CkBAIC01OTY0LDE1ICs1OTU4LDE1IEBAIGludCB2bHZfZ3B1 X2ZyZXEoaW50IGRkcl9mcmVxLCBpbnQgdmFsKQogCQlyZXR1cm4gLTE7CiAJfQogCi0JcmV0dXJu IERJVl9ST1VORF9DTE9TRVNUKGRkcl9mcmVxICogKHZhbCArIDYgLSAweGJkKSwgNCAqIGRpdik7 CisJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2LT5tZW1fZnJlcSAqICh2YWwgKyA2 IC0gMHhiZCksIDQgKiBkaXYpOwogfQogCi1pbnQgdmx2X2ZyZXFfb3Bjb2RlKGludCBkZHJfZnJl cSwgaW50IHZhbCkKK2ludCB2bHZfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBpbnQgdmFsKQogewogCWludCBtdWw7CiAKIAkvKiA0IHggY3pjbGsgKi8KLQlz d2l0Y2ggKGRkcl9mcmVxKSB7CisJc3dpdGNoIChkZXZfcHJpdi0+bWVtX2ZyZXEpIHsKIAljYXNl IDgwMDoKIAkJbXVsID0gMTA7CiAJCWJyZWFrOwpAQCAtNTk4Niw3ICs1OTgwLDcgQEAgaW50IHZs dl9mcmVxX29wY29kZShpbnQgZGRyX2ZyZXEsIGludCB2YWwpCiAJCXJldHVybiAtMTsKIAl9CiAK LQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoNCAqIG11bCAqIHZhbCwgZGRyX2ZyZXEpICsgMHhi ZCAtIDY7CisJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKDQgKiBtdWwgKiB2YWwsIGRldl9wcml2 LT5tZW1fZnJlcSkgKyAweGJkIC0gNjsKIH0KIAogdm9pZCBpbnRlbF9wbV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCi0tIAoxLjguMS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=